Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

#Java基础测试

涉及知识点:数组,面向对象,重载,重写,继承,集合,排序,线程,文件流


一、多项选择题(可能是单选,也可能是多选)

1.下列标识符命名不合法的是(   D  )

A.$_Name

B.$_

C.line

D.2variable

 

2.下列不属于基本数据类型的是(  B C )

A.boolean        

B.Integer;       

C.String    

D.char

 

3.设数据的源码为10100110,那么这个数据的补码是多少(  C )

A.10100110

B.10100111

C.11011010

D.11011001

 

4. 给出下列代码片段:

  If ( x > 0 ) { System.out.println(“Hello.”); }

  else if ( x <-3 ) { System.out.pirntln ( “ I am Tom. ”); }

  else { System.out.println (“How are you?”); }

  请问将打印字符串 “How are you ?”的x的范围是( B   )。

A. x>0

B. x<=0&&x>=-3

C. x>=-3

D. x<=0||x>=-3

 

5.对函数void add(int a, int b){}下面不属于函数重载的是(  AB )

A. public void add(int a, int b){}

B. int add(int a, int b){return a + b;}

C. int add(int a){return a + 10;}

D. double add(){return 9.0}

 

6.关于多态,下面描述正确的是(  C  )。【注:FatherSon的父类】

A. 当编译时类型与运行时类型不一致时,才会有多态的体现。

B. Son s = new Father(); 这行代码在Java中是允许存在的

C. Father f = new Son();Father的引用变量f转化成Son类型需要强转

D. Father f = new Son(); f调用Son类型的方法,编译可以通过。

 

7.下列说法正确的有( ACD  )

A.Java中接口允许多继承

B.在自定义类时,既继承类又实现接口,可以实现接口在前,继承类在后

C.普通类继承自抽象类时,必须重写抽象类中的抽象方法

D.实现接口时,重写接口中的方法时不用考虑方法的访问权限问题

 

8.对于说法有误的是(  CD  )

A.定义类和成员时,要不写访问权限修饰符,默认的访问权限是default

B.线程的默认优先级别值对应的字段是NORMAL_PRIORITY

C.线程优先级别高的会一直霸占的CPU的调度,级别低的必须等级别高的执行完才有执行的机会

D.创建不同包下类的对象时,可以直接使用类,无需考虑其他问题

 

9.下面关于集合的描述正确的有(   BC  )

A.集合中的类主要是由CollectionListMap接口派生来的

B.HashSet集合中存放元素时,元素位置是根据hashCode值放置的

C.当遍历集合时,我们可以对集合进行删除元素的操作

D.Stack类中调用peek()方法时,会依次取出集合中的元素

 

10.下面线程说法正确的有(  ACD   )

A.当前台线程执行完之后,后台线程随之消亡

B.线程阻塞后会立即死亡

C.当遇到多个线程访问同一资源出现数据混乱问题时,可以使用同步方法来解决

D.在继承Thread类来定义线程类时,重写的run方法可以使用this表示当前线程

 

 

第二题:

1、打印出所有的 "水仙花数 ",所谓 "水仙花数 “是指一个三位数,其各位数字立方和等于它本身


2利用封装的思想,编写程序:

创建一个叫做Person的实体类:

属性:姓名、年龄、性别

行为:说话、计算加法、改名

创建一个测试类P_Test,在测试类中创建Person类的对象:名叫“张三”,性别“男”,年龄23岁,让该对象调用成员方法:说出“Hello;计算23+78的值;将名字改为“Mike”。


第三题: 按照要求完成下列问题

【1】请随机生成10个从5到150之间的数字(大于等于5小于等于150),将生成的随机数存储在整型数组中(不考虑重复)


【2】使用冒泡排序对数组中的元素进行降序排列


【3】有如下一个数组{11,22,1,33,1,1,44,0,66,1,77,1,1,88}

要求将其中为1的元素值给去掉,通过合适的代码得到如下的新数组

{11,22,33,44,0,66,77,88}(数组长度等于数据长度)

 

第四题:.此题要求用IO流完成

1. 使用File类在D盘下创建目录myFiles, 并在myFiles目录下创建三个文件分别为:info1.txt, info2.txt, info3.txt 。

2. 向info1.txt, info2.txt, info3.txt 中分别追加内容“第一个文件内容,千锋欢迎你”,“第二个文件内容,中国移动培训专家”,“第三个文件内容,千锋助你高薪就业”。 

3. 把info1.txt , info2.txt,info3.txt String类中的方法截取到 文件名字,不包括拓展名,将名字变成大写,并且给文件重命名成为 INFO1.txt,INFO2.txt ,INFO3.txt,并复制到myFiles\txt目录下(须用程序创建txt文件夹)

4. 键盘输入一个关键字“千锋”,列出myFiles目录下包含“千锋”关键字的文件 

5. 递归删除myFiles目录,并记录删除的信息,格式为 “INFO1.txt  删除成功(失败)  2015-8-10 10:20:30”.将文件保存到D:\log.txt中,(注意:log.txt文件不要提交)

 

运行效果:如下图

 Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

 

第五题.按要求完成如下功能

【1】创建一明星Star类,属性:star_No(明星编号)、star_Name(明星名字)、star_Masterpieces(明星的成名作)、star_Home(明星祖籍)、star_Marriage(明星婚否)、star_Info(明星信息);封要求所有属性封装,重写toString方法。 (4)

 

【2 根据下列提供的信息创建Star对象,将每个字符串中的字段所对应的值设置到对象属性中。

star_No:10000001 star_Name:胡军 star_Masterpieces:天龙八部 star_Marriage:true star_Home:北京市Star_Info:胡军出生在北京的一个艺术世家,属于满族镶黄旗。父亲胡宝善是男中音歌唱家,母亲王亦满是话剧演员,伯父是著名的男高音歌唱家胡松华,2013年,担任北京东城区消防形象大使。

 

(2)star_No:10000002 star_Name:鹿晗 star_Masterpieces:重返20岁star_Marriage:false  star_Home:北京市Star_Info:鹿晗(LU HAN),中国男演员、歌手1990年4月20日出生于北京2008年赴韩国留学期间在明洞逛街时被韩国SM娱乐公司星探发掘,签约成为旗下练习生2012年4月以EXO组合主唱、领舞门面担当身份正式出道,在中外各国迅速获得超高人气。

(3)star_No:10000011 star_Name:孙俪 star_Masterpieces:后宫甄嬛传star_Marriage:true star_Home:上海市 Star_Info:孙俪,本名孙丽,1982年9月26日出生于上海市,*女演员、歌手。5岁开始学舞蹈,11岁出访国外表演,15岁担任上海警备区文工团文艺兵3年;退伍后进入东方文化学院学习。

(4)star_No:10000101 star_Name:王宝强 star_Masterpieces:天下无贼 star_Marriage:true star_Home:河北省邢台市南和县Star_Info:王宝强,中国内地男演员,1984年5月29日出生于河北省邢台市,6岁时开始练习武术,8岁在嵩山少林寺做俗家弟子,20岁时主演独立电影《盲井》获金马奖最佳新人奖及法国、泰国电影节最佳男主角奖。

【3】创建用于存放明星对象的TreeMap<Star,String>,用于存放上述的几个明星,使用自然排序进行排序,要求按照第一条件star_No明星编号升序排列,第二条件start_Name 降序排序

 

【4】使用HashMap<Star,String>集合进行存储,将Star对象作为键,vlaue值为与该明星有关的作品名。并遍历输出集合元素(要求:明星编号和明星姓名和明星成名作相同的为同一明星)。

 

【5 要求在上题遍历集合时,要求编程实现在当前项目中,根据获取的每个具体对象的star_Name为名称创建相应文件,将明星对象进行序列化保存

 

运行效果:如下图

 Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流

 

第六题  线程

写两个线程,一个线程打印1-52,另一个线程答应字母A-Z。打印顺序为12A34B56C……5152Z。通过使用线程之间的通信协调关系。

注:分别给两个对象构造一个对象o,数字每打印两个或字母每打印一个就执行o.wait()。在o.wait()之前不要忘了写o.notify()

 

编程题代码见下一节