是谁?写的Java神作一出版就获Jolt图书大奖【抽奖赠书】

送书活动

1️⃣参与方式:点此参与抽书抽奖
2️⃣获奖方式:小程序随机 抽5位,每位小伙伴一本《Effective Java中文2024版》
3️⃣活动时间:截止到 2024-4-6 12:01:00

注:所有抽奖活动都是全国范围免费包邮到家,谨防上当。


正文:Joshua Bloch是谁?

连Java之父James Gosling都多次表白他的作品“我很希望我10年前就能拥有这本书。有人可能认为我不需要任何Java方面的书籍,但是我需要这本书”,还在 JavaOne 2001 上直呼“去买这本书吧!”。
他就是《Effective Java》的作者、前Google首席Java架构师、Java集合框架创办人、卡内基梅隆大学(CMU)软件研究所的兼职教授——Joshua Bloch!
在这里插入图片描述

Bloch大神在《Effective Java》书中频频抛出硬核金句,至今仍被程序员广泛引用:

“API应该易于使用且不易被滥用。”

“如有疑问,请将其排除在外。”

“程序越干净、越好,运行速度就越快。”

“编程既涉及工艺,也涉及数学,还涉及人际交往能力和散文技巧。”

“如果你不能通过观察来判断一个程序做了什么,它可能不会做你想做的事。”

“同大多数学科一样,学习编程艺术首先要学会基本的规则,然后才能知道什么时候去打破规则。”

如果你还不太了解这位美国著名程序员,让我们一同探索他的编程人生,领悟他的编程智慧……

初探编程:“天啊,真酷,程序真的能学习。”

1961年8月28日,Joshua Bloch出生在美国纽约长岛萨福尔克县。这一年,是程序设计语言COBOL问世之际,也是麻省理工学院设计的第一台分系统计算机完成之际。
Bloch的编程之路最早可以追溯到1971年。当时,Bloch的父亲是美国Brookhaven国家实验室的化学家,他需要参加一个程序设计培训班。那时候,电脑都是放在玻璃窗背后的大型机,想要“编程”只能把写好的程序卡片交给操作员。虽然无法亲自动手,但刚上小学四年级的Bloch还是被计算机可以帮助自己做事这一点震撼了。所以,在他父亲上课的那段时间,Bloch跟父亲学了一点儿Fortran。
图片

但Bloch真的对程序产生强烈的兴趣却是在几年后。因为让他最有兴趣的是分时系统。
1973年,长岛有一台DEC system-10电脑,供萨福尔克县内所有的学校使用,佛罗里达州纳苏县也有一台。很神奇的是,很多著名人物的事业都是从这两台DEC system-10电脑开始的。因为对分时系统特别感兴趣,所以,在此后三年里,Bloch也跟其他人一样,开始写BASIC程序。
Bloch还记得他写的第一个有趣的程序。1977年7月4日,Bloch为经典的二十问游戏写了一个程序,叫“猜动物”。这个程序包含一个二叉树,是非题位于它的内部节点,动物位于它的叶节点上。如果用户所提的动物是叶节点上没有的,它会向用户提出是非题,通过区别新动物和它猜出的错误动物之间的差异来了解新动物。二叉树保存在硬盘上,这样程序可以越来越“聪明”。
Bloch当时就被惊讶到了:“天啊,真酷,程序真的能学习。”这也是他一生难忘的瞬间。
Bloch还保存着当年写的程序,这些程序是印在电信打印纸上的。如今回头再看这些程序,Bloch发现,他写的代码的部分风格从那个时候起就一直没变过。
图片

编程实在是太有趣了,因此,Bloch考上了哥伦比亚大学工程与应用科学学院,选择主修计算机科学,毕业后还选择继续深造,在卡内基美隆大学获得了计算机科学博士学位。他在1990年发表的博士论文“A Practical Approach to Replication of Abstract Data Objects”还曾被提名为ACM杰出博士论文奖。

哺育Java成长,成为Java幕后英雄

1996年1月,第一个JDK1.0正式版本诞生,Java这门新的编程语言开始崭露头角。
就在这一年,身为Transarc公司高级系统设计师的Bloch放弃之前打下的基业,前往西部,加入了Sun公司的 JavaSoft 部门,开启了他在Java世界的传奇之旅。
图片

接下来的 5 年,有着相当丰富的编程背景的Bloch担任了Java平台类库的架构师,设计、实现和维护过许多类库,比如DK1.1中的java.math、1.4中的assertions、Java Collections Framework,也为其他许多类库提过意见。其中,Collections Framework以其出色的设计和功能而受到了广泛的认可,并且获得了当年的Jolt大奖。
在Java迭代到了J2SE5.0时,即代号“Tiger”(虎)的版本,Joshua肩负起了推动这一版本向前的重任。Joshua与吉拉德·布拉查(Gilad Bracha)一起领导了团队,为Java 5增加了泛型、枚举类型、注解、自动装箱和 for-each循环等新语言特性,还设计了并发类库——java.util.concurrent。在他的引领下,这个版本成为Java版本史上第二个“里程碑”式的突破。
因为贡献过于杰出,所以Bloch获得了Sun公司“杰出工程师” (Distinguished Engineer)的称号。
图片

2004年7月,Bloch离开了Sun公司,加入了正蓬勃发展的Google,成为Google的Java首席架构师。同年12月,《Java 开发者杂志》将Bloch列为**”全球顶尖的40位软件开发者”之一。**
在Google公司,Bloch依旧身兼数职。他主要负责Java基础架构,继续开发并发和集合API,同时也是Google与Java 社区的联络人,是JCP(Java Community Process)的代表,是多个专家小组的成员。他还使用Java平台来开发 Google内部使用的类库,了解用户的感受。
即使在Google工作,Bloch仍然积极参与Java的发展。他和Doug Lea一起参加JSR166专家组,还为Java平台的语言和库做其他工作。此外,他也是JSR201和JSR175的领导者。
Bloch提出了Java编程语言的扩展具有两个特性:简明实例创建表达式(CICE)(与Bob Lee和Doug Lea共同提出)和自动资源管理(ARM)块。CICE和ARM的结合构成了“支持Java闭包”的三个早期提案之一,ARM块被添加到JDK7中。
2012年8月3日,Bloch在X平台上发文“在 Google 工作了8年后,现在是我继续前进的时候了”,表示他从Google 离职了。
图片

如今,Java如火如荼地发展着,Bloch也继续前进,不仅成为卡内基梅隆大学软件与社会系统系的兼职教授,一边做研究一边教授软件工程课程,同时,他还继续升级自己的经典之作,在Java程序员的求学之路上贡献自己的力量。
图片

出书《Effective Java》斩获Jolt图书大奖

能把一门语言钻研透的,是高手;写得出备受推崇的教程,是专家;既会研究又会写,还活跃在技术前沿,是大师!Bloch就是二者兼备的世界级大师
在Sun公司工作的那段时间, Bloch收获颇多。在他看来,能够在 Java 平台不断成熟的过程中主持这些类库的设计工作,这样的机会千载难逢。在这个过程中,关于 Java 语言,他学到了很多很多——哪些行得通,哪些行不通,以及怎样使用 Java 语言及其类库取得最好的效果。
于是,他想和读者分享自己的经验,使读者可以效仿他成功的地方,同时规避他犯过的错误。
而这本《Effective Java》便是他的一次尝试。他看过Scott Meyers的《Effective C++》,该书包含50个条目,每个条目讲解一条可以帮程序员改进程序和设计的特定规则。他觉得这种格式非常好,便借鉴到自己的书中,希望读者也能喜欢。
图片
自2001年《Effective Java》首版问世以来,这本书便以其卓越的内容和实用的编程建议,迅速在Java程序员中赢得了极高的声誉,成为业界公认的必读经典。
2001年出版第1版,2008年出版第2版,2018年出版第3版,本本都是豆瓣9.0+高分,20余年全球畅销不衰,日文版在日本也十分受欢迎。

图片

《Effective Java》不仅受到读者认可,还受到了众多同行专家和作者的称赞:
“这是一本很棒的书,里面塞满了关于使用Java编程语言和面向对象编程的好建议。”

——Gilad Bracha,《Java语言规范,第三版》的合著者

“对于有经验的开发人员来说,这是很好的操作方法资源。”

——John Zukowski,多本Java技术书籍的作者

“10/10——任何有志于写出优秀的Java代码的人都应该拥有这本书。这是一本罕见的书籍,其中的信息不会随着JDK库的后续版本而过时。”

——Peter Tran,JavaRanch.com开发者

“这是一本真正优秀的书,由设计了几个很好的Java平台API(包括 Collections API)的人完成。”

—— James Clark,XML工作组的技术主管

“很棒的内容。类似于Scott Meyers的Effective C++。 如果你了解Java的基础知识,那么这本书一定是你的下一本书。”

——Gary K. Evans,Evanetics公司导师兼顾问

“Josh Bloch对最佳实践提供了深刻的见解,而这些最佳实践只有经过多年的研究和经验才能真正发现。”

——Mark Mascolino,软件工程师

“这是一本极好的书。它清楚地涵盖了成为真正的Java大师所需的许多语言/平台的微妙之处和技巧。”

——Victor Wiewiorowski,ValueCommerce 公司开发和代码质量经理副总裁,日本东京

“我两周前拿起了这本书,可以肯定地说,我在三天的阅读中学到的知识比我在三个月的学习中学到的还要多!这是一本很棒的书,也是我Java库的一个受欢迎的补充。”

——Jane Griscti,I/T 咨询专家

图片

如果你曾读过这本书的前两版,你就能体会到Bloch在传授编程最佳实践和撰写清晰、可维护代码方面的精湛技艺。现在,全新升级的《Effective Java》第3版中文版已经推出,为Java开发者带来了更深层次的编程智慧。

第3版在前两个版本的基础上做了很大的改进:

· 内容分为 12 章,包含 90 个条目,形式简洁。每个条目都讲述了对 Java
的独到见解,阐明了如何编写高效、优雅的程序,并且提供了清晰、易懂的示例代码;

· 涵盖了从Java 5到Java 9的种种特性;

· 增加了 Lambda 表达式、流、Optional 类、接口默认方法、try-with-resources、 @SafeVarargs
注解、模块等Java 7/8/9中引入的新特性;

· 介绍了如何充分利用泛型、枚举、注解、自动装箱、for-each 循环、可变参数、并发机制等各种特性,帮助读者更加有效地使用 Java
编程语言及其基本类库(java.lang、java.util 和 java.io),以及子包(如 java.util.concurrent
和java.util.function 等)。

在这里插入图片描述

最后,小异想用Bloch的一句话“小即是美,但简单不等于容易”与大家共勉,希望大家继续在编程的道路上追求卓越。

购书推荐&特惠

在这里插入图片描述

《Effective Java中文版》

本书配套资源丰富,包含实战项目源码、视频教程、资源文件等,新版赠送了Java学习效率手册(电子版)。读者在阅读过程中结合使用这些资源,可以将知识融汇贯通,在工作中应用起来更加得心应手。

作者简介

约书亚.布洛克(Joshua Bloch)是美国卡内基-梅隆大学教授,曾是Google公司首席Java架构师、Sun公司杰出工程师和Transarc公司高级系统设计师。他带领团队设计和实现过无数的Java平台特性,包括JDK 5.0语言增强版和获奖的Java Collections Framework。他拥有哥伦比亚大学的计算机科学学士学位和卡内基-梅隆大学的计算机科学博士学位。他的作品还包括Java Puzzlers和《Java并发编程实战》(Java Concurrency in Practice,曾获Jolt大奖提名)等。

购书链接:点此进入


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/789392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MP4文件中h264的 SPS、PPS获取

MP4文件中h264的SPS、PPS获取 如下图所示,为avcC 1 【参考依据】ISO/IEC 14496-15 2 【综述】在H264中,SPS和PPS存在于NALU header中,而在MP4文件中,SPS和PPS存在于AVCDecoderConfigurationRecord, 首先要定位avcC. …

Ant Design Vue中的table与pagination的联合使用

效果&#xff1a; 代码&#xff1a; <a-table:dataSource"dataSource":columns"columns":pagination"pagination"change"handleTableChange":scroll"{ x: 100%, y: 600 }"> </a-table> export default defin…

kubernetes-Pod基于污点、容忍度、亲和性的多种调度策略(二)

Pod调度策略 一.污点-Taint二.容忍度-Tolerations三.Pod常见状态和重启策略1.Pod常见状态2.Pod的重启策略2.1测试Always重启策略2.2测试Never重启策略2.3测试OnFailure重启策略&#xff08;生产环境中常用&#xff09; 一.污点-Taint 在 Kubernetes 中&#xff0c;污点&#x…

Nginx在Kubernetes集群中的进阶应用

简介 在现代DevOps环境中&#xff0c;Nginx作为负载均衡器与Kubernetes的Ingress资源的结合&#xff0c;为应用程序提供了强大的路由和安全解决方案。本文将深入探讨如何利用Nginx的灵活性和功能&#xff0c;实现高效、安全的外部访问控制&#xff0c;以及如何配置Ingress以优…

【MySQL】数据类型(1)

数据类型1 一、整形数据二、位图类型三、浮点类型 一、整形数据 我们的MySQL&#xff0c;有很多的数据类型&#xff0c;其中&#xff0c;我们在建表时&#xff0c;肯定要用到相应的数据类型。 整形有 tinyint, samllint , mediumint, int, bigint。 我们第一眼看上去&#x…

数字化赋能农业:数字乡村促进农业现代化

随着信息技术的迅猛发展&#xff0c;数字化浪潮正以前所未有的速度席卷各行各业&#xff0c;农业领域也不例外。数字乡村战略作为推动农业现代化的重要手段&#xff0c;通过数字化技术的深度应用&#xff0c;为农业生产带来了革命性的变革。本文旨在探讨数字化如何赋能农业&…

算法学习17:背包问题(动态规划)

算法学习17&#xff1a;背包问题&#xff08;动态规划&#xff09; 文章目录 算法学习17&#xff1a;背包问题&#xff08;动态规划&#xff09;前言一、01背包问题&#xff1a;1.朴素版&#xff1a;&#xff08;二维&#xff09;2.优化版&#xff1a;&#xff08;一维&#xf…

c++对象指针

对象指针在使用之前必须先进行初始化。可以让它指向一个已定义的对象&#xff0c;也可以用new运算符动态建立堆对象。 定义对象指针的格式为&#xff1a; 类名 *对象指针 &对象; //或者 类名 *对象指针 new 类名(参数); 用对象指针访问对象数据成员的格式为&#xff1a…

B02、类的加载过程梳理-2

1、类的加载过程&#xff08;生命周期&#xff09; 1.1、过程一&#xff1a;装载&#xff08;Loading&#xff09;阶段 1、过程一都做了什么事&#xff1f; 类的装载&#xff0c;简而言之就是将Java类的字节码文件加载到机器内存中&#xff0c;并在内存中构建出Java类的原型&a…

Python字符串操作方法一览表

字符串操作 你患得患失太在意从前又太担心将来&#xff0c;有句话说的好昨天是段历史&#xff0c;明天是个谜团而今天是天赐的礼物 像珍惜礼物那样珍惜今天。—— 龟大仙《功夫熊猫3》 1.字符串连接 例子&#xff1a; str1 "Hello" str2 "World" resul…

在线点餐(源码+文档)

在线点餐系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端主页登录点餐注册个人资料我的 后台管理商品管理分类管理用户管理登录页订单管理分类管理 文件包含内容 1、搭建视频 2、流程图 3、开题报告 4、数据库 5、参考…

应用方案D78040场扫描电路,偏转电流可达1.7Ap-p,可用于中小型显示器

D78040是一款场扫描电路&#xff0c;偏转电流可达1.7Ap-p&#xff0c;可用于中小型显示器。 二 特 点 1、有内置泵电源 2、垂直输出电路 3、热保护电路 4、偏转电流可达1.7Ap-p 三 基本参数 四 应用电路图 1、应用线路 2、PIN5脚输出波形如下&#xff1a;

SON序列化解决方案

JSON&#xff08;JavaScript Object Notation&#xff09;是一种用于数据交换的轻量级数据格式。在我们日常Python编程中&#xff0c;通常可以使用内置的json模块来进行JSON序列化和反序列化。那么关于使用json模块进行JSON序列化和反序列化的问题解决方案&#xff0c;可以参考…

Matlab实验:离散时间信号与系统的时域分析

01.代码的主要内容 02.代码效果图 获取代码请关注MATLAB科研小白的个人公众号&#xff08;即文章下方二维码&#xff09;&#xff0c;并回复MATLAB课程设计&#xff1b;本公众号致力于解决找代码难&#xff0c;写代码怵。各位有什么急需的代码&#xff0c;欢迎后台留言~不定时更…

处理SAP报错:消息GLT2076 没有项目种类分配到科目 1481010102/1000

财务新建了个科目入账时报错&#xff1a;没有项目种类分配到科目。 查了下原因。原来是我们公司实施时启用了凭证分割功能。其中有个配置是这样的&#xff1a;给总账科目分类&#xff1a;IMG-财务会计&#xff08;新&#xff09;-总账会计核算-业务交易-凭证分解-为文档拆分给总…

20240322-1-协同过滤面试题

协同过滤面试题 1. 协同过滤推荐有哪些类型 基于用户(user-based)的协同过滤 基于用户(user-based)的协同过滤主要考虑的是用户和用户之间的相似度&#xff0c;只要找出相似用户喜欢的物品&#xff0c;并预测目标用户对对应物品的评分&#xff0c;就可以找到评分最高的若干个物…

IP代理池是什么?怎样判断IP池优劣?

许多做跨境电商的朋友们都会使用到IP代理池这个模块&#xff0c;那会有新想加入到跨境电商这个行业的朋友们会有疑问&#xff0c;IP代理池究竟是什么&#xff1f;今天为你解答。 IP代理池是一种集成多个代理IP的系统&#xff0c;其核心功能在于收集并维护大量的可用IP地址&…

什么是ECC?ECC 和 RSA 之间有何区别?

椭圆曲线密码学 (ECC) 是一种基于椭圆曲线数学的公开密钥加密算法。 它提供了一种执行密钥交换、数字签名和加密等加密操作的安全方式。 ECC 为 1977 年首次发布的 Rivest-Shamir-Adleman (RSA) 加密算法提供了一种替代性方案。 继续阅读&#xff0c;进一步了解椭圆曲线密码学…

采用大语言模型进行查询重写——Query Rewriting via Large Language Models

文章&#xff1a;Query Rewriting via Large Language Models&#xff0c;https://arxiv.org/abs/2403.09060 摘要 查询重写是在将查询传递给查询优化器之前处理编写不良的查询的最有效技术之一。 手动重写不可扩展&#xff0c;因为它容易出错并且需要深厚的专业知识。 类似地…

Monaco Editor系列(二)Hello World 初体验

前言&#xff1a;上一篇文章我主要分享了从 Monaco Editor 入口文件以及官方提供的示例项目入手&#xff0c;对一部分源码进行剖析&#xff0c;以及分享了初始化阶段代码的大致执行步骤&#xff0c;这一篇了来讲一下我们要用 Monaco Editor 的时候该怎么用。其中会涉及到一些 A…