Android 面试题总结 Java基础篇

有些话、适合烂在心里 提交于 2019-12-11 15:18:11

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

#1.public,private,protected,以及不写时的区别?

##public

为公共成员变量和函数成员,在整个类内类外都可使用,在子类变为public

##private

为私有成员变量和函数成员,只在声明的类内可以使用,子类不可用

##protected

为受保护成员变量和函数成员,类外不可使用。类内可以使用,子类变为private

##不使用关键字

默认为类内使用。

#2.int与Integer的区别

Ingeter是int的包装类,int是基本数据类型初值为0,Ingeter是一个类初值为null。
##结论

①无论如何,Integer与new Integer不会相等。不会经历拆箱过程,一个引用指向堆,另一个指向专门存放他的内存(常量池),他们的内存地址不一样,所以为false
②两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false java在编译Integer i2 = 128的时候,被翻译成-> Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存
③两个都是new出来的,都为false
④int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int再去比

##例子

因为常量池的范围在-128到127 所以他们都是新的对象 比较的话 是比较地址值 所以为false

Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);//false

一个存在常量池 一个是指引常量池的地址值 对比所以为false

Integer i5 = 127;
Integer ii5 = new Integer(127);
System.out.println(i5 == ii5); //false

new了2个不同的对象 肯定不想等 地制止不一致

Integer i7 = new Integer(128);
Integer i8 = new Integer(123);
System.out.println(i7 == i8);  //false

#3.Collection和Collections的区别

##Collection

java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。 Collection

##Collections

java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

#4.HashMap和HashTable的区别

##HashMap

底层数据结构是哈希表;允许使用null键和null值,不同步,效率高 ,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;

##HashTable

它继承自Dictionary类 ,不允许键或者值为空,同步,效率低

#5.sleep和wait的区别

1.sleep指线程被调用时,占着CPU不工作,而wait被调用时,等待CPU使用
2.sleep方法没有释放锁,而 wait 方法释放了锁,使得其他线程可以使用同步控制块或者方法。
3.wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用
4.sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常 5.sleep是Thread静态方法,wait是Object的成员方法

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!