Java的跨平台原理是什么?
Java通过不同的系统,不同版本,不同位数的java虚拟机来屏蔽不同的系统指令集差异,而对外提供统一的接口(Java API),对于我们普通的java开发者,只需要按照接口开发即可。如果我们系统需要部署到不同的环境时,只需要在系统上安装对应版本的虚拟机即可。
Java面向对象的特征是什么?
封装:将一个对象封装成一个高度自治和相对封闭的个体。
抽象:把现实生活中的对象抽象成为类。
继承:把一个已经存在的类所定义的内容作为自己的内容,并且可以加入若干新的内容,或修改原来的方法使之更合适特殊的需要,这就是继承。
多态:利用父类引用指向子类对象。程序调用某个方法在运行期动态绑定。
==和equals方法的区别是什么?
==用来判断两个变量之间的值是否相等,变量就可以分为基本数据类型和引用类型,如果是基本数据类型的变量直接比较值,而引用数据类型要比较对象的内存首地址。equals方法用来比较两个对象长得是否一样,判断两个对象某些特征是否一样。
String和StringBuilder的区别?StringBuffer和StringBuilder的区别?
String是内容不可变的字符串,String底层使用了一个不可变的字符数组(final char[]),而StringBuffer和StringBuilder是内容可变的字符串,底层使用了一个可变的字符数组。StringBuffer是线程安全的,效率较低。StringBuilder是线程不安全的,效率较高。
forward和redirect的区别是什么?
(1) forward是服务器端的转向,而redirect是客户端的跳转。
(2) 使用forward浏览器地址不会发生改变,而redirect会发生改变。
(3) forward是一次请求中完成,而redirect是重新发起请求。
(4) forward是在服务器端完成,而不用客户端重新发起请求,效率高。
HashMap和HashTable的区别是什么?
(1) HashMap和HashTable都可以使用来存储key-value的数据。
(2) HashMap是可以把null作为key或者value的。而HashTable是不可以的。
(3) HashMap是线程不安全的,效率高。而HashTable是线程安全的,效率较低。
(4) 如何做到线程安全效率又高?
使用ConcurrentHashMap。ConcurrentHashMap通过把Map分为N个Segment,可以提供相同的线程安全,但是效率提高数倍。
结语
小编是一枚Java Coder,业余写文章,现主营微信公众号《Java患者》,喜欢的话关注我的公众号或者加我微信我们一起学习Java