《Thinking In Java》作者:不要使用并发

深入理解Java:《Thinking in Java》中文版要点解析 本文还有配套的精品资源,点击获取 简介:《Thinking in Java》是Java编程领域的经典教材,涵盖Java语言核心概念至高级主题。此书不仅教授语法,更注重培养编程思维。新版包括基础语法、面向对象编程、集合框架、泛型、异常处理、多线程、I/O流、反射、注解、高级并发特性、内存管理以及设计模式等关键知识点。无论是初学者还是进阶开发者,都能通过实例学习提高Java技能... 阅读详情

前言

今天纯粹就是带你们来读读书的~

最近除了工作,特地买回了自己很喜欢的作者新发售的一本书《On Java》,作者是我的老朋友布鲁斯·埃克尔,在Java领域很有名,你可能没听过他的名字,但极有可能听过他的另一本书《Thinking In Java》,我想很多Java工程师都读过这本书,可以说是Java编程思想的良心之作。

虽然布鲁斯是我的老朋友,但我不得不吐槽一下,大概通读了一遍《On Java》之后,我心里大体认为是不如《Thinking In Java》的,可能和写小说一样,读者的要求高了,而作者的年纪大了。

我认识布鲁斯很多年了,他是个比较幽默风趣的人,经常在书中直言不讳某编程语言的垃圾之处,同时又对该语言的未来做一点展望,算是一个很中肯且典型的直男程序猿。

最后说一点,我认识他,他不认识我。

正文

我着重看了自己比较感兴趣的并发编程这一块,想知道这位大佬对于目前Java并发编程是否有新的看法和意见,不出我所料,他没讲什么重要的东西,但是好像又讲了,带着吐槽批判式的口吻,陈列了他喜欢和讨厌Java并发编程的地方。

所以我把一些我觉得有意思的地方画出来,分享给大家,看看一个资深Java大佬对并发编程的理解。

1、大佬的并发定律

其实看到作者研究出的这4条定律时,我还是挺意外的,第一句就点题了,不要使用并发。

仔细想想好像也对……再琢磨一下咦有感觉……最后回忆一下这些年参与的项目……哇擦好有道理!

接下来3条基本算是总纲了,后面的内容都是对这几条的说明。

2、你已埋下的隐患

这里就是对2、3条的具体说明了,有些话我觉得略显啰嗦,我把对于程序员来讲比较重要的一句话画出来了。

你很容易写出一个看起来运行正常但实际上有问题的并发程序。

看到这句话的时候是不是已经开始默默打开自己的IDEA了,然后审视了一遍自己提交的代码?

别看了,你埋的炸弹还少么,能看出花来吗。

看清楚作者后面那句:你这个问题只有满足最罕见的条件时,才会将自己暴露出来。

我可以这么说,在座绝大部分同行去了下一家公司干活,可能上一家公司的新同事才会在你毫不知情的时候默默踩到你埋的地雷然后被炸个粉碎,而你在新公司也正在踩别人的雷,出来混都是要还的。

3、别否认你就是这种人

看到这里的时候,我忍不住亲了布鲁斯一口,他痛快的描述出了我一直以来在工作中说不清道不明的烦躁,因为你总会遇到这样的人,同时很难发现自己到底是不是这样的人。

我在工作前3年其实如履薄冰,感觉自己什么都学了,但去了公司发现什么都不会,怀揣着自我否定一点点完成别人布置的任务,直到工作5年以后才有一种醍醐灌顶的感觉,理解了自己做的是什么,接下来要学习哪个方向,以前学到那么多东西究竟是怎么串联起来的,这是一种打通任督二脉的满足感。

等到工作8年之后,才真正开始回头看Java语言,对以前烦厌欲呕的Java基础提起莫名的兴趣,同时喜欢看书,写案例,尝试阅读别人的源码等等,此时我才真正有自己一只腿迈进Java领域的意识。

同时,在工作中会对许多能力一般但沟通较为偏执的同事产生抵触情绪,我有时会认为这是一种大人看小孩耍脾气的感觉,这个只有在工作多年之后才会产生,作者很准确的阐述出了我描绘不出的这种解释。

同样的,我认为在这个成长的过程中,我一定也成为过别人心中眼高手低的人。

我在这里能分享给大家的经验就是,在工作中多学习少争论,多和厉害的人走近一点,虚心把对方的东西都学过来,长此以往你会进步神速,这不是你在网上学习能得到的,一定是在工作中。

4、高级Javaer都有过的想法

这里我为什么专门画出来,因为很多高级javaer一定有过类似的想法,就是发现了Java并不擅长做并发编程,是否可以用其他语言来完成,而Java只做他自己擅长的事。

至少我以前就想过,可现实层面我认为是异想天开的,尤其是工作中,基本都是团队开发,这种想法就已经几乎被pass掉了,同时为了某一个领域的实现专门引入一门编程语言甚至体系,得不偿失,毕竟Java不擅长但却成熟,光是网上卖课郎告诉你的就有N种诸如《Java千亿级高并发解决方案》、《Java万亿级电商实战》等等这样的受用终生的鬼东西。

而你辛辛苦苦跟着学完后,发现玛德用不上,就像你学了《九阴真经》后以为可以当武林盟主最终却进了铁匠铺,而铁匠铺老板还不想听你鬼扯只想让你每天加班多打几把武器。

图片中我还画了个圈,我想不少人应该知道这门语言,还蛮有名的,就是国内不太火,这有编程历史因素在里面,其实还有一门语言也蛮适合的,而且这几年也挺火,我想你也猜到了,我觉得5年+的Java工程师都应该关注甚至学习一下。

5、我和大佬不谋而合

这是接近尾声的部分了,也是这位作者熟悉的笔法,发泄完自己的情绪后又开始对Java的某新版本极尽赞美,典型的被PUA了。

但不得不说,Java8我也认为是革命性的版本,在这个版本发布以前,作为Java工程师你甚至不会想到它敢做到这个地步,就像布鲁斯书中讲的,这是史诗般的魔法。

你可以在Java8的版本里发现一些其他语言的影子,这没什么,天下语言一大抄,发展到一定程度,已经是避免不了的趋势了。

重要的是,这个版本给Java上油了,为后续的版本提供了活力,而Java17作为官方长久支持版本的其中一个非常重要的版本,你可以发现有其他框架给它背书,比如SpringBoot3只支持Java17,而Jenkins也宣布在新版本放弃Java8并且该团队更推荐Java17,IDEA后续新版本可能也会放弃Java8,这明显就是小圈子,有利益的勾连,但对Java本身发展不是坏事。

所以,Java8的核心技术点最应该学习,如果现在还一点不会,赶紧学吧,我认为这是后续版本的基础了,lambada表达式、stream流不必说了,是Java8版本的核心技术,CompletableFuture作为Java8并发编程中最大的改进要花时间好好学习,这也是本书作者所提到的,而且后面专门花了一个大章来讲CompletableFuture。

作者虽然一直强调不要使用并发,但却对Java8的并发编程工具花了较大篇幅,我个人认为他更多的是一种见猎心喜,可是我们面试经常会问到这个工具类相关的东西,看一下大佬对该工具的理解还是很有用的。

总结

《On Java》这本书说实话,我觉得没有作者的《Thinking In Java》写得好,可能有多种原因导致。

我说下我觉得不好的主要感受在哪里,一是有些地方翻译的不好,会给你带来困惑,二是作者给出的一些案例有自己的风格,而且例子我没觉得那么通俗易懂。

但总体上还是值得一看,尤其是他穿插了很多和其他如C/C++、GO等语言的比较,还包含了自己对Java的理解,尤其是一些编程思想很直接,最后给出了林林总总有接近70条的编程指南,我认为对于初学者树立未来工作中的编程思想是很有用的。

这位作者的文字中弥漫着一股浓烈的不推荐使用并发编程的味道,我觉得是他多年工作的心得,所以大家在往后的工作中不妨可以借鉴下大佬的思维。

好了,我今天也就是带你读了下书,读的还开心吗。

《Thinking in Java 3》:Java编程权威指南 本文还有配套的精品资源,点击获取 简介:《Thinking in Java》第三版是一本深入浅出地介绍Java语言核心概念和技术的权威指南,旨在帮助读者建立坚实的Java基础。书中详细讲解了Java的面向对象基础,类和对象的使用,接口的多重多态性,包的组织和管理,内存管理和垃圾回收,异常处理,集合框架,泛型以及多线程编程等内容。同时,它还包括了输入/输出流、网络编程、反射、... 阅读详情

相关推荐

Matlab机械臂建模:机器人工具箱的使用&&导入自己的机械臂模型

本文主要介绍如何在matlab中建立机械臂模型(前提要下载了Robotics Toolbox机器人工具箱~),并进行基于正逆运动学计算的轨迹运动。对于已有的Solidworks机械臂三维模型,如何导入Matlab,并对其进行运动控制。

m0_46427461的博客 5万+

我用了两年时间去读《Thinking in Java》

路漫漫其修远兮,吾将上下而求索。 ——题记 我用了两年时间去读《Think...

让学习编程变得生动有趣~ 2万+

LC整流滤波电路DIY:电感电容配合,手把手搭建低纹波直流电源

在直流电源设计中,整流滤波是连接交流输入与稳定输出的关键环节。常见的电容滤波虽然简单,但在大负载下纹波抑制能力有限,电感抵抗电流突变、电容抵抗电压突变,二者组合构成的LC滤波能有效降低输出电压纹波,同时减小开机浪涌电流。在工频线性电源、功放电源等对噪声敏感的场景中,LC滤波常作为稳压前的平滑缓冲。本文以一套完整DIY项目为线索,介绍整流桥后串联功率电感、并联滤波电容的电路构成,结合实际计算与波形测试,讨论电感量估算、电容选取、谐振风险、饱和电流等工程问题,并给出上电测试和故障排查方法。通过搭建与调试,可直观

weixin_29168813的博客 377

《Thinking in java》笔记

《thinking in java》引发的思考 关于java面向对象的思考——抽象、并发 thinking in java中1.1抽象过程的描述 问题空间——>解空间的映射(所有问题最终都是列表,所有问题最终都是算法,面向对象) 对象是现实世界的抽象,到解空间中很好表述 难点:如何在问题空间的元素 到 解空间的对象之间创造一一对应的映射 java中的不足——interface、abst?、 (1.必须先定义最高层[或者使用适配器方式] 2.类似的类如何高效的相互复用[比如...

__一叶__的博客 1134

Python海康相机api---超简单入坑学习必看

海康官网下载相机驱动​安装好以后找到Python的开发文件目录参考:D:\MVS\MVS\Development\Samples\Python\MvImport这几个文件很重要,想调用海康相机取图会用到.​为了写代码方便可以把这几个文件拷贝一下,跟你的api主文件放在同一个文件夹下可以减少80%的烦恼.​。

weixin_59360687的博客 3478

【HarmonyOS 5】鸿蒙APP使用【团结引擎Unity】开发的案例教程

以下是基于团结引擎开发鸿蒙Unity应用的详细案例教程,整合环境配置、工程适配、跨语言通信等核心环节。

2201_75709314的博客 2483

Thinking in Java

Thinking in Java (Java编程思想) 学习总结心得(一) 前序: 学习java也已经有大约两年时间,但大多数断断续续,零散没有系统学习。这次经多方推荐购买了一本java学习必读书籍《Thinking in Java》学习之余将书中的心得和书中的重点内容总结写于此。 第一章 对象导论 我们之所以将自然界分解,组成各种概念,并按其含义分类,主要是因为我们是整个口语交流社...

周日王的博客 1306

基于51单片机语音识别智能台灯设计

智能台灯;语音识别;STC89C52RC单片机

Benso_H的博客 5842

ThinkingInJava-java编程思想总结

java编程思想

nakey_xie的博客 1481

如何使用ArcGIS自动矢量化建筑

在显示的重分类对话框内,输入栅格选择提取单波段后的栅格,重分类分为三个层级,旧值分别为100-249、250-251和252-255,对应新值为1、2和3,旧值的最小和最大值不用修改,保持和原有的一致。同样在ArcToolbox内点击Spatial Analyst工具点击“重分类\重分类”,在重分类对话框内输入栅格选择之前重分类过后的图片,将旧值3的新值设置为1,这样分类后就只有两类。在显示的新建Shapefile对话框内,名称命名为折线,要素类型选择折线,点击编辑,设置坐标系为WGS 1984。

2165

补丁1.0:使用Eviews做ADF检验

补丁1.0:使用Eviews做ADF检验

Jet4505的博客 1961

《Thinking In Java》作者:不要使用并发!

今天纯粹就是带你们来读读书的~最近除了工作,特地买回了自己很喜欢的作者新发售的一本书《On Java》,作者是我的老朋友布鲁斯·埃克尔,在Java领域很有名,你可能没听过他的名字,但极有可能听过他的另一本书《Thinking In Java》,我想很多Java工程师都读过这本书,可以说是Java编程思想的良心之作。

老男孩的架构路 207

41、矩形和圆柱形开槽微带贴片天线设计及性能分析

本文提出了一种适用于ISM频段(2.4 - 2.48 GHz)的微带圆形贴片天线,专为生物医学植入和可穿戴设备设计。通过在贴片上蚀刻矩形槽并去除圆柱形槽,实现了小型化与性能优化。采用Rogers 3010基板材料,结合缺陷接地结构(DGS)技术,有效改善了带宽、回波损耗和极化纯度。仿真结果显示,天线在弯曲状态下仍保持良好性能,回波损耗达-13 dB,VSWR为1.6,方向性提升至5.38 dB。与以往设计相比,本次设计在回波损耗和谐振频率稳定性方面表现优异,具备良好的生物相容性和应用潜力。未来将从开槽结构、

github5actions的博客 259

《Thinking In Java》 VS 《Effective Java》 VS 《深入理解Java虚拟机》

今天刚考完试,在5天以前的前4个月时间里,我很庆幸自己选了一个看书的学习途径。从上个学期的暑假到现学期的11周里面,读了《Thinking In Java》、《深入理解Java虚拟机》和《Effective Java》,感悟颇多。首先先说明一下,我以前是看视频学习的,就做过两三个学校的网站,都已经上线在使用。没做过什么特别高大上的东西,所以我是处在新手的角度去读书的,我也知道自己的理解很浅,不

小浩子的博客 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Thinking in java目录概述

文章目录目的整书概况总结 目的 为什么要选取《Thinking in java》这本书? 语言本身:Java程序语言在实际场景开发中有非常多的通途,许多互联网产品的basic依托于java语言来实现 书籍:我始终认为思想性的东西是最重要的,可以为自己的行为划定标准,知道什么样的思考方向是合理的,基本的思考框架应该是什么 阅读书籍首先应该对整本书有一个初略的了解和认识。 整书概况 通过阅读目录大...

在黑夜中前行 1349

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Thinking in Java:并发

PS:一个任务对象可以由多个线程执行 1.并发的意义:从性能角度看,如果没有任务会阻塞,那么单处理器机器上使用并发就没有任何意义 使用Executor 1.Java SE5de Executor将为你管理Thread对象,从而简化了并发变成。Executor允许你管理异步任务的执行,而无需显式地管理线程的生命周期,因此是启动任务的优选方法。通过Executors的静态方法创建

zhangqix的专栏 816

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Thinking in Java 源码的获取以及编译问题

《Java编程思想》的源代码的获取、编译过程,以及编译中碰到的错误。还有Ant程序的获取和配置。

pdcxs007的专栏 5272

《Thinking in Java》读后总结与感想

作为Java界的四大名著之一《Thinking in Java》一直备受推崇,我很早就知道了这本书,当时只是初涉Java,粗略的翻了翻之后觉得看起来这本书讲的比较深就没有再去碰它,后来Java基础学完之后又忙着学Android开发的知识,就一直没把这本书当一回事。重新将它拿起是去年的事,当时朱凯大神向我推荐了这本书,我当时决定把它找出来认真仔细的读一读。对,就是下面这本(用的是百度百科的图):

Preacher_Qiao的博客 8288

深入Java编程:《Thinking in Java》第四版代码库推荐

深入Java编程:《Thinking in Java》第四版代码库推荐 项目介绍 《Thinking in Java》第四版是由Bruce Eckel编写的经典Java编程书籍,涵盖了Java 5/6的核心概念和技术。本书不仅提供了丰富的理论知识,还附带了大量的代码示例,帮助读者深入理解Java编程的精髓。为了方便读者学习和实践,本书的代码库已经开源,并托管在GitHub上。通过下载和安装这些代码...

gitblog_00164的博客 865

跪了跪了!!继Thinking in java 4th 的后续其实是 On Java 8,而不是 Thinking in java 5

之前购入thinking in java 4th 英文版,部头太大,也是第一次接触oop,业余时间学习,直接上这部书就是坏主意。不过好歹挺过来了,扫了一遍,写了个小安卓APP。 但是很快发现,现在已经盛行java8了,java9页已经发布beta版了,还有kotlin。对于java5学到一半的人可谓尴尬,怎么进行过渡是个大问题。 很快只能继续找Bruce Eckel先生了,网上,尤其是中文网,基本都在找thinking in java 4th ,第五版的消息基本很少看到,看到也是噱头加广告。 于是只能Go

weixin_55932015的博客 442

Thinking in Java 附录之推荐书籍

陈昊鹏等翻译自Thinking in Java 第三版书籍Thinking in Java, 2nd Edition。本书所附光碟里就有此书,这是一个包含了完整索引并以颜色突出语法的HTML版本。你也可以从www.BruceEckel.com 免费下载。它还包含了一些没有收录到第三版的内容;详细情况请参考书中的目录。Thinking in Java, 1st Edition。本书所附光碟里就有

sunsnowad的专栏 2154

运行Thinking in Java里的codes

Thinking in Java的配套代码实操

TVXQ_xy的博客 1271

《Thinking in Java》和《Core Java》

     《Thinking in Java》和《Core Java》都是java中的经典书籍。也是很多刚接触Java看的最多的两本书。最近又把这两本书好好的翻了一遍。      core java非常适合第一次接触Java的人,我很庆幸当时看的就是这本书。分为上下两卷,我把上卷看完了,下卷用到的时候再查。我发现它里面java的语法介绍的非常细致,例子也举的恰到好处。让人一看就懂,并且每个例子

oracs的专栏 1万+

Thinking in java 习题答案

这个是我在学习thinking in java过程中所做的习题(不全),和大家分享,希望能共同进步以下是下载地址: http://211.155.234.58/coa/download.html     ----------------------------------------------------------------------------------

天堂来客 3057
上一篇: Alibaba 新产 SpringBoot 深度历险,把基础,进阶,项目实战,源码全讲清楚了
下一篇: 说一下 Spring 事务传播机制?
java小姜在线冲
博客等级 码龄4年 53粉丝 137原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值