Java的前景如何,好不好自学?

XML 还没有被淘汰,应用的地方还有不少。但是作为一种数据传输格式,它正在被 JSON 替代。

4)JDBC

我个人不建议再学习偏底层的 JDBC 了,尤其是对于时间宝贵的自学程序员来说。与其花这点时间,不如把精力投入到 MyBatis 的学习上。

5)Struts

Struts 是早年一个优秀的 MVC 框架,单从技术的角度来看,还是蛮不错的。但是自从有了 SpringMVC 后,Struts 就被拍死在沙滩上了。

6)Hibernate

在我刚参加工作那会(2010 年的时候),持久层框架用的正是 Hibernate。但时过境迁,Hibernate 太重量级了,学习成本太高,取而代之的是轻量级的 MyBatis(支持定制化 SQL、存储过程以及高级映射)。

7)JSP

说起来惭愧,我现在维护的一个项目,视图层用的依然是 JSP。但如今流行的是“前后端分离”,JSP 就显得不合时宜了。

建议二:有哪些优质的 Java 学习网站

首先,你必须要学会谷歌,这个真的是超级有必要。

2)Stack Overflow

Stack Overflow 可以说是解决问题的杀手锏。下面这些问题是不是都很常见?

如果英语能力不太好的话,可以借助一下 Chrome 浏览器的自动翻译功能。

3)GitHub

GitHub 是一个拥有数十亿行代码的网站,每天有数百万开发者聚集在一起,研究开源软件中存在的问题。

对于普通的程序员来说,如果不想重复造轮子,就必须要站在巨人的肩膀上,那么巨人是谁呢?就是 GitHub。那些牛逼的开源软件库,99% 的情况下会在 GitHub 上找到它。

对于成功的程序员来说,如果想要被别人膜拜,最好能在 GitHub 上贡献一个开源库,如果星标超过 1W,那可是相当的牛逼,在业界应该算是响当当的人物。

然后,我再推荐一些 Java 程序员必须要关注的网站。

4)IBM Developer

IBM developerWorks 提供了中文版,里面的文章都属于非常高质量的。

5)Java SE 技术文档,https://docs.oracle.com/javase/8/docs/api/

即使是 Java 编程的大牛 , 也离不开这份文档。中文版的 API 可以参照:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh

6)Java World

这个网站包含了大量的 Java 教程 , 涉及各种各样的话题。其中很多文章都写的很好 , 并且有图片、插图进行说明。它可以被用来当作深度学习的教科书。英文能力有限的话,可以使用谷歌翻译。

7)Program Creek

Program Creek 在维护方面做的很好 , 文章读起来也比较有趣。在这里 , 你可以找到其他任何网站都不曾涉及到的话题 , 而且几乎每篇文章都包含漂亮的插图或者示例代码。

8)LeetCode

备战技术面试?力扣提供了海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。

刷题的话,还有一个牛客网值得推荐,里面各个公司的面试题和面经分享,找工作前认真刷一刷,一定会大有所获。这里强调一下刷题的重要性:

  • 可以让思维保持活跃

  • 强化对基本知识的理解

  • 要想找到工作,就要过面试,不刷题怎么能行

建议三:有哪些优质的 Java 书籍

第一本,《Head First Java

在我遇到《Head First Java》之前,如果你要我推荐 Java 技术书,我会毫不犹豫地推荐《Java 编程思想》和《Java 核心技术卷》,因为大家都说好嘛,我只能“同流合污”了(强颜欢笑);但换成是现在的话,我会优先推荐《Head First Java》。

尽管《Head First Java》也非常的厚,至少比我的脸皮后,但趣味性就要甩前面两本好几条街了。这年头,大家都没时间读枯燥的技术书,尤其是厚的。上一张图大家感受一下《Head First Java》的调皮吧。

就冲着这张图,我觉得《Head First Java》的作者就足够的大胆。作者挑选的图片可以说张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本 Java 技术书,而是在读一本《知音》。

不止是图片,还有游戏、拼图、解谜题以及意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才感觉兴趣盎然。

第二本,《Java 核心技术卷一

《Java核心技术卷一》是唯一可以和《Java编程思想》媲美的一本 Java 入门书。单从技术的角度来看,前者更好一些。但上升到思想层面嘛,自然后者更好,两者的偏重点不同。

思想不会变,所以《Java编程思想》还停留在第 4 版(2007 年);而技术是要更新迭代的,所以《Java核心技术卷一》来到了第十版(2016 年)。

我们来看一下《Java核心技术卷一》第十版的大纲。

第三本,《Java 编程思想

这本书在豆瓣的评分高达 9.1 分,但我总觉得有点虚高。

记得刚上大学那会,就在某宝上买了一本影印版的《Java 编程思想》,但由于初学 Java,对编程极度缺乏信心,导致看这本书有一种看天书的感觉。后来,去苏州参加工作的时候把它作为最宝贵的纪念品带了过去。

2014 年回洛阳的时候把它送给了一位关系还不错的同事,权当是分别的礼物吧。2016 年的时候,我又重新买了一本,希望自己能够夯实一下基础。但事与愿违,它被我束之高阁了,读起来无比的枯燥。2018 年的时候,我重新捧起它读了一遍,总觉得有一种莫名的负罪感。

《Java编程思想》无疑一直都会被大力推荐,可是第四版的出版时间竟然早在 2007 年,全书大部分的代码是基于 JDK 1.5 完成的。如今什么年代了?

告诉你一个好消息,《Java编程思想》的作者 Bruce Eckel 在 2017 年的时候发布了第五版,没想到吧?为什么在网上都看不到这本书的消息呢?因为改名了,而且只有电子版。

这本书的所有源代码已经开源在 GitHub,传送门:

https://github.com/BruceEckel/OnJava8-Examples

如果英语水平像我一样菜,看英文版比较费劲,可以在 GitHub 上查看大婶们的译本,传送门:

https://github.com/LingCoder/OnJava8

如果英语水平还不错,可以自行购买电子版的《On Java 8》,虽然比较贵。

第四本,《Effective Java

《Effective Java》除了翻译让众多 Java 程序员诟病之外,再没有任何缺点了(有读者戏称:“这本书为翻译们作出了杰出的表率”)。其目标是帮助 Java 程序员更加有效地使用 Java 编程语言及其基本类库,主要涉及到 java.langjava.utiljava.io 包下面的类。

《Effective Java》第三版一共包含了 90 条极具实用价值的经验规则,每条规则都值得 Java 程序员在实战中去参照。这本书不需要按部就班地从头到尾读,可以随意挑选任意小节进行阅读,因为每条规则相对都是独立的,尽管它们之间会交叉引用,但并不妨碍我们随心所欲地阅读。

作者 Josh Bloch 非常的牛逼,曾是 Google 的首席 Java 架构师,《Java开发者杂志》将他列为世界上最顶尖的四十名软件人物之一。Java 之父詹姆斯·高斯林对《Effective Java》的评价也非常的高。

第五本,《Java网络编程

《Java网络编程》全面介绍了如何使用 Java 开发网络程序。网络编程是指编写运行在多个设备(计算机)上的程序,这些设备可以通过网络连接起来。这也是 Java 基础学习完后必须要学习的一大块内容,包括:Internet 底层协议(TCP/IP 和 UDP/IP)、网络输入和输出、DNS 交互、定位、识别和下载网络资源、HTTP 协议(REST、HTTP 头部和 Cookie)、Socket 通信等等。

这本书的整体评价并不算高,吐槽的反而更多。但是,对于学习 Java 网络编程的基础知识非常的有用。

第六本,《Java 并发编程实战

《Java并发编程实战》深入浅出地介绍了 Java 线程和并发编程,是一本还算不错的 Java 并发编程参考手册。本书从并发和线程安全性的基本概念出发,介绍了如何使用类库来提供基本的并发方案,包括如何利用线程来提高并发应用程序的吞吐量、如何识别可并发执行的任务、如何提高单线程子系统的响应性、如何确保并发程序执行预期的任务,如何提高并发代码的性能和可伸缩性等等内容。

但我必须要说的是,《Java并发编程实战》这本书并没有摆脱翻译枯燥的老毛病,读起来很需要耐住性子,不然就很难把这本书吃透。当然了,并发编程本身就很难,大家要做好心理准备。

第七本《深入理解Java虚拟机

《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 2 版)》是唯一一本我们国内程序员写的经典书,可以媲美《Java 编程思想》。

这本书牛逼到什么程度,几乎所有写 Java 虚拟机方面的文章,没有一个不在文章最后注明:本文参考字周志明老师的《深入理解 Java 虚拟机》。假如这篇文章最后没有注明的话,那保不准是不尊重版权。

第 1 版两年内印刷近 10 次,好评(五星)如潮,是整个 Java 图书领域公认的经典著作和畅销书。

第 2 版共分为 5 大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对 JVM 进行了全面深入的分析,深刻揭示了 JVM 的工作原理。

第一部分主要介绍了 Java 的技术体系、Java 和 JVM 的发展历程。

第二部分主要介绍了 JVM 的自动内存管理,包括虚拟机的内存区域划分原理,内存溢出产生的原因、常见的垃圾收集算法、垃圾收集器的工作原理等等。

第三部分主要介绍了类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。

第四部分主要介绍了程序的编译和代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;还有 HotSpot 的即时编译器。

第五部分主要介绍了 Java 实现高效并发的原理,包括 JVM 内存模型等。

作者周志明更成为了广大 Java 程序员心目中的大神级人物,厉害厉害了!有读者曾这样感叹道:“国内程序员很难再写出这么经典的书了!”

如果大家想要成为一名优秀的 Java 程序员,本书不得不读啊!并且是细细品味的那种。

第八本,《Java性能权威指南

市面上专注于 Java 性能的书不多,《Java性能权威指南》算是一本很不错的。通过阅读本书,我们可以运用 4 个基本原则最大程度地提升性能测试的效果、使用 JDK 自带的工具收集程序的性能数据、理解 JIT(即时编译器)编译器的优缺点、调优 JVM 垃圾收集器、最大程度优化多线程等等。

第九本,《代码整洁之道

我可以这么肯定地说:《代码整洁之道》值得所有的程序员读一读。软件的质量,不仅依赖于架构,更与代码质量息息相关。而代码的质量与其整洁度成正比关系,越整洁的代码,其质量毫无疑问的就会越高。由于本书中的例子是由 Java 实现的,因此 Java 程序员在读这本书的时候有着天然的优势。

如何写出整洁的代码呢?Keep It Simple Stupid:代码简单直接,不仅能够提高代码的效率,还能够让阅读代码的人赏心悦目。

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)

taW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xMTc5Mzg5LTc1N2Y5YjUyYzg2MjgzOWYucG5n?x-oss-process=image/format,png)

如何写出整洁的代码呢?Keep It Simple Stupid:代码简单直接,不仅能够提高代码的效率,还能够让阅读代码的人赏心悦目。

总结

大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。

麻烦帮忙转发一下这篇文章+关注我

[外链图片转存中…(img-PzorNm1F-1714135574212)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 20
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值