首页 > 代码库 > 答辩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