0325笔试(未完)

来源:互联网 发布:在windows上安装spark 编辑:程序博客网 时间:2024/05/20 18:01

1、final、finally、finalize区别

final:关键字,修饰符。
1.声明类:不能派生出新的子类,不能被继承。因此,一个类不能同时被声明为absrtact抽象类的和final的类。
2.声明变量:在声明时给定初值,在以后的引用中只能读取,不可修改。 
3.声明方法:不能重载。

finally{}:异常处理机制,try语句中的区块标志。
finally是对Java 异常处理模型的最佳补充。finally 结构使代码总会执行,而不管有无异常发生。使用 finally 可以维护对象的内部状态,并可以清理非内存资源。特别是在关闭数据库连接这方面,如果程序员把数据库连接的close()方法放到finally中,就会大大降低程序出错的几率。

finalize():方法名。
在垃圾收集器将对象从内存中清除前调用finalize()方法,进行垃圾回收,做必要的清理工作,类似c++中的折构函数。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。在Object类中定义,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
(btw:一直不理解为什么老是把它们三个放一起考。。)

2、collection和collections区别

Collection是集合类的一个顶级接口,其直接继承接口有List与Set
java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

3、string s = new string("xyz");创建了几个String object?
4、math.round(11.5)等于多少?math.round(-11.5)? -11.6?
round是四舍五入,注意负数5是舍的,例如:Math.round(1.5)值是2,Math.round(-1.5)值是-1;
5、数据连接池的工作机制?
6、string与stringbuffer区别?

7、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
1)垃圾回收的两个关键要素:
发现无用对象。
回收无用对象的内存空间。
2)6种垃圾回收算法:
引用计数法,tracing 算法,compacting算法,copying 算法,generation算法,adaptive算法。


8、同步和异步的异同?在什么情况下分别使用他们?举例说明

9、启动一个线程是用run()还是start()?

start()
1)wait() notify() sleep()
sleep是Thread类的函数,wait和notify是Object的函数。
sleep的时候keep对象锁,wait的时候release 对象锁。
sleep时监控状态依然保持。wait进入等待池,只有针对该对象发出了notify才会进入对象锁池。
Sleep时间过了就会恢复运行,wait后等到notify了,也不一定是立即运行。
Wait和notify是非static函数,sleep是Thread类的static函数。

2)stop() destroy() suspend()
都是Thread类的函数,都不推荐使用。
stop放弃了所有的lock,会使得对象处于一种不连贯状态。
destroy的时候如果还keep了某些资源的lock,那就死定了
suspend会继续持有所有的lock,容易发生死锁。

3)创建线程:
继承Thread类,override它的abstract函数run
实现Runnable接口,写run函数。

4)让线程跑起来:
start()函数

10、try{}里有return语句时,后面的finally是否执行?什么时候执行?
11、写一个方法实现字符串的反转,如:输入abc,输出cba
13、翻译

(3)finally{}用于标识代码块,与try{}进行配合,不论try中的代码执行完或没有执行完(这里指有异常),该代码块之中的程序必定会进行;
(2)finalize()方法在Object中进行了定义,用于在对象“消失”时,由JVM进行调用用于对对象进行垃圾回收,类似于C++中的析构函数;用户自定义时,用于释放对象占用的资源(比如进行I/0操作);
0 0
原创粉丝点击