学个 P 的Java,从劝退的角度来跟你讲讲Java需要学什么

4 篇文章 1 订阅
3 篇文章 0 订阅

这篇文章我想从劝退的角度,来拢一波身为一个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 相关

Servlet、JSP、模板
Html、CSS、JS 简单的也得懂点吧?
浏览器也得懂点吧?
Tomcat、Jetty
顺带学下 Nginx、CDN等
这个阶段好像感觉自己有点东西了,回头看看你的代码吧!

代码设计

单一、开闭、里氏替换、接口分离、依赖倒置、最小依赖、Kiss原则
23种设计模式
代码整洁之道
对了,数据库整明白了没?

Mysql

啥 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 虚拟机》
在这里插入图片描述

同样,如果还想深入,先把这本看完,到时候再深入不迟。
在这里插入图片描述

如果对垃圾回收感兴趣:
《垃圾回收算法手册:自动内存管理的艺术》
在这里插入图片描述

《垃圾回收的算法与实现》
在这里插入图片描述

对了这本也可以看看,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开发与运维》
    还有一些配套网站和中文注解源码,我之前文章写过。 如何学习Redis

还有很多中间件相关的我就不详细列了

  • 统一看看官网 书的话,关键字打在豆瓣上搜搜,评分高的就没错。有一些中间件书不多,所以即使评分不高也可以看看,学习学习。
    配合一些收费实战专栏学习,几十块的那种。 如果上面的都学下来,那么你脑海里应该挺有东西了,所以大头书应该能啃下去了,所以直接啃经典吧。
    《深入理解计算机系统》 《计算机程序的构造和解释》 《现代操作系统》 《计算机网络:自顶向下》 《算法》第四版
    算法如果只是为了应付面试,其实看小争哥的专栏就够了《数据结构与算法之美》,然后再配合 LeetCode刷题。
    在这里插入图片描述

V:gdhlw2021
q裙:931286725

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值