Java漫谈2

本周我们的Java漫谈从一个段子说起。话说有一个老程序退休了,在家闲着没事便开始学习写毛笔字,焚香,研墨,铺纸。站在薄如蝉翼白似雪的宣纸面前,提笔闭目。只见那人生种种仿若电影般在眼前一幕幕飞速呈现,又飞速略去。这其中有欢笑,有悲伤,有失落,有成功。就在某一刻,他突然感觉身躯一阵触动,胸口一热,仿佛某句浓缩了这么多年经历的精萃之语要现世,随即便不再多想,提笔挥毫,一气呵成,洋洋洒洒地写下了一句——"Hello World"。

不知道你笑没笑,反正我第一次看到末尾的反转的时候是笑了。因为“Hello World”这个词,是最好的单词,也是最坏的单词。是希望的单词,也是失望的单词。是美梦的开始,也可能是噩梦地循环。总之,当踏入编程地那一刻起,就会有一个单词如影随行,好坏同舟,相爱相杀,共度美好编程岁月。

将输出字符串“Hello World”作为第一个示范程序,现在已经成为编程语言学习的传统。“Hello World”示范程序最早出现于1972年,由贝尔实验室成员布莱恩·柯林汉撰写的内部技术文件《"A Tutorial Introduction to the Language B" 》之中。不久同作者于1974年所撰写的《Programming in C: A Tutorial》,也延用这个示例;而布莱恩·柯林汉和丹尼斯·里奇以本文扩编改写的《C程序设计语言》也保留了这个示范程序,此后广泛流传。 ——摘自维基百科

为什么这个词会如此轻易的成为示范程序地起源呢,我倒是觉得有这么几个原因。

  • 首先,从输出条件来讲,输出一个字符串即能表明程序整体运行成功,又能通过输出字符串来判断逻辑结果的正误。
  • 其次,“Hello World”从字面意思上来说,一来简洁地传达了程序在逻辑上也执行成功的意思,二来,它用一种拟人的手法赋予了程序生命,让它运行成功之后,仿佛如婴儿第一次发声,向未知世界宣告“我来了”的意思。
  • 最后,事例程序写到这也是在告诉后续着,这个功能已经实现了,后面的功能就看你了,加油吧,不久你也能与这世界说hello的。

绕了一圈,我们再把话题转回来,在Java中,Hello World又是什么样子的呢?

这就是一个Java里面Hello World的一句常用到的输出语句,之所以说它常用,是在程序刚开始跑通的时候会使用它来输出提示,也会在程序报错的时候用它的变形模式来输出错误信息。

稍微多看这句话2-3遍,会发现这句话会有几个特征。

  • 首先,hello world只是这条显示语句的一个部分,它被双引号引用了。
  • 第二,对于输出“Hello world”这个事件,实现这个功能竟然只用了一条语句,并且这个语句末尾还用了一个分号。

对于第一点,字符被引号引用之后就会被输出,那么是不是我们可以做这样的推论,双引号内的字符最终会在控制台打印出来。比如将语句改为System.out.println("你好,中国");,那么在控制台输出的就会是你好,中国

对于第二点,它正好反映了编程的一个基本结构特征——代码以行为单位,以;结尾。每行的代码仅仅实现一个功能,可能是赋值,可能是计算,当要实现另一个功能的时候,就另起一行书写。这样一来,便于书写和阅读,并且在逻辑上简洁清晰。

这篇文章主要分享了我对hello world的理解,希望这能使你对程序和代码有个初步的印象,我们下回见。

原文发布于微信公众号 - 怀英的自我修炼(hydzwxl)

原文发表时间:2017-09-14

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-day05-超市收银系统案例题

Java基础-day05-超市收银系统案例题 案例描述 将超市购物小票案例中,键盘录入部分封装为方法。 将switch语句完成的三个分支代码逻辑封装为3个方法 ...

6044
来自专栏程序员的诗和远方

20181013_ARTS_week16

这题没好好审题,题目中说不能增加其它空间,以及要在原数组中改,没注意最后只要前 n 位是无重复的就可以了。

1003
来自专栏大数据文摘

业界 | 用Python做数据科学时容易忘记的八个要点!

虽然我们在StackOverflow或其他网站上查找答案是很正常的事情,但这样做确实比较花时间,也让人怀疑你是否完全理解了这门编程语言。

1220
来自专栏猿人谷

C++命名规则

如果想要有效的管理一个稍微复杂一点的体系,针对其中事物的一套统一、带层次结构、清晰明了的命名准则就是必不可少而且非常好用的工具。 活跃在生物学、化学、军队、监狱...

2276
来自专栏小樱的经验随笔

设计模式六大原则(5):迪米特法则

定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与...

3296
来自专栏程序员互动联盟

【答疑解惑】为什么这么多人不喜欢用goto?

有网友在群里面问了一个问题:goto语句如何使用?这个问题引发了一系列争论。如下: ? ? ? ? ? 上面的讨论总结下来就是两点,有人建议尽量不要使用got...

3335
来自专栏写代码的海盗

SEO是件贼有意思的事情 golang入坑系列

这两天迷上了SEO。真心看不起百度的竞价排名,但作为一个商业网站,赚钱是一件无可厚非的事情。只做活雷锋,没有大金主是做不长的。做完功课后,发现百度和google...

3135
来自专栏灯塔大数据

技术 | Python从零开始系列连载(二十六)

为了解答大家学习Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极学习转载~

832
来自专栏java一日一条

哪些因素影响Java调用的性能?

这得从一个小故事说起。我在一个Java核心库的邮件列表中提交了一个修改 ——重写了一些本是 final 的方法。一石激起千层浪,这一改动引发了几番讨论。而其中一...

1281
来自专栏即时通讯技术

字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8

原作者:阮一峰(ruanyifeng.com),现重新整理发布,感谢原作者的无私分享。

2302

扫码关注云+社区

领取腾讯云代金券