JAVA精灵 第一章 我的前世今生

2016-10-15  本文已影响0人  sandlk

作者有话说

大家好,很高兴能够与您通过这样一个渠道相会。先作个自我介绍,我叫“程半仙”,但我不姓程,也不是仙,之所以有这个名字,乃是因为自己是一个在技术上只有“半桶水”的“半路出家”的程序员。我目前从事的工作虽然离不开编程,但编程却并非我的主要工作。在大学期间,我曾经辅修过计算机专业,注意是“辅修”而不是“专修”,所学的东西自然跟专业人员不可同日而语,加之自己生性愚钝又不够勤奋,当然,还有一个很重要的原因,就是因为那些书本太过“专业”(你懂的),所以毕业以后基本上所有东西都已经还给了老师。出来工作以后,由于工作的需要,我重新开始学习编程,但由于自己基础差,学习之路比较艰辛,尤其是对于一些概念的理解,花费了我大量的时间。我一直想,为什么技术类书籍都要写得那么“技术”呢?我们不是一直在提倡以人为本吗?还有我们中国不是有个成语叫“天人合一”吗?难道学习技术就只能那么单调乏味?于是,我有了写书的想法,希望可以结合自身的学习经历,通过最为简单、最为通俗,甚至不用怎么思考就可以理解的方式来让那些没有什么基础但又充满学习欲望的朋友们可以踏上编程之路。我认为,学习编程的关键不在于你写了多少代码,而在于你是否理解代码本身,正是基于这个观点,我将通过编程语言自身的角度来编写这套丛书,在丛书当中,每一种编程语言都是一个小精灵,它会用讲故事的方式来向我们介绍一些重要概念。在阅读的时候请放松心态,因为这不是教科书,您只需要用读文学作品的态度来阅读即可,我将尽量以最为简单的方式来将相关问题表达清楚。这是我第一次尝试写书,由于自己技术“麻麻地”、文笔也“麻麻地”,书中可能有很多不足之处,欢迎大家批评指正。

我的前世今生

大家好,我是Java小精灵,我的名字跟爪哇岛的英文名字是一模一样的。其实,我最早的名字叫做Oak,不过由于名字已经被其他的精灵占用,所以我只能改名字了,而在这个过程,其实我也进行了一定的升级(当然,升级的方式并不是打怪)。据说,在给我取名字的时候,有一个特别口馋的家伙忽然想起了爪哇岛上曾经喝过的一种美味咖啡,于是就直接用Java作为了我的名字,我的符号也就变成了一杯热咖啡。其实,我自己对这个名字还是挺有意见的,一点创意都没有,你看人家C#(读C Sharp)念起来多酷啊。只叹我们编程世界并没有派出所,不然我早就去改名字了。而我的主人当中,名头最大的两位分别是Patrick Naughton和James Gosling(被称为Java之父)。

在众多的编程语言当中,我有很多自身的优点,例如面向对象、高性能、健壮、安全、多线程等等,但我认为自己最大的优点其实是“可移植性”,也常被人称作“一次编译,到处运行”,就是你只需写一次代码然后编译,就可以让我在任何机器里运行,不过有个前提,就是那台机器安装了“虚拟机”。你可以把虚拟机想象成是一个虚拟的操作系统,这是属于我的小世界,通过在Windows、Linux等平台上安装这个虚拟的操作系统,我就可以在里面自由翱翔了。不同的操作系统会对应不同版本的虚拟机,但是他们对我而言是没有太大差异的,都是同一个世界、同一片天空。这些虚拟机是我的公司(之前是SUN,后来被Oracle吃了)负责开发和提供的,所以你只需管好代码编写即可,当然,如果你技术够牛,也可以自己去开发一个。我的这个“可移植性”有什么好处呢?首先,它特别适合比较懒的家伙,避免重复劳动,例如,可能你们公司使用我编写了一个Web应用程序,现在是使用Windows Server做服务器,随着业务的发展,可能要换成性能更为稳定的Unix系统,那到时候只需将我拷贝过去就可以运行了,而无需重新开发。其实,这个例子还不足以表达我的光辉灿烂。你们中国有句古话,叫“三十年河东三十年河西”,就是说今天很火的东西,过了一段时间之后就可能没落,例如当年智能手机的霸主——Symbian系统,现在基本上已经进入历史博物馆了,所以,前瞻性是多么的重要。不过,对于我而言,我无需这样瞻前顾后,因为我的寿命是无限的。例如,你今天用我编写了一个在可以在Android系统运行的APP,然后过了几年之后,可能Android系统会被更为优秀的系统取代,到那时候,只要我的公司再写一个基于那个未来系统的虚拟机,那我就继续可以发光发热了,哥是不是很有魅力?这里提到的虚拟机概念,后面我还会为大家介绍,这里您只需要稍作了解便可。

Paste_Image.png

现在,我已经越来越受到人们的喜爱,我的身影已经遍布地球每个角落,并藏身于你的周围,例如电脑、电视、手机、路由器等等都可能找到我的身影。如今中国正在实施“互联网+”战略,随着这个战略的推进,我大展拳脚的机会将会越来越多,大家可以拭目以待。目前,我最为广泛的应用场景主要有几个:一是Web应用,目前很多网站,尤其是比较大型的网站以及对安全性要求较高的网站都会使用我来编写,例如建设银行网站、网易邮箱、中国移动网站、天涯社区等。其实,很多大型网站是可能会同时用到多种编程语言,例如PHP、C#等,毕竟每一种语言都有其特长,所以,请大家不要迷恋哥哦,要“选对的不选帅的”!二是手机应用,目前Android手机上的各种app,都是使用我来开发的。虽然手机上跟电脑上具体的运行机制会略有差别(例如Android系统的虚拟机叫Dalvik),不过只要你全面理解了我,那么进行Android开发并不会是难事。三是桌面应用,例如,程序猿们常用的一个开发工具eclipse本身就是用我来编写的,还有很多工程软件、设计软件等等,不过,由于我的运行需要依赖虚拟机,所以启动的时候会有点慢,因此,在小型的桌面应用方面我其实并没有太大优势,但这并不能掩盖哥的强大,我始终认为自己是下蛋公鸡,公鸡中的战斗机,欧耶~

[原创作品,未经授权请勿转载]

上一篇下一篇

猜你喜欢

热点阅读