《Java牛客错题知识点记录》

1、子类父类代码块执行顺序

        父类静态代码块 、子类静态代码块

        父类非静态代码块、父类构造函数

        子类非静态代码块、子类构造函数

2、初始化过程顺序

        父类中的静态成员变量和静态代码块

        子类中的静态成员变量和静态代码块

        父类中普通成员变量和代码块,再执行父类的构造方法

        子类中普通成员变量和代码块,再执行子类的构造方法

3、ArrayList和LinkList区别

        ArrayList实现了基于动态数据的数据结构,对于访问set和get占优,便于查询

        LinkList实现了基于链表的数据结构,对于新增和删除操作比较占优

4、HashMap(非线程安全)

        key-value都是存储在Entry数组中

        HashMap实际上是一个“散链表”的数据结构,是数组和链表的结合体,并允许使用null值和null键。它的底层是一个数组结构,数组的每一项是一个链表,当新建一个HashMap时,就会初始化一个数组。

5、在socket编程中

        getInetAddress():获取主机名和IP地址

        getLocalAddress():获取本地IP地址

        getReuseAddress():复用地址,返回布尔类型

6、一般关系数据模型和对象数据模型之间有以下对应关系

        表对应类

        记录对应对象

        表的字段对于类的属性

7、Java引用类型

        强引用:一直存在

        软引用:内存不足时回收

        弱引用:JVM开始进行垃圾回收时回收

        虚引用:随时可能被回收

8、full GC出发条件

        老年代满:循环上万的字符串处理;不断创建对象;在一段代码内申请上百M的内存

        持久代满:动态加载了大量Java类而导致溢出

        System.gc() 显示调用

        上一个gc后个heap的各域分配策略动态变化

9、反射

        class类在java.lang包下

        动态代理可以通过接口与类实现,通过反射形成新的代理类,该代理类增强了原来的类方法

        反射可以强制访问private类型和成员变量

        反射并不能对类进行修改,只能对类进行访问

        反射机制对永生堆要求较多

        即使使用缓存,反射的效率也比调用类的方法低

        java反射机制使用 java.lang.class 或 java.lang.reflect.Constructor 的 newInstance()方法时被调用

10、构造器的执行

        (构造器方法的优先级比一般代码块低)

        new关键字自动调用

        类内部  this.构造方法名()

        子类  super.父类构造方法名()

        反射机制对于任意一个类,都能知道类的所有属性和方法,包括构造方法

11、多个catch语句应该把父类放后面,子类放在前面

        例如:        

catch(FileNotFoundException)
catch(IOException)
catch(Exception)

12、拆箱问题

        包装类“==”运算遇到算术运算的情况下不会自动拆箱

        包装类“equals()”方法不处理数据转型

        Integer和int类型在==比较时会自动拆箱

        Long与long进行==比较时也会自动拆箱

        不同类型之间进行比较,如果一方为包装类,则会自动拆箱,如果两方都为包装类,则不会拆箱,且不能比较,编译会报错

        

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值