java-基础面试总结(持续更新)

java-基础面试总结

1 : 面向对象的特征有哪些方面?

               封装

                       最常见的是把属性私有化封装在一个类里面,只能通过方法去访问

                继承

                       子类继承父类,从而继承了父类的方法和属性
                抽象
                       比如一个英雄类,抽象出了name,hp这些属性,使得开发过程中更加易于理解
                多态
                       多态分操作符的多态和类的多态。 类的多态指父类引用指向子类对象,并且有继承,有重写。

2 : String是最基本的数据类型吗?

    String是类类型,不是基本类型。 
    基本类型 有八种
    这八种基本类型分别是:
        整型 (4种)
        字符型 (1种)
        浮点型 (2种)
        布尔型(1种)

3:int 和 Integer 有什么区别?

      int 是基本类型32位长度的整数

      Integer 是类类型,是int的封装类

      int和Integer之间可以通过自动装箱 自动拆箱 互相转换

4:sleep() 和 wait() 有什么区别?

首先sleep和wait之间没有任何关系

sleep 是Thread类的方法,指的是当前线程暂停。

wait 是Object类的方法,
     指的占用当前对象的线程临时释放对当前对象的占用,以使得其他线程有机会占用当前对象。 
所以调用wait方法一定是在synchronized 中进行

 5 : 给我五个你最常见到的runtime exception。

NullPointerException 空指针异常
ArithmeticException 算术异常,比如除数为零
ClassCastException 类型转换异常
ConcurrentModificationException 同步修改异常,遍历一个集合的时候,删除集合的元素,就会抛出该异常 
IndexOutOfBoundsException 数组下标越界异常
NegativeArraySizeException 为数组分配的空间是负数异常

6 : 什么是java序列化,如何实现java序列化?

序列化指的是把一个Java对象,通过某种介质进行传输,比如Socket输入输出流,或者保存在一个文件里

实现java序列化的手段是让该类实现接口 Serializable,这个接口是一个标识性接口,没有任何方法,仅仅用于表示该类可以序列化。

7 : 关键字:throws,throw,try,catch,finally分别代表什么意义?

     在try块中可以抛出异常吗?

throws 用在方法声明上面,表示该方法有可能抛出某个异常
throw 抛出一个指定的异常
try catch 在try中有可能会抛出某个异常,一旦某个异常抛出后,就会在catch中进行捕捉,他俩一般说来都是成对出现的。
finally: 表示无论是否捕捉住异常,都会执行

8 : 构造器Constructor是否可被override?是否可以继承String类?

子类不能继承父类的构造方法,所以就不存在重写父类的构造方法。
注: super() 表示子类调用父类的构造方法,这不能被叫做继承父类的构造方法

String是final修饰的,所以不能够被继承

9:String s = new String("xyz");创建了几个String Object?

String s = new String("xyz");
首先构造方法 new String("xyz"); 中的"xyz" 这本身就是一个字符串对象
然后 new 关键字一定会创建一个对象
所以总共创建了两个String对象

10: short s1 = 1; s1 = s1 + 1;有什么错?

short s1 = 1; 这一句没有错误,编译器会自动把1这个整数处理为short.
s1 = s1 + 1; 右侧的表达式会返回一个Int类型的整数,再把这个int类型的整数赋给short类型的s1的时候,就会出现强制转换错误

11:HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,都是键值对保存数据的方式
区别1: 
HashMap可以存放 null
Hashtable不能存放null
区别2:
HashMap不是线程安全的类
Hashtable是线程安全的类

12:&和&&的区别

& 有两个作用,分别是 位与 和 逻辑与
&& 就是逻辑与
作为逻辑与, & 和 && 分别表示长路与和短路与
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了

13:说出ArrayList,Vector, LinkedList的存储性能和特性。

先说ArrayList和Vector
两者都继承了抽象类AbstractList,但是Vector是线程安全的,而ArrayList是非线程安全的

再说ArrayList和LinkedList的区别
ArrayList 是数组结构,所以定位很快,但是插入和删除很慢
LinkedList 是双向链表结构,所以插入和删除很快,但是定位很慢

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值