专栏首页沉默王二从零单排:《Java编程思想》前言篇

从零单排:《Java编程思想》前言篇

最近在读胡适先生(毛主席的评价是——说实在话,新文化运动他是有功的,不能一笔抹杀,应当实事求是。到了二十一世纪,那时候,替他恢复名誉吧)的《胡适文选》;其中一篇《问题和主义》中有这样一句,“多研究些问题,少谈些主义”。对我而言,就是“多学习学习应该掌握的IT技术,别整天琢磨怎么‘知识变现’”。

最近一段时间,我一直在思考怎么“知识变现”,我也希望自己像那些成功打造了自己品牌的前辈们(比如安晓辉、鸿祥、纯洁的微笑)一样,通过在Chat上开设课程,或者在知乎上开设Live来挣些钱。但我忽略了一点,这些成功的前辈们,早已通过博客积攒了大量的粉丝群,他们被我们这些崇拜者尊称为“大神”,而我显然不够格。

于是,我想,不如静下心来,重新读一些经典的IT技术书。从哪一本开始呢?想了一想,还是《Java编程思想》吧!毕竟本书赢得了全球程序员的广泛赞誉,从Java的基础语法到最高级特性,本书都能指导我们轻松掌握。

记得上大学(2008年)那会,就花大价钱买了一本影印版的《Java编程思想》,但由于初学Java,自己又对编程缺乏耐心,那时候看这本书,多多少少有一种看天书的感觉。后来,去苏州参加工作时也带了过去,但仍然没有心思去细致读这本书。2014年回洛阳的时候将这本书送给了一位同事——物尽其用吧,跟着我是浪费青春啊。2016年,我又重新买了《Java编程思想》,我以为,这次我肯定会深入的了解它了。但事与愿违,看了几章后,它还是落寞的躺在书架上积灰了。现在,我重新捧起它来读,似乎有一种如释重负的感觉。

好了,这一篇文章,就从《Java编程思想》的“前言”篇开始吧。为什么要从“前言”开始呢?《略读指导举隅》一书中曾说过,“读一本书,最好能从前言、序言开始。如果是作者自己写的,那么,这里面浓缩了作者对于本书最精华的总结。”恰好,这篇“前言”就是作者Bruce Eckel(MindView公司总裁,总裁能写出这么细致的书,实在是厉害啊)自己写的。

前言里面,哪些是值得我们记住的呢?

第一,Java的核心目的是“为程序员减少复杂性”。用Sun(1995年开发了Java)的原话是:“我们关心的是,减少开发健壮代码所需的时间和困难”。尽管这个目标导致Java的运行效率偏慢,但与用C++开发相同的程序相比,Java只需要一半甚至更少的时间。作为程序员来说,这是我们最喜闻乐见的,不是吗?省下来的那一部分时间,还可以约女朋友去看场电影,对吧?况且,Java的版本一直在更新,性能也不断地被优化。

记得上大学那会,我们计算机网络专业只有两个班级,一个班级学Java,另外一个班级学C++(当时C++更受欢迎)。大学上完后,当初学C++的同学几乎都转了行(据他们说是C++的指针太飘忽不定了,难学难懂难掌握),而我们学Java的,至少还有十几个留在IT行业奋斗,现在的状况都还不错。这在一定程度上,也能够佐证“Java的确是在为程序员减少复杂性”。

第二,并发(现在称多线程)确实很难。因为就连作者都深陷“并发”的泥潭,但经过“数月的努力,还是走了出来”。所以,我们学习Java的人也没必要对并发丧失信心。

并发是什么呢?通常情况下,并发是指“系统能够同时并行处理很多请求”。大家都走过红绿灯路口,是吧?假如是单车道,那么一次就只能通过一辆车,后面的车依次通过,这个红绿灯路口就不支持并发;假如是两车道,那么一次就能通过两辆车,这个红绿灯路口就支持并发。

并发常用的一些指标有:

  • 响应时间(Response Time):系统对请求做出的响应时间。例如,一辆车通过红绿灯路口需要的时间为3秒,那么3秒就是响应时间。
  • 吞吐量(Throughput):单位时间内处理的请求数量。最明显的例子就是高速通道上的ETC和普通车道,显然ETC的吞吐量更大,因为不需要在进站的时候从窗口取卡,在出站的时候还卡缴费。
  • 并发用户数:同时承载正常使用系统功能的用户数量。例如,三车道一次可以通过三辆车,两车道一次可以通过两辆车。

那么,如何提升系统的并发能力呢?

1)提升单机硬件配置。比如说增加CPU核数(从2个到4个,从4个到8个),升级网卡到万兆,升级硬盘为SSD(固态硬盘,比普通硬盘读写更快、质量更轻、能耗更低、体积更小,但只有一个缺点就是更贵),扩充系统内存(从64G到128G);

2)改善单机架构配置。比如使用内存读写而不是每次都读写数据库;

3)增加服务器数量。单机性能总是有极限的,但服务器数量可以很庞大。

第三,章节没必要包含一个“足够大”的主题。就我个人而言,一天读十页书恰到好处,假如超出十页书,后面的读起来就会非常痛苦;就好像一篇文章,字数超过2000个,我读起来就很吃力;或者说,超出2000字的部分我会选择性忽略。

以上,就是我对《Java编程思想》前言篇的总结,希望这些文字对你在学习Java的道路上有所帮助。


沉默王二

程序猿/爱读书/爱写作

生活不止有苦逼的程序,还有爱和思想。

本文分享自微信公众号 - 沉默王二(cmower),作者:沉默王二

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • “备孕期”的Java程序员一定要学会抽象 | 《Java编程思想拆书》

    我相信,看到标题后的你一定很好奇,究竟什么样的Java程序员算是在“备孕期”呢?在我看来,“备孕期”主要指那些初入Java编程的新人,他们正下足功夫准备,以求在...

    沉默王二
  • Java 7 的那些“新”特性,你知道吗

    2009 年 4 月 20 日,Java 的亲生父亲 Sun 被养父 Oracle 以 74 亿美元收购,这在当时可是一件天大的事。有不少同学都担心 Java ...

    沉默王二
  • 漫话:如何给女朋友解释什么是 BIO、NIO 和 AIO?

    周末午后,在家里面进行电话面试,我问了面试者几个关于 IO 的问题,其中包括什么是 BIO、NIO 和 AIO?三者有什么区别?具体如何使用等问题,但是面试者回...

    沉默王二
  • 按照这个java技术路线学习,分分钟搞定面试官,进大厂不是梦

    怎么说呢,最近几年的时间里,对于java开发人员来说,都知道java生态诞生了很多东西.每半年更新一次版本,发布了很多的流行的框架,像Spring5,Sprin...

    叫我可儿呀
  • Java转行大数据可行吗?

    提到大数据,很多人会想到Java,提到Java,也会想到大数据,二者有什么关系呢?哪个发展更好?

    加米谷大数据
  • 面试官问我Java8~14的有哪些重要的新特性,我哭了~~~

    大家好,我是Guide哥!这篇文章来自读者的投稿,经过了两次较大的改动,两周的完善终于完成。Java 8新特性见这里:Java8新特性最佳指南 。

    Guide哥
  • 「JAVA」初识Java平台、以及Java的跨平台实现原理

    Java 是强静态类型的编程语言,是`Sun Microsystems`公司(简称sun,已于2009年被oracle收购)于1995年推出的高级程序设计语言;...

    老夫不正经
  • 速读原著-Java核心技术(一)

    1996 年 Java 第一次发布就引起了人们的极大兴趣。关注 Java 的人士不仅限于计算机出版界,还有诸如《纽约时报》《华盛顿邮报》《商业周刊》这样的主流媒...

    cwl_java
  • 速读原著-Java核心技术(关于Java的常见误解)

    cwl_java
  • 荐书在精不在多,推荐一份夯实Java基础的必备书单!

    每一年的年初都是买书学习热情高涨的时候,虽然不知道你们是让这些书吃灰还是真的会好好阅读,但是有一些书籍,我还是希望能够推荐给你们。

    黄小斜

扫码关注云+社区

领取腾讯云代金券