当前位置:首页 > 每日看点 > 正文内容

如何判断 Java 工程师的基础知识是否扎实?

卡卷网12个月前 (11-17)每日看点213

我来给你出几道大题,能答对70%,你就算基础扎实了。

第一部分 Java基础(27)
1. 程序本质:代码是如何被执行的?CPU、操作系统、虚拟机各司何职?
2. 基础语法:从CPU角度看变量、数组、类型、运算、跳转、函数等语法
3. 引用类型:同样都是存储地址,为何Java引用比C/C++指针更安全?
4. 基本类型:既然Java一切皆对象,那又为何要保留int等基本类型?
5. 位运算:>>>和>>有何区别?(原码/反码/补码、算术位移/逻辑位移)
6. 浮点数:计算机如何用二进制表示浮点数?为何0.1+0.1不等于0.2?
7. 字符:为何C/C++中char占1个字节,而Java中char占2个字节?
8. 字符串:请解释String类用到的三大技术:压缩、常量池、不可变
9. 对象:请描述一下Java对象的内存结构,以及如何统计对象大小?
10. 关键字:静态内部类实现的单例如何做到线程安全且可延迟加载?
11. 容器:为什么不推荐在项目中使用Vector、Stack、HashTable?
12. 容器工具类:TimSort和DualPivotQuickSort的实现原理和区别
13. HashMap(上):为何HashMap中数组的大小必须是2的幂次方?
14. HashMap(下):为何链表树化的阈值为8,默认装载因子是0.75?
15. LinkedHashMap:如何使用LinkedHashMap实现LRU缓存?
16. 迭代器:为什么使用迭代器遍历容器的同时修改容器会出错?
17. 异常(上):在项目开发中如何正确的定义、处理、打印异常?
18. 异常(下):高并发下异常太多导致程序变慢的核心原因是什么?
19. io类库:java.io类库如此庞大,怎么才能全面系统的掌握它?
20. nio类库:BIO、NIO、AIO三种Java I/O模型的实现原理和区别
21. 高速I/O(上):普通的I/O读写流程都存在哪些性能问题?
22. 高速I/O(下):mmap和零拷贝是如何提高I/O读写速度的?
23. 泛型:为什么C++泛型支持int等基本类型而Java泛型不支持呢?
24. 反射:为什么通过反射创建对象要比使用new创建对象慢?
25. 注解:注解的配置方式相对于XML配置文件有什么优缺点?
26. 动态代理:为什么基于JDK实现的动态代理要求原始类有接口?
27. 函数式编程:函数接口、Lambda表达式、方法引用、Stream流
第二部分 多线程(27)
28. 线程概述:有了进程为什么还要有线程?线程越多执行就越快吗?
29. 线程模型:线程模型有哪几种?Java线程是基于哪种模型实现的?
30. JMM(上):CPU缓存和指令重排给多线程编程带来哪些问题?
31. JMM(中):如何解决多线程中的可见性、原子性、有序性问题?
32. JMM(下):既然CPU支持缓存一致性协议,为何还有可见性问题?
33. 线程安全、临界区、竞态:如何分析一段代码是否线程安全?
34. synchronized(上):线程释放锁之后,如何通知其他线程获取锁?
35. synchronized(下):Java对synchronized进行了哪些性能优化?
36. Lock(上):相比Java synchronized,JUC Lock有什么优势?
37. Lock(中):如何使用AQS(抽象队列同步器)实现JUC Lock?
38. Lock(下):ReadWriteLock的锁升级与锁降级及其底层实现原理
39. 死锁、活锁、饥饿:如何实现Java多线程死锁检测和撤销?
40. CAS:如何不使用锁实现AQS中的线程安全的等待队列?
41. 原子类:CAS的ABA问题是如何产生的以及如何解决?
42. 累加器:如何用数据分片、哈希优化、去伪共享等提高累加性能?
43. ThreadLocal:ThreadLocal相对于局部变量有何特殊应用场景?
44. 条件变量:为什么使用条件变量前需要先加锁?
45. 信号量:如何使用信号量来限制并发执行某个接口的线程数?
46. 锁存器和栅栏:如何编程测试接口在不同并发下的性能?
47. 并发容器:如何实现线程安全的数组、链表、哈希表等常用数据结构?
48. 写时复制:为什么JUC只支持数组类型的写时复制并发容器?
49. 阻塞等待:如何实现支持阻塞读写的线程安全队列(阻塞并发队列)?
50. 分段加锁:HashMap线程不安全原因及ConcurrentHashMap实现原理
51. 线程状态:为何synchronized和Lock这两种锁对应的线程状态不同?
52. 线程中断:如何安全地提前终止正在执行业务逻辑的线程?
53. 线程池:线程池开多大最合适?为什么Redis单线程执行命令?
54. 线程执行框架:如何获取一个线程所执行的代码的运行结果?
第三部分 JVM(10)
55. 编译执行:Java代码的执行效率真的比C++等编译型语言低吗?
56. JIT编译:请解释下方法内联、逃逸分析等动态编译优化策略
57. 类加载:双亲委派加载机制存在的意义是什么?
58. 内存分区:JVM内存模型中有几个分区?都是做什么用的?
59. 可达性分析:虚拟机是如何判断一个对象是否可以被回收的?
60. 垃圾回收算法:同为垃圾回收,为何FullGC要比YoungGC慢很多?
61. 垃圾回收器(上):如何在项目中选择合适的垃圾回收器?
62. 垃圾回收器(下):CMS和G1的并发垃圾回收是如何实现的?
63. JVM性能优化:多久一次、一次多久FullGC和YoungGC才算正常?
64. JVM问题排查:使用jstat、jmap等工具排查OOM等JVM问题

掌握了上面这些,你基本上可以吊打面试官了。

这些我都整理成30万字的完整讲解

CodeCrush-跟着小争哥学技术

关注我,接下来,我会在知乎上以专栏的形式持续更新以上问题的答案。

一周三更(数据结构与算法、刷题、面试、Java、系统设计、架构),关注我不错过精彩内容

@前Google工程师小争哥

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/11/787.html

分享给朋友:

相关文章

重磅消息:多个知名盗版网站关闭,倡导正版付费,迎接正版时代

重磅消息:多个知名盗版网站关闭,倡导正版付费,迎接正版时代

近年来,互联网上的免费资源站点经历了前所未有的变革,尤其是那些深受用户喜爱的影视、动漫及软件下载平台。随着全球范围内对于知识产权保护意识的提升以及相关法律法规的不断完善,曾经风光无限的一些网站正逐渐退出历史舞台。例如,在2023年的夏天,一...

现在做抖音的话,还有机会嘛?

现在做抖音的话,还有机会嘛?

之前我问过小杨哥一个问题:“现在抖音还好做吗?”疯狂小杨哥在抖音已经突破1亿粉丝,直播间10w的在线观看人数,日常带货随便一场也是上7位数的数据。现在抖音的市场好像已经被头部占领,资源靠前,普通人似乎已经没有机会了?下面是小杨哥对于做抖音的...

现在手里有一万闲钱,买什么币好?

今天是2024年7月29日,看看我的持仓吧。只有几百刀的那些微持仓就不说了,以下持仓都在几千刀~几万刀不等。不构成任何投资建议,成本是多次买入的大致均摊成本$TIA 成本0$DYM 成本0 $SAGA 成本0$STRK 成本0$ETHFI...

PS有哪些实用小技巧,小白也能一学就会?

PS有哪些实用小技巧,小白也能一学就会?

不看后悔系列!本篇分享25个PS实用的技巧!不能保证每个都能让你惊艳,但是却是我用心写出来的,希望对你有帮助。另外我的知乎也写了接近200篇PS的技巧,超级合集分享!我目前正在带一个PS/Ai的软件训练营,两个多月搞定两大软件的学习详细的内...

网易云音乐上看到过最触动的热评是什么?

网易云音乐上看到过最触动的热评是什么?

1.“昨天晚上洗澡的时候,我忘记拿毛巾了,喊了声妈妈帮我拿下毛巾,正当我伸出左手准备接毛巾的时候,我愣了一下,又换了右手。”希望你永远不会听懂这句话,永远都不要懂。——网易云热评《关键词》2.小时候跟着父亲去城里卖西瓜,害怕同学会看到我,就...

有哪些让你目瞪口呆的 Bug ?

有哪些让你目瞪口呆的 Bug ?

成都有个监狱情况比较特殊,关押的基本全是重犯,而且还都是经济犯和政治犯,他们以前都是一方大佬,在自己的一亩三分地翻手为云覆手为雨,无非是不小心中箭落马或帮老大顶锅才进监狱,所以即使进来了,他们依然保持着体面和骄傲,依从性差,虽然不至于和监狱...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。