黑马集合知识测试(带解析)

合集下载

黑马基础测试

黑马基础测试

黑马程序员训练营基础测试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工具打成压缩包后提交,如图所示:。

毕向东java基础总结黑马入学考试知识点

毕向东java基础总结黑马入学考试知识点

目录概述:错误!未指定书签。

语法基础错误!未指定书签。

面向对象错误!未指定书签。

常用错误!未指定书签。

集合框架错误!未指定书签。

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) 冰箱,你给我把门关上依次做这些动作,就能把大象装进冰箱。

黑马Java-IO知识测试附答案

黑马Java-IO知识测试附答案

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异常说法不正确的是()。

黑马入学测试题答案(整理).(DOC)

黑马入学测试题答案(整理).(DOC)

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类型的对象。

黑马面试

黑马面试
private static Single2 s = null;
public static Single2 getInstance(){
if(s==null)
s = new Single2();
return s;
}
}
二 继承 ★★★★★
好处:
1:提高了代码的复用性。
2:让类与类之间产生了关系,提供了另一个特征多态的前提。
解决安全问题的原理:
只要将操作共享数据的语句在某一时段让一个线程执行完,在执行过程中,其他线程不能进来执行就可以解决这个问题。
如何进行多句操作共享数据代码的封装呢?
java中提供了一个解决方式:就是同步代码块。
格式:
synchronized(对象) { // 任意对象都可以。这个对象就是锁。
public static Single getInstance(){ //定义公有并静态的方法,返回该对象。
return s;
}
}
---------------------------------------------
//懒汉式:延迟加载方式。
class Single2{
private Single2(){}
多态的好处:提高了程序的扩展性。
多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。(前期不能使用后期产生的功能,即访问的局限性)
多态的前提:
1:必须要有关系,比如继承、或者实现。
2:通常会有覆盖操作。
匿名内部类:没有名字的内部类。就是内部类的简化形式。一般只用一次就可以用这种形式。匿名内部类其实就是一个匿名子类对象。想要定义匿名内部类:需要前提,内部类必须继承一个类或者实现接口。

黑马程序员java培训就业班笔记集合体系总结

黑马程序员java培训就业班笔记集合体系总结

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基础总结黑马入学考试知识点(DOC)

毕向东java基础总结黑马入学考试知识点(DOC)

目录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中设置的路径下找。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c)哈希表结构
d)红黑树结构
3.LinkedList类的特点是( )
a)查询快
b)增删快//由于底层是链表结构,所以增删快,查询慢.
c)元素不重复
d)元素自然排序
4.Vector类的特点是( )
a)线程同步//这是早期工具的特性之一,安全性高,后来出现的集合都是求效率.b)线程不同步
c)增删快
d)底层是链表结构
c) <Map.Entry<String, Integer>>
map.keySet()
Map.Entry
d)<Map.Entry<String, Integer>>
map.entrySet()
Map.Entry
24.Set集合的特点是( )
a)元素有序
b)元素无序,不存储重复元素//记住.
c)存储重复元素
list.remove(i);
}
}
b)
for(inti =0; i < list.size(); i++) {
if("java".equals(list.get(i))){
list.remove(i);
}
}
c)list.remove("java");
d)list.removeAll("java");
b)增强for循环实现
c)get()和size()方法结合实现
d)get()和length()方法结合实现
29.下面类或者接口中,不属于集合体系的是( )
a)java.util.Collections
b) java.util.Map
c) java.util.Vector
d)java.util.Hashtable
String s = (String)it.next();
if(s.equals(“c”)){
al.add(“c1”);
}
}
System.out.println(al);
a)[a,b,c]
b)[c1]
c)[a,b,c,c1]
d)抛出ConcurrentModificationException异常//如何解决这个问题.看下面代码.
15.将集合转成数组的方法是( )
a)asList()//Arrays.asList();记住吧.
b)toCharArray()
c)toArray()
d)copy()
16.下面关于HashMap和Hashtable的区别,说法正确的是( )
a) Hashtable线程不安全,效率高//A B选项说反了
d)具有setValue( )方法
23.题示代码的功能为:循环遍历输出Map当中的每一个元素
Map map=new HashMap();
map.put(“jessica”,100);
map.put(“tom”,200);
map.put(“den”,300);
Set位置①set =位置②;
for (位置③per : set) {
c)hashCode值一般与对象的成员变量有关。
d)只要重写equals方法,就一定要重写hashCode方法
编译失败//因为有泛型<String>存在,所以只能存String.
[true,123]
[true,123,abc];
[abc];
10.将Map集合中的键存储到Set集合的方法是( )
a)entrySet()
c)ArrayList底层是数组结构,Vector底层是链表结构
d)ArrayList底层是链表结构,Vector底层是数组结构
13.ArrayList的初始化内容如下:
ArrayList<String> list =newArrayList<>();
list.add("java");
list.add("aaa");
list.add("java");
list.add("java");
list.add("bbb");
下面可以删除list中所有的“java”的代码是( )
a)
for(inti = list.size()-1; i >= 0; i--) {
if("java".equals(list.get(i))){
集合部分测试题
考试宣言:
同学们,考试考多少分不是我们的目的!排在班级多少的名次也不是我们的初衷!
我的考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要注意听!那时候学会了,记住了,也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。
//ListIteratorit =al.ListIterator();要解决并发修改异常,就要用LIst集合特有的迭代器.这个迭代器可以同时做到上面的操作.
22.关于Map.Entry接口说法错误的是( )
a)具有getkey()方法
b)具有getValue()方法
c)具有keySet()方法//这个方法是map集合的.
map.put(ch[i], 1);
}
d)
if(map.containsKey(ch[i])) {
map.put(ch[i], (Integer) map.get(ch[i]) + 1);}else{
map.put(ch[i], 1);
}
19.对于HashMap集合说法正确的是( )
a)底层是数组结构
14.使用TreeSet的无参构造创建集合对象存储元素时,该元素必须( )a)必须实现Comparable接口//这是存到TreeSet集合对象必须做的,字符串已经实现了Comparable接口,所以我们存的时候,直接就可以.
b)有main方法
c)有get和set方法
d)必须实现Serializable接口
b) java.util.Collection
c) java.util.List
d) java.util.Set
7.实现下列哪个接口,可以启用比较功能( )
a)Runnable接口
b)Iterator接口
c)Serializable接口
d)Comparator接口//比较器接口
8.下面代码运行的结果是( )
18.下面的代码用于输出字符数组ch中每个字符出现的次数
publicstaticvoidmain(String[] args) {
char[] ch = {'a','c','a','b','c',
HashMap map =newHashMap();
for(inti = 0; i < ch.length; i++) {
5.关于迭代器说法错误的是( )
a)迭代器是取出集合元素的方式
b)迭代器的hasNext()方法返回值是布尔类型
c)List集合有特有迭代器ListIterator
d)next()方法将返回集合中的上一个元素//返回下一个元素.
6.在我们所学知识中,下面哪几项是接口( )
a) java.util.Map
//位置①
}
System.out.println(map);
}};'b'
应该填入位置①的代码是,不允许使用工具运行程序( )
a)
if(map.contains(ch[i])) {
map.put(ch[i], map.get(ch[i]) + 1);
}else{
map.put(ch[i], 1);
}
b)
d)Set集合都是线程安全的
25.关于将int数组使用系统提供的API转成集合后,不可以进行的操作是( )a)增加集合中的元素//数组转成的集合它的性质和那种以前的集合不一样了.大家可以试一下.可以修改元素内容,不能添加元素个数
b)迭代集合
c)修改集合中的元素
d)获取集合中元素的个数
26.下面代码运行的结果是( )
System.out.println(per.getKey() + ":" + per.getValue());}
下列每个选项中分别填入上面三个位置,正确的是
a) <Entry>
map.keySet()
Entry
b) <Entry<Integer, String >>
map.entrySet()
Entry
b) HashMap线程安全,效率低
c)HashMap允许null键和值
d)Hashtable不允许null键和值
17.对于增强for循环说法错误的是( )
a)增强for循环可以直接遍历Map集合//可以间接遍历.
b)增强for循环可以操作数组
c)增强for循环可以操作Collection集合
d)增强for循环是JDK1.5版本后出现的
ArrayList<String> al = new ArrayList<String>();
al.add(true);
al.add(123);
al.add(“abc”);
System.out.println(al);
a)
b)
相关文档
最新文档