Java面试题

Java1.5之后出现的

1)泛型

2)迭代器

3)包装类(自动装箱拆箱)

4)新的锁对象Lock

5)Java内置开始支持线程池

Java1.7之后出现的

switch开始可用String

1、HashMap和Hashtable的区别?

1) 它们都属于Map接口的类,均是<k,v>格式

2) HashMap类没有分类或者排序,它允许一个null键和多个null值,线程不安全

3) Hashtable类似于HashMap,但是不允许null键和null值,是线程安全的

2、阐述StringBuilder和 StringBuffer区别?

1)StringBuffer:线程安全,

      StringBuilder:线程不安全。

因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 StringBuilder 修饰。

2)StringBuffer 每次获取 toString 都会直接使用缓存区的 toStringCache 值来构造一个字符串。而 StringBuilder 则每次都需要复制一次字符数组,再构造一个字符串。

3)StringBuffer 是线程安全的,它的所有公开方法都是同步的,StringBuilder 是没有对方法加锁同步的,所以毫无疑问,StringBuilder 的性能要远大于 StringBuffer。

3、final、finally、finalize的区别?

1)final用于声明属性,方法和类,分别表示成员变量不可更改且必须初始化,方法不可重写,类不可继承。

2)finally作为异常处理的一部分,只能再try/catch语句中,并且附带的一个语句块最终一定执行,经常被用在需要释放资源的情况下

3)finalize是在java.lang.Object里定义的方法,finalize就是用于垃圾回收的。 什么时候回收不确定

4、简述逻辑操作(&,|)与条件操作(&&,||)的区别?

1)最终结果是一样的

2)&&具有短路效果,左边为false的时候,右边不执行,结果就是false

                                   左边是true的时候,继续执行右边,有false结果就是false

     ||具有短路效果,左边为true的时候,右边不执行,结果就是true

                                左边是false,继续执行右边,有true,结果就是true

5、方法重载和方法重写的区别?

1)方法重载:方法名相同,参数列表不同,与返回值无关

2)方法重写:方法名相同,参数列表相同,返回值相同,且子类权限不得低于父类

英文

位置不同

作用不同

重载

overload

同一个类中

在一个类里面为一种行为提供多种实现方式并提高可读性

重写

override

子类和父类间

父类方法无法满足子类的要求,子类通过方法重写满足要求

修饰符

返回值

方法名

参数

抛出异常

重载

无关

无关

相同

不同

无关

重写

大于等于

小于等于

相同

相同

小于等于

6、int与Integer的区别?

1) int是java提供的8种原始数据类型之一,

    Integer是java为int提供的封装类。

2) int的默认值是0,而Integer的默认值为null。

3) Integer可以区分出未赋值和值为0的区别,int则无法表达未赋值的情况。

4) Integer提供了多个与整数相关的操作方法,将一个字符串转换成整数,还定义了表示整数的最大值和最小值的常量。

5) 在使用集合存整数时,只能使用Integer而不能使用int。

7、this与super的区别?


this代表的是当前对象的引用

super代表是父类存储空间的标识的引用(代表当前类父类的对象)

8、string类面试题 

 String s1 = new String(“hello”); 和 String s2 = “hello”; 的区别?

1)==比较引用数据类型比较的是地址值

2)equals默认比较的是地址值,但是由于String类中重写了该方法,所以比较的是内容

3)String s1 = new String(“hello”) 会在堆内存中创建对

9、JRE与JDK的区别

JRE(即Java运行环境)

包含了JVM(即Java虚拟机)+ Java程序所需的核心类库,若想运行一个已开发好的Java程序,只需安装一个JRE即可。

JDK(即Java开发工具包)

包含了Java的开发工具 + 也包含了JRE,是给Java开发人员使用的。故安装了JDK之后就不用在安装JRE了。

简单来说:JDK开发完成的Java程序,交给JRE去运行。

其中Java的跨平台性是由JVM保证的,但JVM本身不具有跨平台性。

10、switch语句中表达式的结果值的类型可以是哪些呢?

        表达式的 取值:byte,short,int,char

        JDK5之后可以传入枚举

        JDK7之后可以是String(面试题)

11、强制类型转换

byte b1=3,b2=4,b;

b=b1+b2; //这一步会出错,因为byte参与运算时会自动转换成int类型,b1+b2此时是int类型,而b此时是byte类型,由int类型转换成byte类型是强制转换

b = 3 + 4;//这一步不报错,是常量时,会先把结果计算出来,然后再去看结果在不在接收数据类型的范围类,如果在就不报错

12、OSI参考模型

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值