笔试题:
1. ArrayList<Integer> list = new ArrayList<Integer>(); 在这个泛型为Integer的ArrayList中存放一个String类型的对象。
import java.lang.reflect.Method;
import java.util.ArrayList;
//在这个泛型为Integer的ArrayList中存放一个String类型的对象。
public class Demo {
//思路: 用反射跳过泛型,调用 ArrayList类中的add方法添加string
public static void main(String[] args) throws Exception{
ArrayList<Integer> al = new ArrayList<Integer>();
String str = "xiaomig";
Method m = al.getClass().getMethod("add", Object.class);// 得到add方法对象
m.invoke(al, str);
for(int x=0;x<al.size();x++){
System.out.println(al.get(x));
}
}
}
2.使用带缓冲功能的字节流复制文件。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Demo {
public static void main(String[] args) throws IOException {
FileInputStream in=new FileInputStream("c:\\a.flv");
FileOutputStream out =new FileOutputStream("c:\\d.flv");
BufferedInputStream bin= new BufferedInputStream(in);
BufferedOutputStream bout= new BufferedOutputStream(out);
byte[]bytes=new byte[1024*8];
int len=0;
while((len=bin.read(bytes))!=-1){
bout.write(bytes, 0, len);
}
bin.close();
bout.close();
}
}
3.编写一个延迟加载的单例设计模式。
/*
单例模式的要点有三个:
一是某各类只能有一个实例;
二是它必须自行创建这个事例;
三是它必须自行向整个系统提供这个实例
懒汉式和饿汉式有什么不同
懒汉式在于实例的延时加载,会有多线程安全问题,需要用加同步的方式解决,但这种加锁会导致低效,用双重if的
判断形势能解决效率问题,加同步时用的锁是该类的字节码文件
*/
class Single {
private static Single s=null;
private Single(){}
public static Single getInstance(){
if(s==null){
synchronized(Demo.class){
if(s==null){
s=new Single();
}
}
}
return s;
}
}
4.编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
5.求三位数的质数,只能被本身和1整除!!!(歇菜这道题)
sqrl()http://bbs.itheima.com/thread-175474-1-1.html
6.为什么配置path,什么时候配置classpath?
设置path是为了让javac或java命令可以运行
设置classpath是为了给程序的运行指定根目标
7.迭代器遍历map集合的步骤?
8.获取class字节码文件的步骤?
9.把集合存到arraylist里面,怎么做。
泛型。集合中的数据类型必须是arrayList的子类对象,或者类型相同
10.把当前文件中的所有文本拷贝,存入一个txt文件,统计每个字符出现的次数并输出
面试题: 自我讲述多线程 、 IO 、 集合 、反射。
1.笔试中的题每一道题都加以说明解释下,面试官手里有咱们的笔试题,如果笔试答的有问题,最好出来后找下正确答案,面试时可能会问相关的问题.
2.单例设计模式为什么要这样写?延迟加载的单例属于哪种设计模式?
3.打印流是什么?flush()和close()方法有什么区别?
4.什么是转换流?举例说明什么时候使用转换流?
InputStreamWriter OutputStreamReader
字节流转成字节流
5.成员变量和局部变量的区别?
6.遍历集合有几种方法?
7.Map集合转成set集合有几种方式,分别是什么?具体说说这两种方式的思想?
8.说下set集合。具体分析下特点
9.TreeSet有几种排序方法?分别说明?
10.方法中的内部类能不能访问方法中的局部变量,为什么?
11.如何创建线程?分别说明?
12.String转换Integer的方法?(这题其实是我自己回答偏了,问到的,实际上应该是考反射那里的问题)
13.什么是反射?有几种方法加载字节码?分别是什么?
14.通过反射能获取什么?
15.为什么需要配置path,什么时候需要classpath?作用是什么?
16.线程中wait和sleep方法的区别
17.多线程通信,死锁,然后就是多线程通信的方法,wait sleep讲一讲。
18.说说你对集合的理解
19.说说你对反射的理解
20.什么时候会使用转换流
21.循环中怎么结束
22.说说接口和抽象类的特征和区别
23.多线程创建有几种方式?它们的区别
24.多线程为什么会照成不安全问题?怎么解决?
25.说说你对死锁的理解
26.对数组排序有几种
27.Map集合两种取出方式
28.字符流和字节流的区别
29,简述一下集合
30,简述一下线程
31,简述一下反射
32,使用代码实现线程的两种方式
33,使用代码实现一个匿名内部类
34,使用代码实现用反射方式创建对象
35,为什么选择黑马 还有当工作中和同事出现分歧怎么解决?
36,黑马给你的第一印象是什么?
37,复制文件夹下后缀是“.java”的文件,并重命名该文件后缀改为“.txt”,要求是先复制再改名。(这种题回答思路,和核心方法就可以)
38,集合中有没有delete方法
没有,只有remove
39,数组中有length方法吗
没有,lenth是数据的属性
40,编程中遇到过异常吗,都遇到了哪些异常,请你简述一下你遇到的异常以及解决方案。
41,从一个文本文件中读取获得字符串,统计该字符串中各个字符出现的次数,按照自然排序的方式打印
42,请说明字符流和字节流的区别在哪儿?readLine实现的机制是什么?
43, String类哪个方法返回一个数组?
tocharArray()