Java面试锦囊(一)

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
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值