Java基础 + 集合 + 多线程 + JVM (32 + 20 + 10 + 4 = 66个)
(ppt:29页——117页)
2.1 JAVA基础(32个)
1 一看你就懂,超详细java中的ClassLoader详解
https://blog.csdn.net/briblue/article/details/54973413
2 Java中的java.lang.Class API 详解
https://juejin.im/post/5c6547ee5188252f3048262b
3多线程中总内存和线程的工作内存
https://blog.csdn.net/fateruler/article/details/82917473
4 java与C语言在字符串结束符上的区别
https://blog.csdn.net/sszgg2006/article/details/49148189
5 什么是 Java 程序的主类 应用程序和小程序的主 类有何不同
https://blog.csdn.net/weixin_44504146/article/details/93788199
6 【Java面试题】7 构造器Constructor是否可被override?
https://www.cnblogs.com/guweiwei/p/6596542.html
7接口中定义变量必须为public static final的原因
https://www.cnblogs.com/hunterCecil/p/5556208.html
(但是接口只能用public)
8为什么不能用静态修饰符(static)与访问控制符来修饰局部方法中的内部类?
https://blog.csdn.net/seabiscuityj/article/details/80318581
(1)、这个主要是由作用范围决定的。在方法内部定义的内部类,只能在方法的内部,也就是定义该类的区域内使用。
这样的结果就是,在方法之外,并不能访问到该内部类,也即不需要private等访问控制符修饰,因为他本身就是在内部使用的,外部不能访问
(2)、一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。所以声明为static的变量实质上就是全局变量。所以static不能修饰局部变量。
此外,局部变量是存放在栈中的,程序运行完立即释放。它只能在定义它的方法内部使用。所以不用static修饰符。
9 Java内存分配之堆、栈和常量池
https://www.cnblogs.com/SaraMoring/p/5687466.html
10 Java中类方法与实例方法的区别
https://blog.csdn.net/qq_41941875/article/details/99561104
11 静态方法不需要有对象,可以使用类名调用
https://www.cnblogs.com/borter/p/9419243.html
12 JAVA构造函数不能使用void关键字
https://blog.csdn.net/weixin_43592833/article/details/85239289
13 java 初始化
https://blog.csdn.net/Imperial_Vmlion/article/details/90081967
14 Java内部初始化类成员变量,局部变量不执行初始化
https://blog.csdn.net/u010746357/article/details/85108477
故而,造成两者差别的原因在于,栈中数据不会执行初始化,而堆中数据会有初始化
15两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
https://blog.csdn.net/QL753123/article/details/92841222
16 java中的基本数据类型和引用数据类型
https://www.cnblogs.com/qingmuchuanqi48/p/10710835.html
17 java 中的序列化是什么意思?
https://www.cnblogs.com/bjanzhuo/archive/2013/02/15/3576011.html
18序列化与持久化
19 Serializable接口心得总结
https://blog.csdn.net/songguanxin/article/details/81303921
20 BufferedReader与Scanner的区别
https://blog.csdn.net/swq463/article/details/84638295
OJ是Online Judge系统的简称,用来在线检测程序源代码的正确性
21字节和字符区别
https://blog.csdn.net/chen18677338530/article/details/90695076
22节点流和处理流区别
https://www.cnblogs.com/ConstXiong/p/11933240.html
23深入理解Java中的重写和重载
https://www.hollischuang.com/archives/1308
技术分享 | 总结了线程安全性的二十四个精华问题
https://zhuanlan.zhihu.com/p/98429346
浅谈JDK、JRE、JVM区别与联系
https://blog.csdn.net/ancientear/article/details/79483592
JVM、Java编译器和Java解释器
https://www.jianshu.com/p/2698d5a2603c
24 JAVA 内存泄露详解(原因、例子及解决)
https://blog.csdn.net/anxpp/article/details/51325838
25 Java内存泄漏分析和解决
https://www.jianshu.com/p/54b5da7c6816
26 临界资源和临界区
https://blog.csdn.net/qq_15037231/article/details/55506669
27 Java 中关于常量池与缓存类的一点理解
https://blog.csdn.net/KINGjw1997/article/details/53427999
字面量,常量和变量之间的区别?
https://www.jianshu.com/p/0f2816805da6
28 类的加载过程(来一个通俗易懂的理解)
https://juejin.im/post/5d3adfebf265da1bb776b11d
- Java的finalize,finally,final三个关键字的区别和应用场景
https://blog.csdn.net/u014590757/article/details/80142072
30成员变量与局部变量的区别有哪些?(对应纸质文档18)
- 存储方式
- 生存时间
- 赋初值
- 语法形式
成员变量:类变量和实例变量的区别
https://blog.csdn.net/u014375145/article/details/23774485
Java实例变量、类变量与局部变量(这里面有张图很清晰)
https://blog.csdn.net/zhangliangzi/article/details/50374954
31自动装箱有什么意义
https://www.jianshu.com/p/ca7d9222b45a
32Go语言和Java、python等其他语言的对比分析
https://juejin.im/post/6844903811786489870
2.2 JAVA集合(20个)
1.了解java .lang 包,java.util包等常用包
https://blog.csdn.net/u014252871/article/details/53434530
https://songlee24.github.io/2016/03/16/java-basic-note-1/
2线程安全
https://zhuanlan.zhihu.com/p/73899015
3 foreach(增强for循环)和for的区别
https://www.cnblogs.com/xinruyi/p/11020719.html
你知道for、foreach和Iterator遍历有什么(效率)区别吗
https://www.jianshu.com/p/bbb220824c9a
为什么千万别用for循环迭代LinkedList
https://blog.csdn.net/u010853261/article/details/54143917
4 Java并发之CAS原理分析
https://objcoding.com/2018/11/29/cas/
面试必问的CAS,你懂了吗?(更详细的)
https://zhuanlan.zhihu.com/p/34556594
我们常说的 CAS 自旋锁是什么
https://www.cnblogs.com/fengzheng/p/9018152.html
其实 JDK 中有好多地方用到了 CAS ,尤其是java.util.concurrent包下,比如 CountDownLatch、Semaphore、ReentrantLock 中,再比如 java.util.concurrent.atomic 包下,相信大家都用到过 Atomic* ,比如 AtomicBoolean、AtomicInteger 等。
volatile和CAS,看完这篇没人能难住你!
https://zhuanlan.zhihu.com/p/53795411
Volatile:解决变量在多个线程之间的可见性
CAS:具有原子性
Synchronized:解决多个线程之间访问资源的同步性
原子性:即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。
5为什么HashMap非线程安全
https://blog.csdn.net/wufaliang003/article/details/80219296
2.2.5 - 2.2.12
全部是讲Hash
6 Java集合分类以及各自特点
https://blog.csdn.net/qq_37025445/article/details/76563133
java Queue中 add/offer,element/peek,remove/poll区别
https://blog.csdn.net/u012050154/article/details/60572567
7 JDK各个版本发布时间和版本名称
https://blog.csdn.net/J080624/article/details/85259041
https://www.oracle.com/java/technologies/javase-jdk14-doc-downloads.html(最新Java版本)
https://www.oracle.com/cn/corporate/pressrelease/oracle-announces-java14-2020-03-17.html
(最新JAVA版本相关资料)
8 java 中 return 的两种常见的用法
https://blog.csdn.net/IT_Octopus/article/details/89663164
9 java中数组操作常见的三个错误
https://www.cnblogs.com/benjieqiang/p/10594583.html
10 intellij idea快速生成main方法、for循环、out输出
https://blog.csdn.net/fanrenxiang/article/details/79590838
11 java中short、int、long、float、double取值范围
https://blog.csdn.net/qfikh/article/details/52832087
12 Java ArrayList、LinkedList、Vector的区别
https://blog.csdn.net/zhangqiluGrubby/article/details/72870493
13多线程下HashMap的死循环
https://blog.csdn.net/dingjianmin/article/details/79780350
14 java集合详解(看完秒懂)集合是什么?
https://blog.csdn.net/DreamWeaver_zhou/article/details/78724853
15 Java集合基础之map双列集合
https://blog.csdn.net/weixin_44187963/article/details/94981968
16 学习笔记:内存,堆栈,到底为何物?
https://www.cnblogs.com/5207/p/4267689.html
17 Java 容器源码分析之 Deque 与 ArrayDeque
https://blog.jrwang.me/2016/java-collections-deque-arraydeque/
18Java并发阻塞队列之ArrayBlockingQueue
https://blog.csdn.net/wo541075754/article/details/81182893
ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。
19线程的同步与互斥:互斥锁
https://blog.csdn.net/qq_33951180/article/details/72801228
20 java Queue中 add/offer,element/peek,remove/poll区别
https://blog.csdn.net/u012050154/article/details/60572567
2.3 JAVA多线程(10个)
1 JAVA线程基础(synchronized、同步与异步、volatile、脏读)(附有代码,超级详细)
https://blog.csdn.net/a78270528/article/details/79639313
2从ExecutorService源码中看调用submit与execute区别
https://my.oschina.net/lienson/blog/1518717
Callable与Runable接口 submit与execute区别
https://blog.51cto.com/tianxingzhe/1685978
3 java同步,异步和阻塞,非阻塞的联系和区别
https://blog.csdn.net/JQ_AK47/article/details/54935392
4【Java面试题】25 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
https://www.cnblogs.com/guweiwei/p/6617369.html
5 Java线程的CPU时间片
https://blog.csdn.net/wangyangzhizhou/article/details/80141350
6 Java 实例 - 死锁及解决方法
https://www.runoob.com/java/thread-deadlock.html
7 别再问我Runnable、Callable、Future、FutureTask有什么关联了
https://juejin.im/post/5de15d99f265da060375f022
8乐观锁、悲观锁,这一篇就够了!
https://segmentfault.com/a/1190000016611415
9 java线程安全篇之synchronized对象锁的同步和异步(三)
https://blog.csdn.net/qq_33524158/article/details/78546561?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase
10Executor, ExecutorService 和 Executors区别与联系
https://zhuanlan.zhihu.com/p/63011540
2.3 JVM(4个)
1 动态存储和静态存储区域区别
https://blog.csdn.net/u011555996/article/details/51206181
2【JVM】类加载、连接和初始化过程
https://blog.csdn.net/wangyy130/article/details/52105217
3Intellij IDEA中如何在右侧展示类中的方法树形结构(类似Eclipse中右侧的Outline)
https://blog.csdn.net/qq_39390545/article/details/102862290
4idea 代码格式化
https://blog.csdn.net/baidu_36583119/article/details/104761270
Ctrl + alt + l :自动对齐代码
存在问题:
Test001.java
ThreadPoolExecutorDemo.java
锁加到方法、变量与类上分别有什么区别
2.4其他
MySQL 索引
https://www.runoob.com/mysql/mysql-index.html
两张动图-彻底明白TCP的三次握手与四次挥手
https://blog.csdn.net/qzcsu/article/details/72861891
2.5redis
1Guava 是什么?
Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/guava
2玩转EhCache之最简单的缓存框架
https://www.jianshu.com/p/5a0669d6305e
Ehcache是一个用Java实现的使用简单,高速,实现线程安全的缓存管理类库,ehcache提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案。
3MemCache是什么
https://zhuanlan.zhihu.com/p/25487945
MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。
4MySQL事务的可串行化
https://blog.csdn.net/nangeali/article/details/75578787
可串行化——SERIALIZABLE
事务的最高级别,在每个读的数据行上,加上锁,使之不可能相互冲突,因此,会导致大量的超时现象
2.6IntelliJ IDEA相关操作
用IntelliJ IDEA看Java类图
https://blog.csdn.net/boling_cavalry/article/details/79418823
Intellij Idea -02 如何将项目工程横向排列变成纵向排列
https://www.cnblogs.com/bravolove/p/6010490.html
解决IDEA报错:Disconnected from the target VM, address: '127.0.0.1:52315', transport: 'socket'
https://blog.csdn.net/qq_36604139/article/details/102543539
2.7Java进阶学习
1 阶段五.Java高级&前沿技术
https://blog.csdn.net/weixin_41673139/article/details/100531176?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160006704219725254015393%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160006704219725254015393&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-1-100531176.first_rank_ecpm_v3_pc_rank_v2&utm_term=Java%E5%89%8D%E6%B2%BF%E6%8A%80%E6%9C%AF&spm=1018.2118.3001.4187
2.8 Java算法常用的方法
1Java valueOf() 方法
https://www.runoob.com/java/java-string-valueof.html
2Java中如何遍历Map对象的4种方法
https://blog.csdn.net/tjcyjd/article/details/11111401
3java实现二分查找-两种方式
https://blog.csdn.net/maoyuanming0806/article/details/78176957
4