Java编程新手学习指南(带学习经验)

  • 1 Java前世今生
    • 1.1 Java起源
    • 1.2 Java简史
    • 1.3 Java前景展望
  • 2 Java优良传统
  • 3 Java技术体系
  • 4 Java学习路线
  • 5 Java学习经验

Java语言是一门优秀的编程语言,它的优点是与平台无关,可以实现“一次编写,到处运行”。Java是一门面向对象的计算机语言,它简洁高效,具有高度的可移植性。下面介绍Java的由来及前景、优良传统、技术体系及学习路线和组后的经验之谈。

1 Java前世今生

1.1 Java起源

Java源自Sun公司的一个叫Green的项目,其原先的目的是为家用电子消费产品开发一个分布式代码系统,这样就可以将通信和控制信息发给电冰箱、电视机、烤面包机等家用电器,对它们进行控制和信息交流。最初Green项目的工程师们准备采用C++,但C++比较复杂,最后经过裁剪、优化和创新,1990年,由Sun公司的James Gosling(詹姆斯·高斯林)领导的小组基于C++开发了一种与平台无关的新语言Oak(Java的前身)。Oak的取名源于Gosling办公室外有一棵枝繁叶茂的橡树,这在硅谷是一种很常见的树。

1995年1月,Oak被改名为Java,这是因为Oak是一家显卡制造商已注册的商标。Oak若想发展壮大,法律层面上的改名势在必行。Java是印度尼西亚“爪哇(注:Java的音译)”岛的英文名称,该岛因盛产咖啡而闻名。这就是Java的官方商标是一杯浓郁的咖啡的原因。Sun随后开发了HotJava浏览器,得到了Sun公司时任首席执行官Scott McNealy的支持,触发了Java进军Internet。

1.2 Java简史

从Java的第一个版本诞生到现在已经有二十余年的时间,白驹过隙,沧海桑田,转眼已过了四分之一个世纪,我们看到JDK的版本已经发展到了JDK 13。这二十多年里诞生过无数与Java相关的产品、技术与标准。现在让我们走入时间隧道,从孕育Java语言的时代开始,再来回顾一下Java的发展轨迹和历史变迁。

1.3 Java前景展望

就目前而言,Java还在世界头号编程语言行列。然而,Java最终将会减弱。但是无意中的好处,也是Java真正意外的光彩之处在于它为自己的替代品创造了一条非常畅通的道路,即使Java本身已经达到了无法再发展的程度。未来所有的语言都应该从中学习:要么创建一个可以重构的文化(像Python和Ruby做的那样),要么就让竞争者茁壮成长。

我们从Java发展情况来看,随着Java每半年更新一次的节奏,新版本的Java中会出现越来越多其他语言里已有的优秀特性,相信博采众长的Java,还能继续保持现在的勃勃生机相当长时间。

2 Java优良传统

在各种讨论声中,有一些人认为C++是一种设计糟糕的语言。 我认为理解C++和Java语言的选择有助于了解更大的视角。

Java的设计者已经编写了颇有影响力的“白皮书”,用来解释设计的初衷以及完成的情况,并且发布了一个简短的摘要。这个摘要用下面11个关键术语进行组织:

(1)简单性 (2)面向对象 (3)网络技能(4)健壮性 (5)安全性 (6)体系结构中立(7)可移植性(8)解释型

(9)高性能 (10)多线程 (11)动态性

Java虽然更新迭代迅速,但Java一直保持着他优良的传统,这也是Java为何一直受大家喜爱的原因所在。

3 Java技术体系

我们可以把Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境,在不产生歧义的地方常以JDK来代指整个Java技术体。可以把Java类库API中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。如下图所示:

4 Java学习路线

Java学习的路线在整体上需遵循:初级阶段-中级阶段-高级阶段。不建议一开始就“越级”学习,需知“欲速则不达”。在这三个阶段各自内部的知识点,没有必然的先后次序,可根据自己的实际情况“有的放矢”地学习。不管处于哪个学习阶段,都要重视Java的实战练习。

“罗马不是一日建成的(Rome was not built in a day)”,编程高手也不是一日能成就的。《荀子·劝学篇》亦有云:“骐骥一跃,不能十步;驽马十驾,功在不舍。学习Java的途中没有捷径,需要进行不断地理论学习、反复地实战练习才能将代码运用灵活,就好像练习武功一样,只有重视基本功,并持之以恒,才能让自己的动作收放自如,招式炉火纯青。

5 Java学习经验

Java是一门面向对象编程(Object-oriented programming,简称OOP)语言,在学习的过程中一定要多从面向对象的角度去考虑问题。在初级入门阶段,要以实践为主,多动手,增强自己对Java代码的感性认识。感性认识积累多了,再配合书籍学好理论,这才能有高层次的理性认知。下面给出一些低级程序设计和编写代码的建议:

  1. 先让它工作,然后再让它变快。即使你确定一段代码非常重要并且它是你系统中的主要瓶颈,也要先尽可能简单的设计使系统首先运行。然后如果速度不够快,请对其进行分析。
  2. 创建类时,给类起个清晰的名字,就算不需要注释也能理解这个类。
  3. 优先选择 接口 而不是 抽象类。
  4. 遵循编码惯例。
  5. 请注意,相比于编写代码,代码被阅读的机会更多。清晰的设计可能产生易于理解的程序,但注释,详细解释,测试和示例是非常宝贵的,它们可以帮助你和你的所有后继者。如果不出意外,试图从JDK文档中找出有用信息的挫败感应该可以说服你。
  6. 无论使用何种编码风格,如果你的团队(甚至更好是公司)对其进行标准化,它就确实会产生重大影响。这意味着,如果不符合这个标准,那么每个人都认为修复别人的编码风格是公平的游戏。标准化的价值在于解析代码可以花费较少的脑力,因此可以更专注于代码的含义。
  7. 从设计的角度,寻找和分离那些因不变的事物而改变的事物。
  8. 不要通过子类扩展基本功能。如果一个接口元素对于类来说是必不可少的,则它应该在基类中,而不是在派生期间添加。如果要在继承期间添加方法,请考虑重新设计。
  9. 使用继承和覆盖方法来表达行为的差异,而不是使用字段来表示状态的变化。如果发现一个类使用了状态变量,并且有一些方法是基于这些变量切换行为的,那么请重新设计它,以表示子类和覆盖方法中的行为差异。一个极端的反例是继承不同的类来表示颜色,而不是使用“颜色”字段。
  10. 使类尽可能原子化。 为每个类提供一个明确的目的,它为其他类提供一致的服务。如果你的类或系统设计变得过于复杂,请将复杂类分解为更简单的类。

总之,成为一名程序员要做好重在动手,像打字一般的编写代码,因为这是你喜欢做的事情。努力成为百分之五的神话中的一员吧。

Java编程学习指南(带学习经验)相关推荐

  1. java编程学习方法_在线学习Java编程的最佳方法

    java编程学习方法 1.简介 Java是使用最广泛的编程语言之一. 根据Github的最新报告 ,Java被列为仅次于JavaScript的第二大最常用的编程语言. 掌握Java的人有很多话题. 好 ...

  2. 谷歌 Java 编程风格指南

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://hawstein.com/201 ...

  3. 深度解析Google Java 编程风格指南

    这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格. 与其它的编程风格指南一样,这里所讨论的不仅仅是 ...

  4. 编程英语单词2 Java编程常用单词-带音标

    1, abstract  ['æbstrækt, æb'strækt] n. 摘要:抽象:抽象的概念 adj. 抽象的:深奥的 vt. 摘要:提取:使--抽象化 vi. 做摘要:写梗概 2, bool ...

  5. python 学习指南_Python学习指南

    原标题:Python学习指南 <Python数据分析 第2版(影印版)> (美)韦斯·麦金尼/ISBN:9787564175191/东南大学出版社/定价:¥99 本书由Pythonpand ...

  6. 学习指南_学习指南语文—成于素养,归于方法

    语文 成于素养,归于方法 张可 语文,成于素养,归于方法.但在紧凑的复习过程中,很多同学出现了"每天学完其他科目就没时间学语文"的状况,也可能会产生"语文真的很难提升,我 ...

  7. Google Java编程风格指南中文版

    作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|C ...

  8. Google Java编程风格指南中文版(转)

    作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|C ...

  9. Google Java编程风格指南(献给那些没有良好编码习惯的程序员们)

    作者:Hawstein 出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|C ...

  10. Google Java编程风格指南

    Hawstein's Blog Home Archive Categories Sitemap About Su 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这 ...

最新文章

  1. 用svg实现一个环形进度条
  2. linux将mysql的错误连接数_Mysql学习笔记(十二) 并发参数调节
  3. 在Nginx上配置多个站点
  4. 【CEO赠书】《浪潮之巅》:计算机史上的人间词话
  5. CentOS 7安装Zabbix 3.4
  6. 数据资产管理:大数据时代的新风口
  7. 关于 exynos 4412 按键中断 异步通知
  8. PyQt5多线程刷新界面防假死
  9. linux添加swap分区【转】
  10. 三轴机械臂逆运动学解算(附代码)
  11. DataParallel使用
  12. 光时域反射仪 光通信工程TFN F7 OTDR 测试耗损必备
  13. 轻量级高并发物联网服务器接收程序源码(仅仅是接收硬件数据程序 ,没有web端
  14. 前端工程化之前端静态资源缓存优化和部署
  15. 正确划分音节——英语见字发音的秘诀
  16. cnpm : 无法加载文件 C:\Users\小印丶\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
  17. widows升级nodejs版本
  18. 大数卢卡斯求组合数板子
  19. 基于人工势场法的路径规划
  20. 【密码学篇】商用密码产品的密钥体系结构小结

热门文章

  1. 物联网15年,盘点国内崛起的智能产业
  2. 做了6年的Java,java简历包装项目经验
  3. 布线问题_分支限界法
  4. Windows注册表内容详解
  5. Sandwell模型和卫星测高反演海底地形
  6. Redis安装基本步骤
  7. 过采样:SMOTE算法
  8. 计算机应用技术三级学科,三个计算机专业的区别是什么?
  9. 模板函数与模板参数自动推导
  10. 进入Mysql数据库操作