java笔试知识点记录帖(持续更新)

JavaSE

关键字

限制修饰符

在这里插入图片描述

String和StringBuffer用final修饰

  1. String和StringBuffer都用final修饰,底层都是通过字符数组实现。
  2. String底层的字符数组被final修饰,所以值不能更改;StringBuffer底层的字符数组没被final修饰,所以值能更改。
  3. 如果final修饰的是基本数据类型,值不能变;如果是引用类型,地址不能变,值可以变。
  4. final修饰类(比如String和StringBuffer),只是限定类不可被继承,而非限定了其对象是否可变

static

例子

例1
有关静态初始化块说法正确的是?ABC
A 无法直接调用静态初始化块
B 在创建第一个实例前或引用任何静态成员之前,将自动调用静态初始化块来初始化
C 静态初始化块既没有访问修饰符,也没有参数
D 在程序中,用户可以控制何时执行静态初始化块
解析
A 静态初始化块在类加载时完成,无法人为调用。
B 关于JAVA的初始化顺序:父类的静态成员初始化>父类的静态代码块>子类的静态成员初始化>子类的静态代码块>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法
:静态成员和静态代码块只有在类加载的时候执行一次,再次创建实例时,不再执行,因为只在方法区存在一份,属于一整个类。

类和接口

  1. java中,继承优先于接口实现
  2. java是单继承,但是可以实现多个接口
  3. 抽象类和接口都不能被实例化

例子

例1:关于抽象类与接口,下列说法正确的有?AC
A 优先选用接口,尽量少用抽象类
B 抽象类可以被声明使用,接口不可以被声明使用
C 抽象类和接口都不能被实例化。
D 以上说法都不对
解析:接口没有构造方法,不能被实例化。但是抽象方法可以有构造方法,不过不是用来实例化对象的,而用来初始化的。

例2:为什么尽量使用接口而非继承?

  1. java是单继承,但是可以实现多个接口。
  2. java推荐高内聚低耦合的设计思路,而继承的耦合性太强。

例3:抽象类和接口的区别

  1. 含有abstract修饰的类是抽象类,接口可以说成是特殊的抽象类。
  2. abstract class类中的方法不必是抽象的。接口中的方法定义默认为public abstract类型,成员变量类型默认为public static final
  3. 抽象类可以有构造方法,接口中不能有构造方法
  4. 抽象类中的抽象方法的访问类型可以是public,protected。接口中只能是public
  5. 抽象类中可以包含静态方法,接口中不能包含静态方法

  1. 对于同步方法,修饰非静态方法 锁的是this 对象,修饰静态方法 锁的是class对象(当前对象的类对象)
  2. 对于同步代码块,锁的是同步监视器(也就是()中的obj)

例子

例1:关于下面一段代码,以下说法正确的是: (AC)
public class Test {
private synchronized void a() {
}
private void b() {
synchronized (this) {
}
}
private synchronized static void c() {
}
private void d() {
synchronized (Test.class) {
}
}
}
同一个对象,分别调用方法a和b,锁住的是同一个对象
同一个对象,分别调用方法a和c,锁住的是同一个对象
同一个对象,分别调用方法b和c,锁住的不是同一个对象
同一个对象,分别调用方法a、b、c,锁住的不是同一个对象

网络基础

  1. 1双字=2字=4字节=32位,是最小的存储单位,也是计算机所能处理的最小的数据项

例子

例1
off-heap是指那种内存(B)
JVM GC能管理的内存
JVM进程管理的内存
在JVM老年代内存区
在JVM新生代内存

解析

  • off-heap叫做堆外内存,意味着把内存对象分配到jvm的堆以外的内存,这些内存直接受操作系统管理(而不是虚拟机)。不属于老年代和新生代。
  • JVM GC回收方法区
  • 这样做的结果就是能保持一个较小的堆,以减少垃圾收集对应用的影响,缩短垃圾回收时间

例2
Http协议的应答中,哪一个应答码表示请求处理成功?( A)
200
100
400
300
解析
1xx:指示信息–表示请求已接收,继续处理
2xx:成功–表示请求已被成功接收、理解、接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务器端错误–服务器未能实现合法的请求

操作系统

  1. 常见的批处理作业调度算法
    先来先服务调度算法(FCFS)
    短作业优先调度算法(SPF)
    最高响应比优先算法(HRN)
    基于优先数调度算法(HPF)
    均衡调度算法
  2. 进程调度算法:
    先进先出算法(FIFO)
    时间片轮转算法(RR)
    最高优先级算法(HPF)
    多级队列反馈法
  3. 空闲分区分配算法:
    首先适应算法
    最佳适应算法
    最坏适应算法
  4. 虚拟页式存储管理中页面置换算法:
    理想页面置换算法
    先进先出页面置换算法
    最近最久未使用算法(LRU)
    最少使用算法(LFU)
  5. 磁盘调度算法:
    先来先服务(FCFS)
    最短寻道优先(SSTF)
    扫描算法/电梯调度算法(SCAN)
    循环扫描算法(CSACN)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值