金证秋招笔试

1.构造函数的特性

答:

  1. 基础语法特性(名称、无返回值、自动调用)

  2. 继承体系下的执行顺序(先父后子)

3.不被继承 & 默认无参构造器陷阱

意思就是如果父类手动创建构造函数 子类创建构造函数系统会自动调用super() 这时候找不到上级的无参构造函数就会发成报错

  1. 一个最容易翻车的点:构造器里调用可重写方法

2.sleep()和wait()的区别

1.sleep()不释放锁wait()释放锁

2.sleep()被中断后锁不释放 wait释放

3.sleep 是 Thread 类的静态方法,wait 是 Object 的实例方法。

4.sleep 哪都能用,wait 必须在 synchronized 里

3.以下哪种是抽象方法

1.pubulic abtract void method()

2.pubulic abtract void method(){}

3.public void method extend abtract

答:第一个

第二个错误原因是抽象方法不能有方法体

第三个完全语法错误

总结:

  1. 必须用 abstract 关键字修饰

  2. 不能有方法体 {},直接用 ; 结尾

  3. 只能存在于抽象类或接口中 (接口中默认就是抽象的,可以省略 abstract)

4.抽象类与抽象方法

1.有抽象方法的类必须是抽象类

2.抽象类不一定有抽象方法

3.子类必须实现所有抽象方法(除非子类也是抽象类)

5.以太网传输使用了什么机制

答:以太网使用 CSMA/CD(载波监听多路访问/碰撞检测)机制。其核心逻辑是:先听后说,边听边说,冲突停发,随机重发。

6.以下哪种数组创建成功

1.int\[\] a=new int5

2.int\[\] a=new int5{1,2,3,4,5}

第一个正确

第二个错误原因是:错误原因 :不能同时指定数组长度和初始化列表 。

7.运行时异常有哪些

答:运行时异常(RuntimeException)是 Java 中不需要显式捕获或声明的异常,它们继承自 RuntimeException 类,通常由程序逻辑错误导致,比如数组越界、空指针、类型转换错误等。

1.NullPointerException
2.ArrayIndexOutOfBoundsException
3.ClassCastException
4.ArithmeticException
5.NumberFormatException
6.IllegalArgumentException

8.异常处理try catch可以嵌套吗
答:可以

核心规则:

  1. 内层抛出的异常优先由内层 catch 处理

  2. 如果内层没有匹配的 catch,异常会向上冒泡到外层

  3. 如果外层也没有处理,最终交给 JVM(程序终止)

追加try catch注意点

1.finally 块中不要用 return(会导致异常丢失)

2.finally 中抛出的异常会"淹没"原始异常(加个 try-catch 保护)

3.catch 异常时,要把最具体的异常 写在最前面(顺序错误编译报错)

try-catch 不是"万能药",能不捕获就别捕获

  • 对于受检异常(Checked Exception) ,必须处理(捕获或 throws)。

  • 对于运行时异常(RuntimeException) ,优先修复代码逻辑 ,而不是用 catch 包住。

9.子类与父类之间继承关系和方法使用的注意点

规则 1:子类构造器必须调用父类构造器

  • 子类构造器第一行会隐式调用 父类的无参构造器 super()

  • 如果父类没有 无参构造器(只有有参构造),子类必须显式 用 super(参数) 调用

规则 2:子类重写方法的访问权限 不能比父类更严格

规则 3:子类重写方法的返回值 必须是父类返回值的子类型 (协变返回)
规则 4:子类重写方法不能 抛出比父类更宽 的受检异常(重要!)
规则 5:static 方法不能 被重写(只能被隐藏)
规则 6:成员变量没有多态 ,看的是引用类型

10.如果一个二叉树他的前序遍历和后序遍历相反 那么他的形状是?

一棵高度等于节点数、每个节点只有单侧子树的链状树 。

11.

13.子类一定比父类有更多成员方法吗

子类继承父类所有的非 private 成员方法,所以子类可用的方法数量至少等于父类。子类可以增加新方法,使方法数量多于父类,但也可以不加,保持相等。所以"子类一定比父类有更多成员方法"是错误命题。
14.

15.ThreadLocal 为每个线程提供独立的变量副本,避免了线程间竞争,实现了无锁化的线程安全;但需要在使用后调用 remove() 防止内存泄漏,且只适用于隔离变量的场景,不能保证跨变量的业务逻辑原子性。"

16

17.

相关推荐
星夜离尘5615 小时前
MATLAB 工程实验:不等间隔流量积分,先把缺口与覆盖率说清楚
开发语言·matlab·时间戳·数据质量·数值积分
_Evan_Yao15 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis
Ai-_Man16 小时前
Meta Muse还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·c#·1024程序员节
梓豪csd16 小时前
消息订阅中心:谁该收到哪条通知
java·开发语言·人工智能·低代码·自动化·1024程序员节
秋饼16 小时前
Spring AI 2.1 Message Parts 深度实战:推理签名回放与跨轮记忆持久化的源码级落地
java·ai·技术分享·后端开发
学逆向的16 小时前
C 枚举变量
c语言·开发语言·网络安全
Sakura_j_h_16 小时前
Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
开发语言·字符编码·windows·python·定时任务
thefool11226617 小时前
TCP 1
java·1024程序员节
金銀銅鐵19 小时前
[Java] 用 GUI 展示 EnumSet 增减元素时的内部变化(下)
java·后端·ai编程
AI人工智能+电脑小能手19 小时前
一次请求打几个下游,这个Java并行任务工具类6个方法按序聚合
java·线程池·并发编程·1024程序员节·批量处理·并行任务