Java学习笔记(0)——了解Java

文 / 我没有三颗心脏

前言:

这里是一些关于写文的原因,目的和其他的有的没的,跟Java没有一点关系,如果是想要学习干货的童鞋可以直接跳过。

系列文章最开始的名字是:从零开始学习Java,一来是觉得太长了(改了之后也不短),另外一个一觉醒来觉得好像这个名字不能准确反映自己写文的目的,并且我发现要把一些概念解释得特别清楚给没有编程基础的人看,对我来说是很有难度的一件事情,所以决定把名字改了,笔记是可以改的,就像今天突然想起这一篇有些东西还需要添加就来改了,这也是我喜欢的并乐意做的事情,share。——17.9.18更新

写文的几个原因:

这学期笔者也开了Java的课,上的第一节课老师说:教材,你们花两个星期大概看一下就可以扔了。有些同学当笑话听了,有些同学不以为然,而我当真了,我真的把郑莉著的教材《Java语言程序设计》(第2版)“看了一遍”,还不到两个星期,当然其中有一些问题没有去深究,比如数据库还有线程的东西,因为老师说的后面一句话我也认真听了:可以申请不来上课。所以就着笔者c++微薄的基础拉完了一遍教材,很是粗糙,想要重新学习一下,这是一个原因。

昨晚看到简书上的一位博主:CleverFan。他写下的重新认识Java系列,很是受用,本来保持得很好的生物钟,也因为看到他的文章,硬是看到了接近2点,(在此推荐一下)也由此也产生了写文的冲动,这也是一个原因。

今天去看了一下关于Java方面比较权威的两本儿书,一本《Thinking in Java》、《Java核心技术 卷Ⅰ》,觉得写得特别棒,也产生了一些自己的想法,想要分享。

写文的目的:

首先需要说的是笔者是一名学渣渣。我也是正在学习,写文更多的目的是在于交流想法,分享学习成果,也是给自己增加一些积累。还有就是觉得有些教材讲得太生涩难懂,这一点也是我看CleverFan的博文想到的,希望自己能通过一些更加好玩的方式写出来。也希望文章有什么问题能够及时反馈给我。

关于更新:

因为个人性格的原因,我总是希望能把一件事情做得很好,所以如果有很久没有更新的情况,那就当我正在努力想怎么写文吧...hhh

我会尽可能快的更新文章,也尽可能用通俗易懂的方式说明,会把读者大大们当成是第一次接触Java去细致的讲解,也希望读者大大们能支持我的文章,关于后期维权的东西还没有去想,所以希望如果有转载的请注明一下原文出处谢谢。

正式开始之前

先问自己一个问题:Java是什么?如果你的答案仅仅是停留在:是一门编程语言的话,希望看完这篇文章的你,对Java有一个更加全面深入的了解。至少在学习一门语言之前,了解一下自己要学的是什么,对吧?

Java的简单描述

以下大内容部分提炼自Java核心技术 卷Ⅰ 。

Java最初的设计初衷是:

能够用于像有线电视转换盒一类处理能力和内存都很有限,并且CPU厂商各不相同的一些消费设备上。
然而时至今日在Java的开发者编写的白皮书中(这是Java设计者用来解释设计的初衷以及完成的情况的简短摘要),对Java的描述却是这样的:

来自官方网站

你不必全部都读一遍,笔者读来大体的感觉是:为使用者创造了一个更加容易,甚至是dead simple的面向对象的语言,并同时具有移植性好,安全,开发周期短等一系列优点,也为你在烦恼c/c++的复杂性的时候提供了一个新的选择。白皮书的描述更偏向于讲述这是一个更加简单友好的工具,Sun对Java的设计目标就是:微程序员减少复杂性。用他们的话说就是:我们关心的是,减少开发健壮代码所需的时间以及困难。

事实上,Java的成功也源于其类库能够让人们轻松地完成原本有一定难度的事情。例如:联网和多线程。尽管Java对于解决传统的单机程序设计问题非常有用,但同样重要的是,它解决了在万维网(WWW)上的程序设计问题(把超文本页面转换到屏幕上的浏览器)。在白皮书的最后提到了HotJava TM Browser,这是Java开发者使用Java开发的一款用来炫耀Java的强大之处的浏览器,HotJava浏览器具有的在执行网页中内嵌代码的能力在1995年的SunWorld大会上,引发了人们延续至今的对Java的狂热追逐。

Java的成功源自语言本身的一些特性,以及Sun公司的进一步研发和推广。白皮书中对于Java的11个关键术语进行了组织:

11个关键术语

关于这一段的描述,《Java核心技术 卷Ⅰ》有有趣简单的描述,感兴趣的可以去百度一下。然而笔者认为,事实上,这些特性现在浏览一遍,心里面知道就行了,没必要去深入,也没有什么用。事实上这一篇文章都是。

Java与其他语言的区别

  • Java是由c++发展而来的,因为最初开发Java的是Sun公司那一批拥有UNIX应用背景的人,Java更像是C++语法的一个“纯净”版本。这里没有头文件、指针运算(甚至指针语法,但并不代表取消了指针机制,这在后面会讲到)、结构、联合、操作符重载、虚基类等。然而,设计者并没有试图清除C++中所有不适当的特性。例如,switch语法的语法在Java中就没有改变。事实上,Java还有许多奇怪的语法,后面也会提到。
  • JavaScript和Java除了语法类似,名字类似 ,其他再无什么关系。JavaScript是一种在网页中使用的脚本语言,而Java则是一种强大的面向对象的语言,重点在对象和对象的接口上,而并非所使用的工具上。

面向对象设计是一种程序设计技术。用木匠打一个比方,一个“面向对象的”木匠始终关注的是所制作的椅子,第二位才是使用的工具;一个“非面向对象的”木匠首先考虑的是自己的工具。

关于Java applet

其实很简单,网页中运行的Java程序就是applet,只不过需要一些特别的语法来说明。网页中的嵌入的applet程序就如同在网页中嵌入了一副图片,不同的是,这幅图片能够对于用户的操作作出响应,改变外观、传递数据等。关于这方面可以做一些相关的了解,但笔者并不打算深入研究这方面的东西。

了解面向对象

所有的编程语言都提供抽象的机制。就像汇编语言是对于底层机器的轻微抽象。接着出现了所谓的“命令式”语言(如FORTRAN、BASIC、C等)都是对汇编语言的抽象。这些语言在汇编语言的基础上有了大幅的改进,但是它们所作的主要抽象仍要求在解决问题的时候要基于计算机的结构,而不是基于所要解决问题的结构来考虑。程序员必须建立起在机器模型和实际待解问题之间的模型的联系。而建立这种映射是费力的,这不是属于编程语言的固有的功能,这使得程序难以编写,并且维护代价高昂。

面向对象的方式通过向程序员提供表示问题空间中的元素的工具而更进一步。那么什么是面向对象呢?所谓对象,其实就是抽象化的数据本身。万物皆是对象,一只狗,一个人,一栋建筑,而这些对象拥有他们自己的一些行为,比如狗要吃饭,要跑,把这些称为属于狗的方法,然后把用一个叫做“类”的东西来打包(封装)好狗这个对象还有属于它的方法,也就是数据和功能。这就是面向对象,它的本质就是:程序可以通过添加新类型的对象使自身适用于某个特定的问题。仅此而已。

写在文章的最后:整篇文章读了好几遍,最开始本来是打算把整一段《Java核心技术 卷Ⅰ》关于Java简史的东西贴出来的,但发现好像用处并不会很大,只有增加篇幅的作用。文章的大部分内容来自于上文提到的两部经典教材,第一次写文,希望喜欢的多多支持,有什么不足也能及时提出,谢谢。


按照惯例黏一个尾巴:

欢迎转载,转载请注明出处!
简书ID:@我没有三颗心脏
github:wmyskxz
欢迎关注公众微信号:wmyskxz
分享自己的学习 & 学习资料 & 生活
想要交流的朋友也可以加qq群:3382693

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易...
    安安静静写代码阅读 1,083评论 0 8
  • Java 面试题 整理自牛客网 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟...
    GuaKin_Huang阅读 10,659评论 19 265
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,577评论 18 399
  • 初夏的早晨,太阳迫不及待的张开了笑脸,灿烂如新,耀目如火!我一如既往的漫步于浅夏微凉的初阳,过马路时,脚步飞...
    暮霭夕颜阅读 189评论 4 1
  • 现在安卓项目开发中,butterknife是比较常用的注解框架,从而简化了findViewById的重复使用,提高...
    smileNicky阅读 1,191评论 2 3