Java学习是一个前期慢慢把书读厚,后期慢慢把书读薄的过程。很多人问学java怎么提高效率?感觉学的慢怎么办?那我来统一分析一下这个问题并提出我的看法。
学java怎么提高效率?感觉学的慢怎么办?
在前期学习的时候,一定要多读,快读,可以是读书,也可以是看视频,一边学习理论,一边跟着教程敲代码。
有一个最大的误区就是千万不要过分的抠字眼,很容易让自己的大脑陷入死循环,最终造成越学习越学不下去的结果。
比如,不必纠结课本上为什么前后矛盾,前一章还把接口定义为“使用interface来声明的抽象类”,后一章却把接口定义为“后端接收到前端的post/get请求后,所实现的先完成一段业务功能然后返回给前端一个具有一定格式的数据的方法”。
在达到可以在不依靠外部资料的情况下,自己实现一个使用框架搭建的项目并成功运行的时候,就进入慢慢把书读薄的时候了。
这个时候就可以开始逐渐研究框架的底层原理,慢慢地你就会发现“万变不离其宗”这样的道理。很多框架都是基于操作系统的底层原理实现的。为了针对业务的与时俱进,框架也在不断优化,比如针对用户量的不断提升,就有了高并发、高可用,同时有了分布式、有了分库分表、有了集群搭建和数据一致性解决方案。
新的解决方案又引发了新的问题,比如分布式系统带来的分布式事务问题、服务器集群带来的数据一致性问题、分库分表带来的关联查询问题等。
随着时间的发展,新的问题又有了新的解决方案。同时,如果关注java中的类,比如集合类的源码的话,会发现在集合类的版本优化中,其实是用到了数据结构的相关知识的,比如CurrentHashMap在1.7中还是数组+链表+分段锁,但是在1.8版本中为什么变成了数组+链表+红黑树呢?基于CAS实现的乐观锁相对于悲观锁来说,又有哪些优势呢?红黑树对比链表的优势在哪里?为什么CurrentHashMap采用“链表超过一定的数量会转为红黑树结构,红黑树节点低于一定数量又会变成链表结构”,而不是直接使用红黑树呢?
这些都是在后续的学习中需要慢慢学习的东西。
分享一份超全的java核心知识笔记给大家,不论是用于巩固基础,还是在面试中提高竞争力都可以收藏一份,有空多看看,下面展示部分截图。
(一). 基础
1、Java 基本功
Java 入门(基础概念与常识)
Java 语法
基本数据类型
方法(函数)
2、Java 面向对象
类和对象
面向对象三大特征
修饰符
接口和抽象类
其它重要知识点
3、Java 核心技术
集合
异常
多线程
文件与 I\O 流
(二). 并发
1、并发容器
JDK 提供的并发容器总结
ConcurrentHashMap
CopyOnWriteArrayList
ConcurrentLinkedQueue
BlockingQueue
ConcurrentSkipListMap
2、线程池
使用线程池的好处
Executor 框架
(重要)ThreadPoolExecutor 类简单介绍
(重要)ThreadPoolExecutor 使用示例
几种常见的线程池详解
ScheduledThreadPoolExecutor 详解
线程池大小确定
3、乐观锁与悲观锁
何谓悲观锁与乐观锁
乐观锁常见的两种实现方式
乐观锁的缺点
CAS与synchronized的使用情景
(三). JVM
1、Java内存区域
概述
运行时数据区域
HotSpot 虚拟机对象探秘
重点补充内容
2、JVM垃圾回收
揭开 JVM 内存分配与回收的神秘面纱
对象已经死亡?
垃圾收集算法
垃圾收集器
3、JDK 监控和故障处理工具
JDK 命令行工具
JDK 可视化分析工具
(四)网络、linux、数据结构与算法、数据库、系统设计、必会工具、面试指南
因为篇幅有限,其他内容就不一一展示了,这本进阶笔记总共有512页。对于想要进阶的小伙伴来说应该会很有帮助,希望也能帮助到你。