首页 > 代码库 > 答辩4
答辩4
1、异常分为几种?如何区分?
异常分为编译期异常、运行期异常。编译期异常,必须要处理,否则编译无法通过。运行期异常可处理,可不处理,所有的运行期异常都是RuntimeException的子类。
2、如何得到当前工作目录?
System.getProperty(“user.dir”);
3、String x = "abc" 和 String x = new String("abc")有什么区别?
String x = “abc”。x指向数据段中的字符串常量。
String x = new String(“abc”); x指向堆中的字符串对象。但该对象必须以对应字符串常量为模版。
4、String和StringBuffer的区别?
String具有长度不可以变的特性,当对字符串作添加、删除、替换会产生新对象。
而StringBuffer是缓冲区的对象,当对其进行添加、删除、替换时不会产生新对象。
5、如何将字符串转化为基本数据类型?
int x = Integer.parseInt(“23”);
double x = Double.parseDouble(“23.3”);
6、如何将日期对象进行"2011-12-10"格式化输出?如何将"2011-12-10"字符串转化为日期类型?
SimpleDateFormat s = new SimpleDateFormat(“yyyy-MM-dd”);
String str = s.format(new Date());
Date date = s.parse(“2011-12-10”);
7、javaBean规范有哪些内容?
1、 有公共的无参构造方法。
2、 私有属性加上get/set方法进行访问和设置。
3、 对象是可序列化的。
8、什么是反射?
反射是在编译时,不清楚应该加载哪个类,类的加载是在运行期进行的。通过反射我可以对类进行加载、探知、自审。
9、如何得到Class对象?如何利用Class对象产生该类的对象?
类名.class 对象名.getClass() Class.forName(“类的全路径”)
Class对象.newInstance();
10、线程和进程的区别?
进程有自己独立的内存空间,进程一开启就会消耗内存。而线程是进程内部的顺序控制流。多个线程共享一个进程内存空间。
11、创建线程有几种方式?如何启动线程?调用start()和调用run()的区别?
创建线程:1、继承Thread类,重写run() 2、实现Runnable接口,实现run()。
启动线程:start();
启动线程用start,这时会在主线程之外产生新的线程,多个任务同时执行。而直接调用run(),不会产生新线程。
12、线程有几种状态?
新建 就绪 运行 死亡 休眠 等待 挂起 阻塞
13、什么是线程优先级?分为几级?
当两个或两个以上的线程同时要求启动时,优先级高的线程优先得到CPU的使用权。优先级分为10级,数字越大,优先级越高。
14、什么是线程同步?同步会造成什么结果?
线程同步是指当两个或两个以上的线程同时访问同一个资源,为了保护数据的安全,只允许在同一时间一个线程去访问。
线程同步会造成1、数据安全 2、效率低下。
15、wait和sleep的区别?
1、 sleep在Thread中定义,而wait在Object中定义。
2、 wait只能放在同步方法或同步块中,而sleep可以放在任何位置。
3、 wait会释放对象锁,而sleep不会。
4、 wait需要唤醒线程才会继续执行,而sleep在休眠结束后,自动恢复运行。
16、集合的作用是什么?集合框架的API结构是怎样的?
集合的作用是对数据进行存储、检索、操作、传输。
集合框架分为:接口、实现类、算法。
接口:Collection为父接口,下面两个子接口:List、Set,另外还有Map接口
17、List、Set、Map集合各自有什么特点?
List特点:线性,元素可以重复
Set特点:元素不可重复
Map特点:键值对,一个元素包含两个对象。键不能重复。
答辩4