零基础小白学Java要掌握这些知识点
时间:2021-07-11 22:25:19 已访问:664次
不论是你想要深入研究 Java 并发,还是说要准备面试,你都可以看看这本书。
下面是我总结的一些关于并发的小问题,你可以拿来自测:
什么是线程和进程? 线程与进程的关系,区别及优缺点?
说说并发与并行的区别?
为什么要使用多线程呢?
使用多线程可能带来什么问题?(内存泄漏、死锁、线程不安全等等)
创建线程有哪几种方式?(a.继承 Thread 类;b.实现 Runnable 接口;c. 使用 Executor 框架;d.使用 FutureTask)
说说线程的生命周期和状态?
什么是上下文切换?
什么是线程死锁?如何避免死锁?
说说 sleep() 方法和 wait() 方法区别和共同点?
Java 内存模型(JMM)、重排序与 happens-before 原则了解吗?
synchronized 关键字、volatile 关键字
ThreadLocal 有啥用(解决了什么问题)?怎么用?原理了解吗?内存泄露问题了解吗?
为什么要用线程池?ThreadPoolExecutor 类的重要参数了解吗?ThreadPoolExecutor 饱和策略了解吗?线程池原理了解吗?几种常见的线程池了解吗?为什么不推荐使用FixedThreadPool?如何设置线程池的大小?
AQS 了解么?原理?AQS 常用组件:Semaphore (信号量)、CountDownLatch (倒计时器) CyclicBarrier(循环栅栏)
ReentrantLock 、 ReentrantReadWriteLock 、StampedLock(JDK8)
CAS 了解么?原理?
Atomic 原子类
并发容器:ConcurrentHashMap 、 CopyOnWriteArrayList 、 ConcurrentLinkedQueueBlockingQueue 、ConcurrentSkipListMap
Future 和 CompletableFuture
......
JVM
对于 Java 程序员来说,JVM 帮助我们做了很多事情比如内存管理、垃圾回收等等。在 JVM 的帮助下,我们的程序出现内存泄漏这些问题的概率相对来说是比较低的。但是,这并不代表我们在日常开发工作中不会遇到。万一你在工作中遇到了 OOM 问题,你至少要知道如何去排查和解决问题吧!
并且,就单纯从面试角度来说,JVM 是 Java 后端面试(大厂)中非常重要的一环。不论是应届还是社招,面试国内的一些大厂,你都会被问到很多 JVM 相关的问题(应届的话侧重理论,社招实践)。
只有搞懂了 JVM 才有可能真正把 Java 语言“吃透”。学习 JVM 这部分的内容,一定要注意要实战和理论结合。
书籍的话,《深入理解 Java 虚拟机》 这本书是首先要推荐的。