java基础问题巩固(1)
- 你对java垃圾回收了解吗?什么时候需要使用?
答: 垃圾回收器的作用是查找和回收(清理)无用的对象,从而让jvm更 有效的使用内存。但是运行因为垃圾回收本身会有开销,过于频繁的使用会导致性能下降。比如有些程序在短期内需要大量的内存,这时候有必要强制下达一条垃圾回收命令,以便于有更多可用的物理内存。垃圾回收的目的就是识别并且丢弃应用不再使用的对象来释放和重用资源。
2.static理解什么?什么时候需要使用?
答:static是修饰词,被static关键字修饰的方法/变量不需要依赖对象来进行访问,也就是说只要类被加载了,就可以通过类名去进行访问。当一个方法或变量需要初始化加载的时候,或是经常需要被调用的时候需要加上static。
3.多线程问题,当多个线程需要访问多个资源时,怎样才能保证不死锁。
答:多线程中避免死锁的方式是:指定一个获取锁的顺序,使得所有的线程都是以同样的顺序进行获取锁和释放锁,这样就能避免死锁的情况。
4.字符串之间(str1与str2)的拼接有几种方式,并且区别是什么?
答:有两种方式,str1+str2 直接使用+进行拼接,或是使用StringBuilder的方式
【StringBuilder sb= new StringBuilder();
sb.append(str1);
sb.append(str2);】 如果通过循环1000次数拼接测试 发现StringBuilder在拼接繁杂的情况下,其中的耗时比+进行拼接的方式要少。如果拼接的字符串比较多则可以优先考内存时。结合耗时我们可以得出这样的结论,在使用大量字符串拼接的时候优先使用StringBuilder。
5.你对二叉树了解吗?
答:二叉树的每个节点最多有两个子树,左右子树是有顺序的,即使只有一个子树也要区分二叉树。二叉树的遍历,从根节点出发,按照某种次序访问二叉树的所有节点。(前序 中序 后序遍历)
6.变量A和B,需要交换值,但是没第三个变量,怎么实现?
答: A=A+B; B=A-B; A=A-B; 最后输出 A B