2024年3月27日发(作者:闾沈静)
黑马面试题
1:定义map集合,并自定义对象,对map集合遍历,打出key和value值 【已完成】
2:定义一个类A,类中定义一个show方法,打印一句话,在定义一个TestA类,利用反射
在TestA中创建A的对象,并调用show方法
3:使用高效字符缓冲流复制文件
4:把C盘中的一个多层文件夹拷贝到D盘中。用高效的方法(要求写思路,注释,代码)
5:Integer泛型Map中存储字符串
6:开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可。
7:Map的两种遍历方式 【已完成】
8:如何用反射去创建一个对象,有2种方式,尽量用代码去体现
9:编写一个程序,把这个目录里边的所有的带.java文件都拷贝到另一个目录里边,拷贝成
功以后,把后缀名是.java改成.txt
10:创建多线程的方式有几种?尽量用代码去体现
11:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍
历并打印出各元素的key和value。 【已完成】
12:编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List
集合进行排序(自定义排序算法,禁用方法和TreeSet),然后遍历集合
输出 【已完成】
14:Collection集合下班有哪些类,哪些类又有哪些特点
List
Set
15: 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
16: 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象,
并调用该对象中的方法。
17:编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,
作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的
对象,并调用该对象中的方法showString
18:复制多级文件夹
19:写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,用for循环
创建5个线程对象。需求如下:
① 利用线程类的构造函数输出:"创建线程4"。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,所以输出
的"创建线程4"就是创建的第四个线程)
② 在run方法中输出:"线程X :计数Y",当执行次数达到6次的时候,退出。
(备注:其中"线程X"为第X个线程,"计数Y"为该线程的run方法执行了多少次)
20:23 9 -4 18 100 7" 要求对这串数字按照从小到大排序,生成一个数值有序的字符串。
21:一个是随机生成5个1--10之间的随机数,存入list集合中,自定义排序,不能用sort
方法
22:递归删除多级文件
23:一道ArrayList集合创建添加元素并删除abc
24:取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:
a(2)b(1)k(2)...
25:有类似这样的字符串:"1.2,3.4,5.6,7.8,5.56,44.55", 请按照要求,依次完成以
下试题
① 以逗号作为分隔符,把已知的字符串分成一个String类型的数组,
数组中的每一个元素类似于"1.2","3.4"这样的字符串;
② 把数组中的每一个元素以.作为分割,把.号左边的元素作为key,
把.号右边的元素作为value,封装到Map中,map中的key和value都是Object
类型;
③ 把map中的key封装到Set中,并且把set中的元素输出;
④ 把map中的value封装到Collection中,把collection中的元素输出。
26:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍
历并打印出各元素的key和value。
27:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一
个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
------------------------------考察知识篇---------------------------
1:反射的理解
2:集合框架的概述、arraylist的特点、map集合的特点、Collection集合下班有哪些类,
哪些类又有哪些特点、HashMap是Hashtable的区别
3:懒汉模式和饿汉模式的区别
4:进程和线程的关系、线程的理解、线程安全问题、线程创建方式、死锁是什么、创建多线
程的方法、线程休眠的方法、sleep睡眠时间的单位、同步函数与同步代码块的区别,Sleep
和 wait方法有什么区别。同步与异步的区别、为什么wait(),notify(),notifyAll()等方法
都定义在Object类中、同步的原理:就是将部分操作功能数据的代码进行加锁。说说对线程
池的理解、run和start什么区别?
5:匿名部类理解
6:抽象类的理解
7:面向对象和面向过程的区别,面向对象的三个特征: 封装,继承,多态
8:atch..finally
9:对反射暴力反射的理解、反射的理解和应用、获取字节码的三种方式,以及主要用在什么
什么地方、用反射创建对象的两种方法?
10:Set集合和List集合的区别、什么是数组、数组和集合的区别、HashMap和Hashtable
的区别、Set、List、Map集合的区别、Collection 和 collections的区别,ArrayList和
Vector的区别、List和Set有什么区别、List下面的两个类的的优点和缺点、hashset怎样
保证元素的唯一性、TreeSet怎样保证元素的唯一性、迭代器的特点。treeset的特点
11:面向对象编程思想
12:访问控制符
13:接口能继承类吗?接口和抽象类、说说接口和抽象类的特征和区别
14:介绍一下io、IO流的体系和理解、如何使用字节流的?什么时候会用到转换流呢?IO流
的flush和close方法的作用和区别、字节流和字符流的区别、请说明字符流和字节流的区
别在哪儿?readLine实现的机制是什么?
17:线程通信的理解、线程的状态、为什么会有多线程的安全问题、多线程安全问题的解决
办法、创建线程有几种方式,那种方式比较好,为什么、同步的前提、说说你对死锁的理解
18:StringBuffer和StringBuilder的区别
19:增强for和普通for的区别,增强for循环 有些缺点,例如不能在增强循环里动态的删
除集合容。不能获取下标等。
2024年3月27日发(作者:闾沈静)
黑马面试题
1:定义map集合,并自定义对象,对map集合遍历,打出key和value值 【已完成】
2:定义一个类A,类中定义一个show方法,打印一句话,在定义一个TestA类,利用反射
在TestA中创建A的对象,并调用show方法
3:使用高效字符缓冲流复制文件
4:把C盘中的一个多层文件夹拷贝到D盘中。用高效的方法(要求写思路,注释,代码)
5:Integer泛型Map中存储字符串
6:开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可。
7:Map的两种遍历方式 【已完成】
8:如何用反射去创建一个对象,有2种方式,尽量用代码去体现
9:编写一个程序,把这个目录里边的所有的带.java文件都拷贝到另一个目录里边,拷贝成
功以后,把后缀名是.java改成.txt
10:创建多线程的方式有几种?尽量用代码去体现
11:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍
历并打印出各元素的key和value。 【已完成】
12:编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List
集合进行排序(自定义排序算法,禁用方法和TreeSet),然后遍历集合
输出 【已完成】
14:Collection集合下班有哪些类,哪些类又有哪些特点
List
Set
15: 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
16: 编写一个类,增加一个实例方法用于打印一条字符串。并使用反射手段创建该类的对象,
并调用该对象中的方法。
17:编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,
作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的
对象,并调用该对象中的方法showString
18:复制多级文件夹
19:写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,用for循环
创建5个线程对象。需求如下:
① 利用线程类的构造函数输出:"创建线程4"。
(备注:当创建一个线程的时候,标记为1,再次创建一个线程的时候,标记为2,所以输出
的"创建线程4"就是创建的第四个线程)
② 在run方法中输出:"线程X :计数Y",当执行次数达到6次的时候,退出。
(备注:其中"线程X"为第X个线程,"计数Y"为该线程的run方法执行了多少次)
20:23 9 -4 18 100 7" 要求对这串数字按照从小到大排序,生成一个数值有序的字符串。
21:一个是随机生成5个1--10之间的随机数,存入list集合中,自定义排序,不能用sort
方法
22:递归删除多级文件
23:一道ArrayList集合创建添加元素并删除abc
24:取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:
a(2)b(1)k(2)...
25:有类似这样的字符串:"1.2,3.4,5.6,7.8,5.56,44.55", 请按照要求,依次完成以
下试题
① 以逗号作为分隔符,把已知的字符串分成一个String类型的数组,
数组中的每一个元素类似于"1.2","3.4"这样的字符串;
② 把数组中的每一个元素以.作为分割,把.号左边的元素作为key,
把.号右边的元素作为value,封装到Map中,map中的key和value都是Object
类型;
③ 把map中的key封装到Set中,并且把set中的元素输出;
④ 把map中的value封装到Collection中,把collection中的元素输出。
26:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍
历并打印出各元素的key和value。
27:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一
个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
------------------------------考察知识篇---------------------------
1:反射的理解
2:集合框架的概述、arraylist的特点、map集合的特点、Collection集合下班有哪些类,
哪些类又有哪些特点、HashMap是Hashtable的区别
3:懒汉模式和饿汉模式的区别
4:进程和线程的关系、线程的理解、线程安全问题、线程创建方式、死锁是什么、创建多线
程的方法、线程休眠的方法、sleep睡眠时间的单位、同步函数与同步代码块的区别,Sleep
和 wait方法有什么区别。同步与异步的区别、为什么wait(),notify(),notifyAll()等方法
都定义在Object类中、同步的原理:就是将部分操作功能数据的代码进行加锁。说说对线程
池的理解、run和start什么区别?
5:匿名部类理解
6:抽象类的理解
7:面向对象和面向过程的区别,面向对象的三个特征: 封装,继承,多态
8:atch..finally
9:对反射暴力反射的理解、反射的理解和应用、获取字节码的三种方式,以及主要用在什么
什么地方、用反射创建对象的两种方法?
10:Set集合和List集合的区别、什么是数组、数组和集合的区别、HashMap和Hashtable
的区别、Set、List、Map集合的区别、Collection 和 collections的区别,ArrayList和
Vector的区别、List和Set有什么区别、List下面的两个类的的优点和缺点、hashset怎样
保证元素的唯一性、TreeSet怎样保证元素的唯一性、迭代器的特点。treeset的特点
11:面向对象编程思想
12:访问控制符
13:接口能继承类吗?接口和抽象类、说说接口和抽象类的特征和区别
14:介绍一下io、IO流的体系和理解、如何使用字节流的?什么时候会用到转换流呢?IO流
的flush和close方法的作用和区别、字节流和字符流的区别、请说明字符流和字节流的区
别在哪儿?readLine实现的机制是什么?
17:线程通信的理解、线程的状态、为什么会有多线程的安全问题、多线程安全问题的解决
办法、创建线程有几种方式,那种方式比较好,为什么、同步的前提、说说你对死锁的理解
18:StringBuffer和StringBuilder的区别
19:增强for和普通for的区别,增强for循环 有些缺点,例如不能在增强循环里动态的删
除集合容。不能获取下标等。