Java常见面试题(三)

1、throw 和 throws 的区别?

  • throw:真实抛出一个异常。
  • throws:声明可能会抛出一个异常。

2、spring 常用的注入方式有哪些?

  • setter 属性注入
  • 构造方法注入
  • 注解方式注入

3、JVM有哪些垃圾回收器?

  • Serial
  • Serial Old
  • ParNew
  • Parallel
  • Parallel Old
  • CMS
  • G1

4、堆用来放什么?

对象实例
数组

5、类加载分为几个步骤?

加载、验证、准备、解析、初始化。最后是使用和卸载

6、如何判断一个对象是否存活?

引用计数法(循环引用问题)
引用链法

7、给对象分配堆内存的方式有哪些?

如果堆内存规整,采用"指针碰撞";
如果堆内存不规整,采用"空闲列表"

8、访问对象有哪些方式?

句柄
直接指针

9、并发创建对象时,有什么处理策略?

1)同步处理
2)本地线程分配缓冲区

10、出现线程安全问题的原因有哪些?

  • 线程切换带来的原子性问题
  • 缓存导致的可见性问题
  • 编译优化带来的有序性问题

#Java##学习路径#
全部评论

相关推荐

2025-12-22 12:15
门头沟学院 Java
1、实习介绍,看机会原因,项目。2、redis常用的数据结构,项目中用过哪几种,业务中使用的场景3、redis的hash怎么实现的,rehash过程讲一下 和JavaHashMap的rehash有什么区别?redis cluster怎么做到高可用的?4、redis集群和哨兵机制有什么区别?redis的持久化机制了解吗?遇到过redis的hotkey吗?怎么处理的?5、redis是单线程的吗?单线程为什么还这么快?讲一讲redis的内存模型?6、简单说一下RabbitMQ的工作原理?如何保证消息的顺序执行?7、卡夫卡了解吗?和RabbitMQ有什么区别?8、tcp/udp简单说下两者的区别?tcp为什么要三次握手和四次挥手?两次握手可以不?会有什么问题?tcp怎么保证有序传输的9、讲下tcp的快速重传和拥塞机制,知不知道time_wait状态,这个状态出现在什么地方,有什么用?10、http与https区别?https是怎么做到安全的?11、有没有了解过协程?说下协程和线程的区别?用过哪些linux命令?如查看内存使用、网络情况?12、你了解哪些设计模式啊。挑一个熟悉的讲讲?(除了单例模式)在项目中有用过设计模式吗?讲讲你怎么用的?简单说一下适配器模式和装饰器模式?13、索引的常见实现方式有哪些,有哪些区别?14、MySQL的存储引擎有哪些,有哪些区别?InnoDB使用的是什么方式实现索引,怎么实现的?说下聚簇索引和非聚簇索引的区别?15、raft算法的基本流程?raft算法里面如果出现脑裂怎么处理?16、paxos和zookeeper的zab算法,他们之前有啥区别?17、如果我是想一个人的姓名一样就认为他们equal,能现场写下我们怎么重写equals吗?如果两个对象,一个是cat,一个是dog,我们认为他们的name属性一样就一样,怎么重写equals18、还有点时间,写个题吧leetcode406.根据身高重建队列假设有打乱顺序的一群人站成一个队列。每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]
点赞 评论 收藏
分享
评论
1
12
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务