java-school

课上程序

1-1000中含有7或者7的倍数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;

public class study {
public static void main(String[] args) {

int mod=0;

for(int i = 1;i<=1000;i++){
int flag =0;
int num =i;
while(num!=0){
mod = num%10;
num= num/10;
if(mod==7){
flag=1;
}
}
if(flag==1||i%7==0){
System.out.println(i);
}
}
}
}

判断闰年

1
2
3
4
5
6
7
8
9
10
11
public class study {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
if((year%4==0&&year%100!=0)||year%400==0){
System.out.println(year+"是闰月");
}else {
System.out.println(year+"不是闰月");
}
}
}

从52张卡中抽取4张随机卡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//1、数组的书写规范
//2、随机数组的方法Math.random()*52)
public class study {
public static void main(String[] args) {
//52为开的数组的大小
int[] array1=new int[52];
int j,k=0;
for(int i=0;i<52;i++){
array1[i]=i+1;
}
int[] array2 = new int[4];
array2[0]=array1[(int)(Math.random()*52)];
while (k<3){
int n=array1[(int)(Math.random()*52)];
for(j=0;j<4;j++){
if(n==array2[j]){break;}
}
if(j>=4){
array2[k+1]=n;
k++;
}
}
for(int value:array2){
System.out.println(value);
}
}
}

判断回文数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//1、String输入
//2、比较逐个比较String函数s.charAt(i)
public class study {
public static void main(String[] args) {
String str1;
Scanner sc = new Scanner(System.in);
str1=sc.next();
boolean flag=isPalindrome(str1);
System.out.println(flag?"Yes":"No");
sc.close();
}
public static boolean isPalindrome(String s){
int count=s.length(),i;
for(i=0;i<count/2;i++){
if(s.charAt(i)!=s.charAt(count-1-i)){
break;
}
}
if(i==count/2){
return true;
}else {
return false;
}
}
}

判断输入的字母的数量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//1、判断逻辑word<='z'&&word>='a'||word<='Z'&&word>='A'
public class study {
public static void main(String[] args) {
String str1;
Scanner sc = new Scanner(System.in);
str1=sc.next();
int count= countLetters(str1);
System.out.println(count);
sc.close();
}
public static int countLetters(String s){
int len=s.length(),i,num=0;
for(i=0;i<len;i++){
char word=s.charAt(i);
if(word<='z'&&word>='a'||word<='Z'&&word>='A'){
num++;
}
}
return num;
}
}

打印日历

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class study {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个年份:(2018)");
int year=sc.nextInt();
LocalDate dates=LocalDate.of(year, Month.JANUARY,1);
while(dates.getYear()==year){
String monthName=dates.getMonth().getDisplayName(TextStyle.FULL,Locale.getDefault());
int daysOfMonth=dates.lengthOfMonth();
System.out.println(year+"年"+monthName);
System.out.println( "-------------------------------------");
System.out.printf("%8s%8s%8s%8s%8s%8s%8s%n","一","二","三","四","五","六","日");
int dayOfWeek=dates.getDayOfWeek().getValue();
for(int i=2;i<=dayOfWeek;i++){
System.out.printf("%4s"," ");
}
for(int i= 1;i<=daysOfMonth;i++){
System.out.printf("%9s",i);
if((dayOfWeek+i-1)%7==0) {
System.out.println();
}
}
System.out.println();
}
}
}

Enum类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Traffic
{
enum TrafficLight {
RED, GREEN, BLUE;
}
// 执行输出结果
public static void main(String[] args)
{
// 调用 values()
TrafficLight[] arr = TrafficLight.values();

// 迭代枚举
for (TrafficLight TR : arr)
{
// 查看索引
System.out.println(TR + " at index " + TR.ordinal());
}
}
}

学习通易错题

项目一(Java入门)

  1. (单选题)安装好JDK后,在其bin目录下有许多.exe可执行文件,其中java.exe命令的作用是以下哪一种()
  • A. Java编译器
  • B. Java启动器
  • C. Java解释器
  • D. Java文档制作工具

我的答案: B:Java启动器;正确答案: C

  1. (填空题)环境变量 用来存储Java的编译和运行工具所在的路径,而 环境变量则用来保存Java虚拟机要运行的“.class”文件路径
  • 我的答案:

    (1) JAVA_HOME

    (2) CLASSPATH

  • 正确答案:

    (1) path

    (2) classpath

  1. (填空题)Java的三大体系分别是()、()、()。

    正确答案:

    JavaEE;JavaSE;JavaME

  2. (判断题)Java语言的源程序不是编译型,而是编译解释型的

  • A. 对
  • B. 错

我的答案:正确答案:

项目二(Java语言基础)

(填空题)Java中的变量可分为两种数据类型,分别是()、()。

  • 我的答案:**4.3

    (1) 基本数据类型

    (2) 引用数据类型

  • 正确答案:

    (1) 基本数据类型

    (2) 引用数据类型

(填空题)在Java中,byte类型数据占()个字节,short类型数据占()个字节,int类型数据占()个字节,long类型数据占()个字节

  • 我的答案:**4.3

    (1) 1

    (2) 2

    (3) 4

    (4) 8

  • 正确答案:

    (1) 1

    (2) 2

    (3) 4

    (4) 8

(填空题)若x=2,则表达式(x++)/3的值是___。

  • 我的答案:**0

    (1) 1

  • 正确答案:

    (1) 0

(填空题)Java中的注释可分为三种类型,分别是()、()、()。

  • 我的答案:**1.4

    (1) 单行注释

    (2) 单行注释

    (3) 单行注释

  • 正确答案:

    (1) 单行注释

    (2) 多行注释

    (3) 文档注释

(判断题)定义多个同名方法时,可以依靠返回值区别同名方法

  • A. 对
  • B. 错

我的答案:正确答案:

(判断题)使用break语句可以跳出一个循环

  • A. 对
  • B. 错

我的答案:正确答案:

项目三(方法)

  1. (填空题)Java中方法的三种调用方式分别是 、 、 。
  • 我的答案:

    (1) 普通调用方式

    (2) 对象调用方式(当方法是非静态方法时,需要通过对象实例来调用)

    (3) 类调用方式(当方法是静态方法时,可以直接使用类名调用,不需要创建对象实例)

项目四(数组和字符串)

  1. (单选题)Java中的数组存储在( )中。
  • A. 栈
  • B. 队列
  • C. 堆
  • D. 链表

我的答案: A;*正确答案:*A

  1. (填空题)数组复制时,”=”将一个数组的___传递给另一个数组。
  • *我的答案:

    (1) 元素值

  • 正确答案:

    (1) 引用

  1. (填空题)JVM将数组存储在___(堆或栈)中。
  • 我的答案:**0

    (1) 堆

  • 正确答案:

    (1) 栈

项目五(类与对象)

  1. (单选题)在以下什么情况下,构造方法会被调用?( )
  • A. 类的定义时
  • B. 创建对象时
  • C. 调用对象方法时
  • D. 适用对象的变量时

我的答案: B:创建对象时;正确答案: B:创建对象时;

  1. (判断题)声明构造方法时,不能使用private关键字修饰。
  • A. 对
  • B. 错

我的答案:正确答案:

  1. (判断题)方法内部类中不能访问外部类的成员变量。
  • A. 对
  • B. 错

我的答案:正确答案:

项目六(继承)

  1. (填空题)()类是所有类的父类,该类中判断两个对象是否相等的方法是(),取得对象完整信息的方法是()。(注意大小写)
  • 我的答案:

    (1) Object

    (2) equals

    (3) toString

  • 正确答案:

    (1) Object

    (2) equals( )

    (3) toString( )

  1. (判断题)构造方法可以有返回值类型的声明。
  • A. 对
  • B. 错

我的答案:正确答案:

  1. (判断题)一个类不能既是子类又是父类。
  • A. 对
  • B. 错

我的答案:正确答案:

项目七(多态)

  1. (填空题)___是指,一个类中可以有多个具有相同名字和类型的方法,但这些方法的参数必须不同。
  • 我的答案:

    (1) 方法重载

  • 正确答案:

    (1) 方法重载

  1. (填空题)再Java语言中多态性体现在由方法重载实现静态多态性和___实现的动态多态性。
  • 我的答案:

    (1) 方法重写

  • 正确答案:

    (1) 方法重写

抽象类

项目八(集合与泛型)

  1. (单选题)使用Iterator时,判断是否存在下一个元素可以使用哪一个方法?( )
  • A. next( )
  • B. hash( )
  • C. hasPrevious( )
  • D. hasNext( )

我的答案: D:hasNext( );正确答案: D:hasNext( );

  1. (单选题)在程序开发中,经常会使用以下哪个类来存储程序中所需的配置?( )
  • A. HashMap
  • B. TreeSet
  • C. Properties
  • D. TreeMap

我的答案: C:Properties;正确答案: C

  1. (单选题)要想按照集合中保存的元素没有重复且按照一定的顺序排列,可以使用以下哪个集合?( )
  • A. LinkedList
  • B. ArrayList
  • C. hashSet
  • D. TreeSet

我的答案: D:TreeSet;正确答案: D:TreeSet;

  1. (填空题)JDK中提供了一系列可以存储任意对象的类,统称为___。
  • 我的答案:

    (1) 集合类

  • 正确答案:

    (1) 集合;集合类

  1. (填空题)在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现___接口。
  • 我的答案:

    (1) Comparator

  • 正确答案:

    (1) Comparator

  1. (填空题)Collection有两个子接口,分别是List和Set,List集合的特点是有序,可重复,Set集合的特点是___。
  • 我的答案:

    (1) 有序、可重复 无序、不可重复

  • 正确答案:

    (1) 无序存储;无序不重复;元素无序,不可重复;无序不可重复

  1. (填空题)使用Iterator遍历集合时,首先需要调用()方法判断是否存在下一个元素,若存在下一个元素,则调用())方法取出该元素。
  • 我的答案:

    (1) hasNext()

    (2) next()

  • 正确答案:

    (1) hasNext( )

    (2) next( )

  1. (填空题)集合按照存储接口的不同可分为单列集合和双列集合,单列集合的根接口是(),双列集合的根接口是()。
  • 我的答案:

    (1) Collection

    (2) Map

  • 正确答案:

    (1) Collection

    (2) Map

  1. (判断题)集合中不能存放基本数据类型,而只能存放引用数据类型。
  • A. 对
  • B. 错
  1. (判断题)使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。
  • A. 对
  • B. 错

我的答案:正确答案:

项目十一(多线程)

(单选题)Thread类位于下列哪个包中?( )

  • A. java.io
  • B. java.lang
  • C. java.util
  • D. java.awt

我的答案: B:java.lang;正确答案: B:java.lang;

(单选题)对于调用sleep()方法后,该线程将进入以下哪种状态?()

  • A. 就绪状态
  • B. 运行状态
  • C. 阻塞状态
  • D. 死亡状态

我的答案: C:阻塞状态;正确答案: C:阻塞状态;

(多选题)关于线程的创建过程,下面四种说法正确的有哪些?()(多选)

  • A. 定义Thread类的在子类,重写Thread类的run( )方法,创建该子类的实例对象,调用对象的start( )方法
  • B. 定义Thread类的在子类,重写Thread类的run( )方法,创建该子类的实例对象,调用对象的run( )方法
  • C. 定义一个实现Runnable接口的类并实现run( )方法,创建该类的实例对象,将其作为参数传递给Thread类的构造方法来创建Thread对象,调用Thread对象的start( )方法。
  • D. 定义一个实现Runnable接口的类并实现run( )方法,创建该类对象,然后调用run( )方法。

我的答案: AC;正确答案: AC;

(多选题)对于通过实现Runnable接口创建线程,下面说法正确的有哪些?()(多选)

  • A. 适合多个相同程序代码的线程去处理同一个资源的情况。
  • B. 把线程同步程序代码、数据有效地分离,很好的体现了面向对象的设计思想。
  • C. 可以避免由于Java的单继承带来的局限性。
  • D. 编写简单,可以不通过Thread类直接创建线程。

我的答案: ABCD;正确答案: ABC;

(多选题)对于线程的生命周期,下面四种说法正确的有哪些?()(多选)

  • A. 调用了线程的start( )方法,该线程就进入运行状态。
  • B. 线程的run( )方法运行结束或未被catch的InterruptedException等异常终结,那么该线程进入死亡状态。
  • C. 线程进入是死亡状态,但是该线程对象仍然是一个Thread对象,在没有被垃圾回收器回收之前仍然可以像引用其他对象一样引用它。
  • D. 线程进入死亡状态后,调用它的start( )方法仍然可以重新启动。

我的答案: ABD;正确答案: BC;

(多选题)下面四个选项中,对线程同步的目的描述正确的有哪些?()(多选)

  • A. 锁定资源,是同一时刻只有一个线程去访问它,防止多个线程操作同一个资源引发错误。
  • B. 提高线程的执行效率
  • C. 让线程独占一个资源
  • D. 让多个线程同时使用一个资源

我的答案: ABC;正确答案: AB

(填空题)一个应用程序中有多个并发执行的线索,每条线索都被称作一个(),它们会交替执行,彼此间可以进行()。

  • 我的答案:

    (1) 线程

    (2) 通信

  • 正确答案:

    (1) 线程

    (2) 通信

(填空题)在实现多线程的程序时有两种方式,一是通过继承()类,二是通过实现()接口。

  • 我的答案:**5

    (1) Thread

    (2) Runnable

  • 正确答案:

    (1) Thread

    (2) Runnable

(填空题)在Java语言中,同步方法需要用到关键字()对于同步方法而言无需指定同步锁,它的同步锁是方法所在的(),也就是()(关键字)。

  • 我的答案:**5

    (1) synchronized

    (2) 对象

    (3) this

  • 正确答案:

    (1) synchronized

    (2) 当前对象;对象

    (3) this

(填空题)在多任务系统中,每个独立执行的程序称之为()也就是”正在运行的程序”。

  • 我的答案:**5

    (1) 进程

  • 正确答案:

    (1) 进程

(填空题)线程的整个生命周期分为五个阶段,分别是(),(),(),()和()。

  • 正确答案:

    (1) 新建;新建状态

    (2) 就绪;就绪状态

    (3) 运行;运行状态

    (4) 阻塞;阻塞状态

    (5) 死亡;死亡状态

(填空题)线程的优先级用1~10之间的整数来表示,其中()代表优先级最高,()代表优先级最低。

  • 我的答案:**5

    (1) 10

    (2) 1

  • 正确答案:

    (1) 10

    (2) 1

(填空题)在Thread类中,提供了一个start( )方法,该方法用于(),当新线程启动后,系统会自动调用一个()方法。

  • 我的答案:**5

    (1) 启动线程

    (2) run()

  • 正确答案:

    (1) 启动线程

    (2) run()

(判断题)如果前台线程全部死亡,后台线程也会自动死亡。

  • A. 对
  • B. 错

我的答案:正确答案:

(判断题)同步代码块的锁对象可以是任意类型的对象。

  • A. 对
  • B. 错

我的答案:正确答案:

(判断题)静态方法不能使用synchronized关键字来修饰。

  • A. 对
  • B. 错

我的答案:正确答案:

(判断题)线程结束等待或者阻塞状态后,会进入运行状态。

  • A. 对
  • B. 错

我的答案:正确答案: