黑马集合知识测试(带解析)
- 格式:docx
- 大小:25.17 KB
- 文档页数:17
黑马程序员训练营基础测试1、创建一个类Sample,在main方法中定义一个ArrayList的集合类,并向集合中添加任意多个同一种类型的元素,利用Iterator接口,遍历集合中的所有元素.2、排序有哪几种方法?请列举。
并用JAVA实现一个快速排序.3、已知一个int数组, 编程从数组中获取最大数.4、已知一个int类型的数组,用冒泡排序法将数组中的元素进行升序排列.5、 JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在try块中可以抛出异常吗?6、创建一个包含实例内部类的类,外部类中定义一个名为str的String字符串并初始化任意值,在内部类中定义跟外部类同种类型且同名的变量,并在内部类中定义一个方法,分别打印外部类和内部类的变量.7、先写一个程序,打印从1到100的值。
之后修改程序,通过使用break关键词,使得程序在打印到98时退出。
然后尝试使用return来达到相同的目的。
8、编写程序获取已知文件的扩展名. 注意: abc.txt的扩展名是txt,abc.java.txt的扩展名也是txt.9、有这样三个类,Person,Student.GoodStudent。
其中Student继承了Person,GoodStudent继承了Student,三个类中只有默认的构造函数,用什么样的方法证明在创建Student类的对象的时候是否调用了Person的构造函数,在创建GoodStudent类的对象的时候是否调用了Student构造函数?如果在创建Student对象的时候没有调用Person的构造函数,那么采用什么样的手段可以调用父类的构造函数?10、模拟妈妈做饭,做饭时发现没有盐了,让儿子去买盐(假设买盐需要3分钟),只有盐买回来之后,妈妈才能继续做饭的过程。
黑马程序员测试题提交格式要求1、请下载eclipse或myeclipse,并在eclipse中新建一个exam的Java工程,如下图所示:2、在src目录下新建一个com.itheima的包,并在下面编写Test1、Test2、Test3…….等等完成对应的第1题、第2题、第3题………如图所示:3、在编写每一道题时,格式要求如图所示:4、做完后,选中工程,右键点copy,然后复制到本地硬盘中,用zip工具打成压缩包后提交,如图所示:。
目录概述:错误!未指定书签。
语法基础错误!未指定书签。
面向对象错误!未指定书签。
常用错误!未指定书签。
集合框架错误!未指定书签。
5.0新特性错误!未指定书签。
流错误!未指定书签。
网络编程错误!未指定书签。
反射技术错误!未指定书签。
正则表达式错误!未指定书签。
数据库错误!未指定书签。
语句错误!未指定书签。
数据设计语言错误!未指定书签。
字段类型错误!未指定书签。
表操作:错误!未指定书签。
数据操作语言错误!未指定书签。
插入记录:错误!未指定书签。
更新记录:错误!未指定书签。
删除记录:错误!未指定书签。
数据查询语言错误!未指定书签。
排序错误!未指定书签。
聚合错误!未指定书签。
分组错误!未指定书签。
概述:1991 年公司的等人开始开发名称为的语言,希望用于控制嵌入在有线电视交换盒、等的微处理器;1994年将语言更名为;的三种技术架构::,开发企业环境下的应用程序,主要针对程序开发;:,完成桌面应用程序的开发,是其它两者的基础;:,开发电子消费产品和嵌入式设备,如手机中的程序;1,:,的开发和运行环境,的开发工具和。
2,:,程序的运行环境,运行的所需的类库(虚拟机)。
3,配置环境变量:让\目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:安装路径%\\\2):临时配置方式::\ \\\特点:系统默认先去当前路径下找要执行的程序,如果没有,再去中设置的路径下找。
的配置:1):永久配置方式::\:\2):临时配置方式::\:\注意:在定义环境变量时,需要注意的情况如果没有定义环境变量,启动后,会在当前目录下查找要运行的类文件;如果指定了,那么会在指定的目录下查找要运行的类文件。
还会在当前目录找吗?两种情况:1):如果的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
2):如果的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
1.静态变量和实例变量的区别局部变量不能用静态的,如果用了静态的,则不会从静态区消失* 静态变量也叫类变量成员变量也叫对象变量* A:所属不同* 静态变量属于类,所以也称为为类变量* 成员变量属于对象,所以也称为实例变量(对象变量)* B:内存中位置不同* 静态变量存储于方法区的静态区* 成员变量存储于堆内存* C:内存出现时间不同* 静态变量随着类的加载而加载,随着类的消失而消失* 成员变量随着对象的创建而存在,随着对象的消失而消失* D:调用不同* 静态变量可以通过类名调用,也可以通过对象调用* 成员变量只能通过对象名调用2.Interger和int的区别int是java提供的8种原始数据类型之一。
Java为每个原始类型提供了封装类,Integer 是java为int提供的封装类。
int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况,另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数,Integer中还定义了表示整数的最大值和最小值的常量。
3.谈谈你对面向对象的理解如何大象装进冰箱?面向过程:为了把大象装进冰箱,需要3个过程。
1) 把冰箱门打开(得到打开门的冰箱)2) 把大象装进去(打开门后,得到里面装着大象的冰箱)3) 把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。
1:冰箱开门(冰箱)冰箱装进(冰箱, 大象)冰箱关门(冰箱)==换个写法(冰箱开门冰箱)(冰箱装进冰箱大象)(冰箱关门冰箱)2:冰箱关门(冰箱装进(冰箱开门(冰箱), 大象))==换个写法(冰箱关门 (冰箱装进 (冰箱开门冰箱) 大象))面向对象:每个动作有一个执行者,它就是对象。
1) 冰箱,你给我把门打开2) 冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)3) 冰箱,你给我把门关上依次做这些动作,就能把大象装进冰箱。
IO 部分测试题考试宣言:同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷!我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2分/题,多选4分/题。
多选题不全对半分,全对满分。
1.下列叙述中,正确的是 ( )A. Reader是一个读取文本文件的接口B. Reader是读取二进制数据文件的抽象类C. Reader是一个读取文本文件的抽象类D. Reader是读取二进制数据文件的一般类2.下面关于IO流的说法正确的是( )A. IO流可以分为字节流和字符流B. 和是专门用于读取和写入文本文件的C. 顶层类有InputStream和OutputStreamD. 顶层类有Reader和Writer,他们都是接口//抽象类3.类描述正确的是( )A. 字节输入流B. 字符输入流//没什么说的,记住吧C. 打印流D. 序列化流4.下列关键字能和try一起使用的有( )A. finalB. finalizeC. finallyD. catch5.具有readLine()方法的类是( )A.B. InputStreamReaderC.D. BufferedReader // readLine()方法是缓冲流BufferedReader的特有方法6.关于newLine()方法描述错误的是( )A. newLine()方法写入换行B. newLine()方法会根据不同操作系统自动选择使用相应的换行符C. newLine()方法是类的方法D. newLine()方法是BufferedWriter类的方法// 这个也是特有方法.7.实现下列哪个接口,可以启用序列化功能( )A. Runnable接口B. Comparable接口C. Serializable接口// 这个记住吧D. Comparator接口8.以下关于java异常说法不正确的是()。
1.定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法;例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。
public enum Lamp {RED("GREEN"),GREEN("YELLOW"),YELLOW("RED");private String next;private Lamp(String next){this.next = next;}public Lamp nextLamp(){return Lamp.valueOf(next);}}2、写一个ArrayList类的代理,实现和ArrayList中完全相同的功能,并可以计算每个方法运行的时间。
public class test1 {public static void main(String[] args) {final ArrayList target = new ArrayList();List proxy = (List)Proxy.newProxyInstance(List.class.getClassLoader(),ArrayList.class.getInterfaces(),new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {long beginTime = System.currentTimeMillis();Thread.sleep(10);Object reVal = method.invoke(target, args);long endTime = System.currentTimeMillis();System.out.println(method.getName()+" runing time is "+(endTime-beginTime));return reVal;}});proxy.add("nihaoa");proxy.add("nihaoa");proxy.add("nihaoa");proxy.remove("nihaoa");System.out.println(proxy.toString());}}3. ArrayList list = new ArrayList();在这个泛型为Integer的ArrayList中存放一个String类型的对象。
1、Collection:集合框架的由来:因为每一个容器对象的自身的数据结构不同,所以对它们进行单独的描述和对象封装,并非断的向上抽取共性内容,这样变形成了集合框架。
概念:集合就是一个容器、用来存储对象、长度可变。
理解:其实班级就是一个容器,班上的每一个学生都是单独封装了功能的对象,因为班级中的人数由于有人请假天天都再转变,所以长度是可变的,常见方式:1、增加:add();增加一个元素addAll();增加一部份元素。
2、删除:Remove();删除一个元素,会返回boolean类型,其实用到是equals方式,所以判断是不是有符合要求的元素。
若是删除成功会改变集合的长度。
下面同理。
removeAll();删除全数Clrea();清空容器总结:在这里要尤其注意,面试题中常常考到。
3、判断:Contains();是不是包括,也就说要所有的都包括在其中才算包括,不然不算包括。
isEmpty();集合是不是为空Size();集合长度。
4、取:retainAll();取交集。
理解总结:班级就是一个容器,班级中进来一名新生就是Add()添加一个元素,来了一堆同窗就是addAll,班上出去一个学生就是remove删除一个,出去一部份就是removeAll删除一部份,班级是不是有人,isEmpty,班上是不是包括张三contains,班上有多少人size。
班上是不是包括隔壁班的同窗retainAll.去交集。
集合利用细节:1、直接存储大体数据类型值也是可以的,因为后有自动装箱,会将大体数据类型转成对象,绝对不行。
Eg:(3)2、集合对象中存储的实际上是对象的元素的引用。
3、Add的参数是Object类型,可以接收所有的类型的对象,会出现向上转型,掏出元素时类型仍是Object不能利用具体对象的特有内容,想要利用特有内容向下转型。
Eg:Object obj="obj";想要掏出访问子类的特有方式,向下转型,String s=(String)();sop());|--List:有序列表(存取顺序是一致的)因为该子体系元素中有索引或角标,可以存储重复的元素。
目录java概述: (2)java语法基础 (3)面向对象 (9)常用API (33)集合框架 (43)Jdk5.0新特性 (51)IO流 (54)网络编程 (67)反射技术 (70)正则表达式 (72)MySql数据库 (73)SQL语句 (74)DDL数据设计语言 (74)字段类型 (75)表操作:table (75)DML数据操作语言 (76)插入记录:insert (76)更新记录:update (77)删除记录:delete (77)DQL数据查询语言 (77)排序 (78)聚合 (78)分组 (78)java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JA V A_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
黑马测试题及答案一、单项选择题(每题2分,共10题)1. 以下哪个选项是计算机编程语言?A. 英语B. 法语C. 汉语D. Python答案:D2. 互联网的全称是什么?A. 国际互联网B. 万维网C. 局域网D. 广域网答案:A3. 以下哪个选项不是计算机硬件?A. CPUB. 内存C. 硬盘D. 操作系统答案:D4. 计算机病毒的主要传播途径是什么?A. 电子邮件B. 网络下载C. 移动存储设备D. 以上都是5. 以下哪个选项是数据库管理系统?A. ExcelB. WordC. PowerPointD. Photoshop答案:A6. 以下哪个选项是计算机操作系统?A. WindowsB. LinuxC. AndroidD. 以上都是答案:D7. 以下哪个选项是计算机编程语言?A. JavaB. C++C. RubyD. 以上都是答案:D8. 以下哪个选项是计算机存储单位?A. 字节B. 千字节C. 兆字节D. 以上都是答案:D9. 以下哪个选项是计算机网络协议?B. FTPC. TCP/IPD. 以上都是答案:D10. 以下哪个选项是计算机图形处理单元?A. GPUB. CPUC. RAMD. ROM答案:A二、多项选择题(每题3分,共5题)1. 以下哪些选项是计算机硬件?A. 显示器B. 键盘C. 鼠标D. 操作系统答案:A, B, C2. 以下哪些选项是计算机软件?A. 操作系统B. 文字处理软件C. 图像编辑软件D. 游戏答案:A, B, C, D3. 以下哪些选项是计算机存储设备?A. 固态硬盘B. 机械硬盘D. 优盘答案:A, B, C, D4. 以下哪些选项是计算机编程语言?A. PHPB. JavaScriptC. SwiftD. Kotlin答案:A, B, C, D5. 以下哪些选项是计算机网络协议?A. SMTPB. POP3C. IMAPD. SNMP答案:A, B, C, D三、判断题(每题1分,共5题)1. 计算机病毒只能通过电子邮件传播。
理论题1.Java语言基础1. 数组是引用数据类型还是基本数据类型?答:数组是引用数据类型.2. java的数据类型有哪些?答:(1)基本数据类型.整数型:byte short int long浮点型:float double字符型:char布尔类型:boolean(2)引用数据类型类接口数组3.冒泡排序和选择排序的区别?答:(1)冒泡排序依次比较相邻的两个数,将小数(或者大数)放在前面,大数(或者小数)放在后面,如此下去,重复以上过程,直至最终完成排序.(2)选择排序每一趟从待排序的数组元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列最后,直到全部待排序的数据元素排完.4. i++和++i的区别?答:简单的来说,++i和i++,在单独使用的时候,就是i=i+1;而a=++i,相当于i=i+1;a=i;而a= i++,相当于a=i;i = i+1;5.short s1 = 1; s1 = s1 + 1;有什么错? short s1 =1; short s1 +=1;有什么错?答:对于前者,由于s1 + 1 运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器会报告需要强制类型转换的错误.对于short s1 = 1; s1 +=1; 由于+=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译.6.&& 和& 的区别?答:7."==" 和equals 方法究竟有什么区别?答:"=="操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用"=="操作符.如果一个变量指向的数据是对象类型的,那么这时候就涉及到了两块内存,对象本身占用了一块内存(堆内存),变量也占用了一块内存.此时变量所对用的内存中存储的数值就是对象占用的那块内存的首地址.对于指向对象类型的变量,如果要比较两个变量是否指向同一个对象.即要看这两个变量所对应的内存中的数值是否相等,这时候需要用==操作符进行比较.A:==a:基本类型比较的是基本类型的值b:引用类型比较的是引用类型的地址值B:equals()只能比较引用类型。