“帮助“Java成长的世界级大师不简单!

文章目录

  • 初探编程:“天啊,真酷,程序真的能学习。”
  • 哺育Java成长,成为Java幕后英雄
  • 出书《Effective Java》斩获Jolt图书大奖

是谁?作品一出版就获得著名的Jolt图书大奖,每一版本豆瓣评分均超9.0!
连Java之父James Gosling都多次表白他的作品“我很希望我10年前就能拥有这本书。有人可能认为我不需要任何Java方面的书籍,但是我需要这本书”,还在 JavaOne 2001 上直呼“去买这本书吧!”。
他就是《Effective Java》的作者、前Google首席Java架构师、Java集合框架创办人、卡内基梅隆大学(CMU)软件研究所的兼职教授——Joshua Bloch!
在这里插入图片描述
如果你还不太了解这位美国著名程序员,让我们一同探索他的编程人生,领悟他的编程智慧……

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

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余年全球畅销不衰,日文版在日本也十分受欢迎。
在这里插入图片描述
如果你曾读过这本书的前两版,你就能体会到Bloch在传授编程最佳实践和撰写清晰、可维护代码方面的精湛技艺。现在,全新升级的《Effective Java》第3版中文版已经推出,为Java开发者带来了更深层次的编程智慧。


Effective Java中文版(原书第3版)》重磅上新,限价5折抢购!
在这里插入图片描述
本书配套资源丰富,包含实战项目源码、视频教程、资源文件等,新版赠送了Java学习效率手册(电子版)。读者在阅读过程中结合使用这些资源,可以将知识融汇贯通,在工作中应用起来更加得心应手。

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

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

相关文章

Windows虚拟主机如何创建数据库和导入数据库

看到有网友咨询想要知道Windows虚拟主机上如何使用数据库,由于是新手,对于主Plesk面板使用不是很了解,想要知道如何使用数据库,这边了解到他当前使用的是Hostease 的Windows 虚拟主机,首先,登录你的Plesk面板,这里有一…

如何保护IP地址?安全匿名上网的方法

当互联网成为每个家庭的重要组成部分后,IP地址就成了你的虚拟地址。您的请求从该地址开始,然后 Internet 将消息发送回该地址。那么,您担心您的地址被泄露吗? 对于安全意识高或者某些业务需求的用户,如果您正在寻找保护…

生存分析笔记

生存分析(英语:Survival analysis)是指根据试验或调查得到的数据对生物或人的生存时间进行分析和推断,研究生存时间和结局与众多影响因素间关系及其程度大小的方法,也称生存率分析或存活率分析,例如生物有机…

VIVADO固化程序步骤

VIVADO固化程序步骤 1烧录bit文件 1、正确的将FPGA专用下载器与调试板卡或者产品连接,检查无误后打开电源上电。注:严禁带电操作。 2、打开VIVADO18.3软件,如下所示: 3、点击Open Hardware Manager,界面如下所示: 4…

Python网络爬虫(三):Selenium--以携程酒店为例

1 Selenium简介 Selenium是一个用于网站应用程序自动化的工具,它可以直接运行在浏览器中,就像真正的用户在操作一样。它相当于一个机器人,可以模拟人类在浏览器上的一些行为,比如输入文本、点击、回车等。Selenium支持多种浏览器&…

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录 📚 前言 📑摘要 📑操作流程 📚 系统架构设计 📚 数据库设计 💬 管理员信息属性 💬 学生信息实体属性 💬 宿舍安排信息实体属性 💬 卫生检查信息实体属性 &…

SD-WAN国际网络专线:高效、合规且可靠的跨境连接解决方案

在数字化时代,企业对跨境网络连接的需求日益增长。SD-WAN技术作为一种新兴的解决方案,正逐渐成为构建跨境网络连接的首选。本文将探讨SD-WAN国际网络专线的发展现状、合规性要求以及选择时需要考虑的关键因素。 SD-WAN技术:跨境网络连接的新…

兔子洞里有什么?揭开BunnyLoader 3.0恶意软件的神秘面纱

本文将重点针对最新上线的恶意软件BunnyLoader 3.0进行详细介绍和深入分析,并探索BunnyLoader的基础架构和功能。BunnyLoader是一款一直在发展和进化的恶意软件,威胁行为者可以利用BunnyLoader窃取用户数据、凭证和加密货币,并向目标用户传递…

使用minikube安装使用单机版K8S(docker)

前置:作为一个开发,工作之余想玩一下k8s,但是搭建成本太高,所以就找到了minikube这个工具,快速搭建单机版k8s,下面是个人搭建流程,基于centos7,仅供参考。 1.下载kubectl&#xff0…

C++中的List容器用法详解

文章目录 C中的List容器用法详解List 的特点List 的重要接口用法介绍1.创建和初始化Listlist 2.插入元素push_backpush_forntinsert 删除元素pop_backpop_fontclearerase 遍历List迭代器遍历范围for遍历 排序Listsort 反转Listreverse 转移Listsplice 去重unique 合并merge 总结…

【JVM】如何定位、解决内存泄漏和溢出

目录 1.概述 2.堆溢出、内存泄定位及解决办法 2.1.示例代码 2.2.抓堆快照 2.3.分析堆快照 1.概述 常见的几种JVM内存溢出的场景如下: Java堆溢出: 错误信息: java.lang.OutOfMemoryError: Java heap space 原因:Java对象实例在运行时持…

这里有份百度Create大会超长剧透,请查收!

作者简介: 辭七七,目前大二,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f…