安卓面试总结(1)——Java基础

前言

之前换工作把自己学的内容总结了一下,虽然Java部分我写过十几篇读书笔记,详细的记录了Java8的内容,但是作为面试这样一个短暂的考试,详细的内容并没有很大的帮助,更重要的是精简与重点,所以最近打算把总结的内容全部写成博客,慢慢来吧!

这里参考的是网上流传的很火的几个PDF,以及书籍,名称如下(如果有需要资源的可以私信我):

Android核心知识点笔记V2020.03.30.pdf
技术面试必备基础知识 CyC2018.pdf
Java核心技术 卷1

这里如果说我是把资料抄了一边,也差不多吧,不过也有精简,也有加入自己的见解。内容较多,接下来慢慢写了。

Java 基础

1、数据类型
  • 8种
  • 自动装箱、拆箱
  • 缓存池(valueOf 函数、Interger 的128)
2、String
  • final的
  • value 数组(final 的)–>不可变–>有何好处:hash、String Pool 、安全性、线程安全
  • StringBuilder 和 StringBuffer
  • String Pool(编译时)
3、运算
  • 以值传递(实质)

    • 值(修改临时变量)、
    • 指针(修改变量,另一个变量,同一个地址)、
    • 引用(修改变量内容,还是那个变量)
  • 类型转换

  • 隐式类型转换(++、+=)

  • switch

4、继承
  • 访问权限(4个)

  • 类、类成员

  • 抽象类和接口区别?何时使用?

    1. 整体和功能的区别:类可以多携带信息
    2. 修饰符的区别:接口默认 public、接口字段默认 public static、完全抽象、默认方法(Java8)
    3. 实现数量:类只能实现一个,接口多个

    根据区别,可以得出使用的地方。

  • super 、this、构造函数

  • 重载和重写(实现多态)

    重写–>重新编写同一个方法的功能
    重载–>参数类型、个数、顺序

    重写三个限制条件?

    • 访问权限、
    • 返回类型、
    • 抛出异常类型

    重写的访问顺序?(4个)–> 注意参数的父类

    • this.func(this) --> super.func(this) --> this.func(super) --> super.func(super)
5、object的通用方法(6 + 5)

hashCode()、equals()、clone()、toString()、getClass()、finalize()

  • 锁相关的:
    notify()、notifyAll()、wait()、wait(timeout)、wait(timeout,nanos)

  • 哪几个是 native 方法?
    hashcode、clone、getClass、notify、notifyAll、wait(一个)

    少了 equals、toString、finalize、其他 wait

  • 等价和相等以及hash值相等的区别?

  • 如何判断对象等价?

    是否相等–>是否为空–>是否同类–>转换之后是否数据域相等

  • clone() 和 Cloneable接口?接口为空?深拷贝、浅拷贝?

  • finalize()方法?只标记一次,执行不可知

6、关键字
  • final --> 类、方法、私有数据、临时变量、修饰基本类型、修饰引用类型

  • static --> 静态变量、静态方法、静态语句块、静态内部类、静态导包

    带static的初始化顺序:
    父类(静态变量、静态语句块)–> 子类(静态变量、静态语句块)–>
    父类(实例变量、普通语句块)–> 父类(构造函数)
    子类(实例变量、普通语句块)–> 子类(构造函数)

    先静态再实例,先父类再子类,先实例再构造,先前面再后面

  • volatile、synchronized 锁部分再说

  • transient 数组部分再说

7、反射
  • class 对象、

  • 类加载(反射运行时加载)

  • 获得 class 对象的方法?

    1. getClass()
    2. forName()
  • 反射的三个类:Filed、Method、Constructor

  • 反射优缺点:扩展性、便于调试、性能开销、安全问题

8、异常
  • Throwable --> Error、Exception

  • Error 两个? OutOfMemeoryError、StackOverflowError

  • 非受查异常(you fault)、受查异常(IO、socket)

  • 说五个常见异常?

    1. IllegalArgumentException、
    2. IndexOutOfBoundException、
    3. NullPointerException
    4. ClassNotFoundException(受查)
    5. SocketException(受查)
9、泛型
  • 泛型类、泛型方法

  • 类型变量的限定:extend、super

  • 类型擦除:强制类型转换为限定的类型(没有则是 Object)

  • 桥方法?

  • 泛型类型的继承规则(通配符 、子类限定、超类限定)?

    1. 子类限定:可以用父类类型去 get (接受)子类类型的数据,但不能设置,因不知道数据的具体类型
    2. 超类限定:可以用子类类型去 set (存入)超类类型的数据,但无法取出,因为不能确定数据内存放的是什么类型
下一篇

安卓面试总结(2)——Java 集合框架

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值