学个 P 的Java
Posted 黄小斜学Java
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学个 P 的Java相关的知识,希望对你有一定的参考价值。
你好,我是yes。
这篇文章我想从劝退的角度,来拢一波身为一个Javaer不管是从工作还是面试都需要掌握的一些要点。
从初学者到老油条的节奏来写,来看看会不会被劝退吧!随便推荐一些相关的资料。
学 Java 都要学些啥呢?
Java 基础学了没?
什么基本数据类型、操作符、控制语句等基本语法就不说了。
一些特性搞明白了嘛?
-
面向对象和面向过程 -
反射与代理 -
接口与继承 -
泛型 -
异常处理 -
注解 -
.....
常用类库用的溜嘛?
-
文件I/O操作 -
时间日期操作 -
字符串操作
集合类熟不熟?
-
List、ArrayList、LinkedList -
Set、HashSet、TreeSet、LinkedHashSet -
Queue、PriorityQueue -
Map、HashMap、HashTable、LinkedHashMap、TreeMap
并发相关熟不熟?
-
Java内存模型 -
线程的几个状态及转换 -
线程池原理 -
join、wait、notify、notifyAll -
Thread、Runnable、Callable -
Executors、FutureTask、ForkJoin -
synchronized、ReentrantLock、ReentrantReadWriteLock -
ConcurrentHashMap、ConcurrentSkipListMap、CopyOnWriteArrayList -
ArrayBlockingQueue、LinkedBlockingDeque、DelayQueue、PriorityBlockingQueue -
LinkedTransferQueue、SynchronousQueue -
CyclicBarrier、Semaphore、StampedLock、CountDownLatch -
Atomicxxxx、LongAdder、LongAccumulator -
CompletableFuture
怎么这么多类?平常有些很少用到,就怕面试问到。之所以列了这么多,就是让你重视一下!
JVM 得了解一下吧?
-
内存的划分 -
几种引用类型的区别 -
几种垃圾收集算法 -
垃圾收集器:CMS、G1、ZGC等 -
GC如何调优 -
类加载机制
一些I/O模型相关
-
C10k问题 -
BIO、NIO、AIO -
select、poll、epoll -
Reactor、Proactor
常用框架总得学学吧?
-
Spring、SpringBoot -
Mybatis、Hibernate -
Netty
JavaWeb 相关
这个阶段好像感觉自己有点东西了,回头看看你的代码吧!
代码设计
-
单一、开闭、里氏替换、接口分离、依赖倒置、最小依赖、Kiss原则 -
23种设计模式 -
代码整洁之道
对了,数据库整明白了没?
-
啥 groupby、having 之类的基本语法就不说了 -
几个范式 -
独立完成数据库设计 -
ACID事务、MVCC -
整体架构 -
SQL 处理流程 -
几个引擎对比 -
索引结构和使用 -
看懂 explain、调优 SQL -
读写分离、主从同步原理 -
binlog、redolog、undolog的作用 -
分区分表分库 -
在线数据迁移
非关系型数据库,别问为什么都列两个,对比选型呀
-
Redis、Memcached -
MongoDB、CouchDB -
HBase、Cassandra -
InfoGrid, Neo4j
数据库中间件总得了解点吧
-
Mycat、ShardingSphere、cannal等
消息队列不可或缺
-
RocketMQ、Kafka、RabbitMQ
好像还不够,分布式相关了解一下啊
-
CAP、BASE -
Dubbo、SpringCloud、gRpc -
ZooKeeper、Eureka、Consul、Nacos -
API网关:zuul、Openresty、Kong -
Zipkin、Pinpoint、SkyWalking、CAT -
分布式存储、分布式计算、流计算...... -
Paxos、Raft、ZAB、Gossip -
TCC、2pc、3pc等分布式事务
这时候或者更早之前你就感觉你需要完整的巩固一遍基础,当然如果你大学是科班出身,而且认真上课了,应该不太需要
-
计算机组成原理 -
操作系统 -
计算机网络 -
数据结构与算法 -
编译原理
这些详细我的就不展开了,有点多。
还有容器相关 docker、k8s ,还有大数据(选修吧)
所以,还想学 Java 呢?
那就来看看到底要看哪些书和视频
这里的推荐基本上每份一样,我怕你有选择恐惧症,只给你一个选择。
Java 基础:
-
《Java 核心技术卷 I》 -
《Java 核心技术卷 II》
如果你想看点轻松点入门的
-
《Head First Java》
如果看不进书,那去看视频吧
-
B站的Java入门视频,https://www.bilibili.com/video/BV1Kb411W75N
新手(没有任何语言基础)推荐视频,比较不容易劝退。
还有一本被誉为神书的《Java编程思想》,内容容易劝退,不建议新手看。
还有《Effective Java》,学会了再看,好奇的话你可以先试试。
Java 并发相关:
-
《Java并发编程实战》
至于并发相关还想看看别的?你先把这本看完了,到时候自然就知道如何学了。
JVM :
-
《深入理解 Java 虚拟机》
同样,如果还想深入,先把这本看完,到时候再深入不迟。
如果想看视频:
-
B站宋红康,https://www.bilibili.com/video/BV1PJ411n7xZ
如果对垃圾回收感兴趣:
-
《垃圾回收算法手册:自动内存管理的艺术》 -
《垃圾回收的算法与实现》
对了这本也可以看看,Java性能优化相关的:
-
《Java性能优化权威指南》
I/O模型相关:
-
c10k问题,http://www.kegel.com/c10k.html -
Doug Lea 老爷子的 Scalable IO in Java,http://gee.cs.oswego.edu/dl/cpjslides/nio.pdf -
再加一些杂七杂八的博客,自己用用,差不多了。
常用框架和中间件:
-
B站Spring视频,https://www.bilibili.com/video/BV1Vf4y127N5 -
Spring官网,https://spring.io/ -
《Spring揭秘》 -
MyBatis官方文档,https://mybatis.org/mybatis-3/zh/index.html(中文的应该不会被劝退) -
《Netty实战》 -
李号双的专栏《深入拆解Tomcat&Jetty》,然后书《深入剖析Tomcat》
一点点前端知识:
-
w3cschool,https://www.w3cschool.cn
学学 html、js、css
设计模式与代码整洁:
-
《代码整洁之道》 -
《设计模式之美》
MySQL
如果有你 MySQL 基础,或者说你大学学过数据库的课程,那么《MySQL必知必会》这本书,别去看,虽说很薄,但是太太太基础了....
如果你基本的 SQL 语句都不会,那就去看《MySQL必知必会》
-
《MySQL技术内幕:InnoDB存储引擎》 -
丁奇《MySQL实战45讲》 -
《从根儿上理解mysql》 -
《高性能MySQL(第3版)》 -
《MySQL技术内幕 InnoDB存储引擎》
Redis
-
redis官网,https://redis.io/
-
《Redis设计与实现》
-
《Redis开发与运维》
-
还有一些配套网站和中文注解源码,我之前文章写过。
还有很多中间件相关的我就不详细列了
-
统一看看官网 -
书的话,关键字打在豆瓣上搜搜,评分高的就没错。有一些中间件书不多,所以即使评分不高也可以看看,学习学习。 -
配合一些收费实战专栏学习,几十块的那种。
如果上面的都学下来,那么你脑海里应该挺有东西了,所以大头书应该能啃下去了,所以直接啃经典吧。
-
《深入理解计算机系统》 -
《计算机程序的构造和解释》 -
《现代操作系统》 -
《计算机网络:自顶向下》 -
《算法》第四版
算法如果只是为了应付面试,其实看小争哥的专栏就够了《数据结构与算法之美》,然后再配合 LeetCode刷题。
— 【 THE END 】— 本公众号全部博文已整理成一个目录,请在公众号里回复「 m 」获取! 最近面试BAT,整理一份面试资料《Java面试BATJ通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
以上是关于学个 P 的Java的主要内容,如果未能解决你的问题,请参考以下文章
selenuim,qtp,loadrunner,jmeter有何区别,想学个脚本语言python和测试工具应该从哪里入门呢。