找工作笔记

本文整理了保研前参加人人面试的Java基础知识储备,涵盖了重载与重写、String与StringBuilder的区别、自动装箱拆箱、equals与==的使用、final与finally的差异、接口与抽象类的概念、对象初始化顺序等核心知识点。

在保研前参加了人人的面试,三面后了无音讯了,然后面试前也准备了一些知识储备,包括Java集合,线程以及面试经常会问的一些基础问题,整理一下。

Java基础部分

1.重载和重写区别

  • 重载:同一个类,相同名称方法,参数类型,个数,顺序,返回值,访问顺序不同,发生在编译时。
  • 重写:发生在父子类中,方法名,参数相同(不同类),返回值的访问范围要小于父类,抛出异常的范围小于父类,访问修饰符范围大于父类,如果private则不能重写。

private:只有本类方法可以访问,不能重写,不可直接访问。
friendly:包访问权限,子类不可访问。
protect:同包,子类均可,其他包不可访问。

2.String、StringBuffer、StringBuild的区别

String:底层由final char[]value 适合操作少量数据
StringBuffer:底层由char[]value 其操作方法有sychronized修饰,线程安全。
StringBuild:底层由char[]value 线程不安全,可扩展,初始长度16。

3.自动装箱/自动拆箱

装箱:将基本类型用他们对应的引用类型包装。int->Integer
拆箱:将引用类型转换成基本类型。

4.equals与==

equals来自object类,对于其方法在开发手册这样描述:对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。 也就是和==一样的。

但是Java中很多引用类型都将equals方法重写了,对于String类型来说,它的equals不再是==而实比较其内容是否相等。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

5.final、finally、finalize区别

final:

  • 修饰变量:表示该变量的值不可更改(就是常量)
  • 修饰引用类型变量:表示该引用变量初始化后不能指向其他对象。
  • 修饰类:表示该类不能被继承,且其成员都默认为final。
    (早期final修饰的方法会转换为内嵌调用,提高效率)

finally:使用在try/catch中。
finalize:Object类中的方法,在GC内存清理对象时被调用。

6.接口和抽象类

接口:只能定义,不能实现,都为public,抽象类可以有非抽象方法。注意:Java8新变化中接口允许添加默认实现方法。接口中的变量为static final修饰必须初始化,抽象类中不一定。
抽象类:除了不能实现与普通Java类并无区别。
一个类可以实现多个接口,但是只能实现一个抽象类。
接口是行为的抽象,抽象类是对象的抽象,是一种模板设计。

7.Java对象的初始化顺序。

单个类:静态(成员、代码块)>成员变量>构造器
调用构造函数,会先调用父类的构造函数,默认调用无参构造函数,所以一般都要写。

8.true、false、null是关键字吗? 不是

true/false是布尔常量。
null是引用类型字面变量。

9.Integer的缓存机制

在Integer类中封装了一个-128127之间的整型对象,也就是说,当年创建值为-128127之间的对象的时候,会返回同一个对象的引用。

10.String类型的创建方式

String str=new String(“helloworld”);
至少创建了一个对象 ,可能创建了两个对象。
原因:我们需要把这句话拆分成为两句。new String()和String str=。new肯定创建了一个对象的,String str=“helloworld”,这句话首先在字符串常量池中找,看是否存在该对象,如果存在则无需创建新 对象直接返回该对象的引用;不存在,则创建一个对象,加入到字符串常量池中,返回它的引用。

11.后续更新

Java集合篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值