一、选择题(每题2分)
1 、关于构造方法说法错误的是( )
A 、方法名与类同名
B 、不写返回值类型
C 、一个类中可以写多个构造方法
D 、返回值类型为void
2 、关于方法的返回值类型说法错误的是( )
A 、返回值主要指从方法体内返回到方法体外的数据内容。
B 、返回值类型主要指返回值的数据类型,可以是基本数据类型,也可以是引用数据类型。
C 、当该方法不需要返回任何数据内容时,则返回值类型写void 即可。
D 、当该方法不需要返回任何数据内容时,则返回值类型可以省略
3 、关于方法的形参列表说法错误的是( )
A 、形式参数主要用于将方法体外的数据内容带入到方法体内部。
B 、若该方法不需要带入任何数据内容时,则形参列表位置啥也不写即可。
C 、形式参数列表主要指多个形式参数组成的列表
D 、当带入的数据内容是66 和"hello" 时,则形参列表写 int i, String s 即可
4 、关于重载与重写说法正确的是( )
A 、发生重载的两个方法的方法名相同,参数列表也相同
B 、发生重写的两个方法的方法名相同,参数列表也相同
C 、发生重写的两个方法的方法名不同,参数列表也不同
D 、发生重载的两个方法的方法名不同,参数列表也相同
5 、下列哪个不是java中的访问控制符( )
A 、public
B 、protected
C 、default
D 、private
6 、关于final 的说法错误的是( )
A 、被final 修饰的类,不能被继承
B 、被final 修饰的方法不能被重载
C 、被final 修饰的变量,值不能被修改
D 、被final static 修饰的变量,称之为常量
7 、关于多态说法错误的是( )
A 、当父类类型的引用指向子类类型的对象时,父类类型的引用可以直接调用父类独有的方法。
B 、当父类类型的引用指向子类类型的对象时,父类类型的引用不可以直接调用子类独有的方法。
C 、对于父子类都有的非静态方法来说,编译阶段调用父类版本,运行阶段调用子类重写的版本(动态绑定)。
D 、对于父子类都有的非静态方法来说,编译和运行阶段都调用父类版本。
8 、关于抽象类和接口说法错误的是( )
A 、定义抽象类的关键字是abstract class ,而定义接口的关键字是interface 。
B 、继承抽象类的关键字是extends ,而实现接口的关键字是implements 。
C 、继承抽象类支持单继承,而实现接口支持多实现。
D 、抽象类中可以有构造方法,而接口中也可以有构造方法。
9 、看程序:
String str1 = "abc" ;
String str2 = new String ( "abc" ) ;
String str3 = "abc" ;
String str4 = new String ( "abc" ) ;
问上述代码创建了( ) 个对象
A 、1
B 、2
C 、3
D 、4
10 、关于集合说法错误的是( )
A 、Java 中集合框架顶层框架是: java. util. Collection 集合 和 java. util. Map 集合。
B 、Collection 集合中存取元素的基本单位是: 单个元素,Map 集合中存取元素的基本单位是: 单对元素。
C 、集合中的元素类型必须保持一致
D 、List 集合中的元素是有序的,Set 集合中的元素是无序的
二 程序题(共80分)
1 、( 5 分) 判断字符串“上海自来水来自海上”是否为回文并打印,
所谓回文是指一个字符序列无论从左向右读 还是从右向左读都是相同的句子。
2 、( 5 分) 编写通用的代码可以查询字符串"Good Good Study, Day Day Up!" 中所有"Day" 出现的索引位置并
打印出来。
3 、( 5 分) 产生10 个1 - 100 的随机数,并放到一个数组中,把数组中大于等于10 的数字放到一个list集合中,并升序排列打印到控制台。
4 、( 10 分) 定义一个泛型为String 类型的List 集合,统计该集合中每个字符(注意,不是字符串)出现的次数。
例如:集合中有”abc”、”bcd”两个元素,
程序最终输出结果为:“a = 1 , b = 2 , c = 2 , d = 1 ”。
5 、( 10 分) 拷贝一张图片,从一个目录到另外一个目录下( PS: 是拷贝是不是移动)
6 、( 15 分) 类Student 拥有name, age, sex三个属性,请将3 个学生的信息存储到文件students. txt中,
然后再从文件中读出这3 个学生的信息输出到控制台。
7 、( 15 分) 生成一个长度是3 的随机字符串,把这个字符串当作 密码
创建一个破解线程,使用穷举法(就是列举出所有的可能性,别紧张),匹配这个密码
创建一个日志线程,打印都用过哪些字符串去匹配,这个日志线程设计为守护线程
提示: 破解线程把穷举法生成的可能密码放在一个容器中,日志线程不断的从这个容器中拿出可能密码,并打印出来。
如果发现容器是空的,就休息1 秒,如果发现不是空的,就不停的取出,并打印。
8 、( 15 分) 准备一个ArrayList 其中存放3000000 ( 三百万个) Hero 对象,其名称是随机的, 格式是 hero- [ 4 位随机数]
hero- 3229
hero- 6232
hero- 9365
. . .
因为总数很大,所以几乎每种都有重复,把名字叫做 hero- 5555 的所有对象找出来
要求使用两种办法来寻找
1. 不使用HashMap ,直接使用for 循环找出来,并统计花费的时间
2. 借助HashMap ,找出结果,并统计花费的时间