Java宝典——开篇明义

大四了,博主也要面临找工作的问题了,所以博主想梳理一下自己对Java的所有所学,做一次自问自答。


  1. java是什么?
    答:Java是一门半解释半编译型的编程语言,其核心思想是面向对象。

  2. 面向对象的特性?
    答:抽象,继承,封装,多态。
    抽象:一切东西皆是对象。
    继承:父与子,只能单继承。
    封装:所有的特性都归于一体,只保留操作方法,不暴露其属性。
    多态:一物多用。

  3. Java静态与非静态
    答:简而言之,静态属于类,非静态属于实例。静态的东西在类编译后就直接诞生了,不用实例化就可以被其他对象引用。非静态的东西需要实例化才能被引用。

  4. java的加载机制?
    答:准备——加载——编译——解析——校验——运行——卸载。

  5. Java基本类型?
    答:八个
    byte:1个字节
    short:2个字节
    int:4个字节
    long:8个字节
    char:2个字节
    float:4个字节
    double:8个字节
    Boolean:官方没说

  6. Java元注解?
    答:四个
    retention:表示类的存在时长
    target:表示该类所能修饰的目标
    document:描述其他类型的注解
    inherited:表示该类应该被继承

  7. Java接口与抽象类?
    答:接口只提供方法,一般用来表示对象所具有的功能。Java8以前接口只能是具体名,不能有实现方法,否则会出现编译报错。
    一个问题,如何只实现某些接口方法,而不是实现整个接口的所有方法呢?
    适配器模式,提供接口的所有null实现。想要实现这个接口的类可以继承该类,重写类中的想要实现的方法。
    抽象类,有自己独立的变量和方法,抽象类不能被实例化,只能被继承。其关键字为abstract。
    什么时候使用接口,什么时候使用抽象类?
    根据特性确定,即只想要某些功能,使用接口。
    想要某些具体的实现方法,并且想把某些功能和属性模块抽离出来,就用抽象类。

  8. Java反射?
    答:Java反射机制为从JVM的方法区中读取正在运行的对象信息。

  9. Java 的exception和error
    答:exception即异常,分为runtime exception和explain exception异常,运行异常(runtime)无法预测,只能在运行时暴漏出来,例如算术异常,内存溢出异常等。explain exception异常是编译异常,一般在编译时就暴露出来,例如Java语法错误。
    error即为错误,在Java中和exception完全是两个不同的概念,error不可控,不可预测。error更多是一种Java外在环境出错释义,例如电脑宕机,就是一种error。

  10. Java的字符串
    答:字符串本身就是一个对象,只不过被Java默认实例化了。
    字符串常用的三种,分别是string,string buffer,string builder,三者特性如下:
    string:长度不可变,不安全。
    stringbuffer:长度可变,安全。安全的原因是底层采用了synchronized锁。
    stringbuilder:长度可变,不安全。

  11. Java的泛型
    答:泛型我更愿意称呼其类参数。其底层采用的是反射机制,或者说这是Java的一种约定,约定此泛型所属对象都是一类。

  12. Java序列化与反序列化
    答:序列化指将当前运行的对象状态保存起来,包括对象数据和其方法。需要使用序列化的类需要实现Serializable接口。
    序列化步骤:

  • 创建一个outputStream对象;
  • 将outputStream封装到objectoutputStream实例对象中;
  • 调用objectoutputStream实例对象的objectwrite()方法将对象写入磁盘;
  • 调用objectoutputStream实例对象的close()方法将对象流关闭;
    反序列化步骤:
  • 创建一个inputputStream对象;
  • 将outputStream封装到objectinputputStream实例对象中;
  • 调用objectinputputStream实例对象的objectread()方法将对象写入磁盘;
  • 调用objectinputputStream实例对象的close()方法将对象流关闭;
  1. equals和hashCode什么关系?
    答:什么关系?调用源码如下:
    在这里插入图片描述
    没啥关系,hashcode是hashcode,equals是equals。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值