Java 编程精品课

JAVA 是 SUN 公司在 1995 年推出的一门高级编程语言。有很多应用程序和网站除非安装 Java,否则将无法运行,世界上每天都在创建更多的应用程序和网站。

Java 快速、安全且可靠。从笔记本电脑到数据中心,从游戏机到科学超级计算机,从手机到互联网,Java 无处不在!

 
从 1995 年到现在的 2021 年,Java 已经从版本 1 发展到了版本 17。Java 开发人员努力降低成本、缩短开发时间、推动了创新并改善了应用服务不断的发展和更新,

Java 平台目前已被超过 1,200 万开发人员使用,并在全球 560 亿台设备上运行,它也是众多开发人员的首选语言。

 

Java 的发展进程

Java 的诞生

20 世纪 90 年代,硬件领域出现了单片机式计算机系统,这种价格低廉的系统一出现就立即引起了自动控制领域人员的注意,因为使用它可以大幅度提升消费类电子产品(例如电视机顶盒、面包烤箱、移动电话等)的智能化进度。

Sun 公司为了抢占先机,在 1991 年成立了一个名为 “Green” 的项目小组,James Gosling、Patrick Naughton、Michael Sheridan 和其他几个同事们一起组成的工作小组在加利福尼亚州门洛帕克市沙丘路的一个小工作室里面开始研究开发新技术,专攻计算机语言在消费类电子产品上嵌入式应用。

由于 C++ 所具有的优势,该项目组的研究人员首先考虑采用 C++ 来编写程序。对于新语言的设计,Sun 公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对 C++ 进行了改造,去除了 C++ 上的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发出了一个名为 “Oak” 的面向对象语言。

1995 年,互联网的蓬勃发展给了 Oak 机会。由于 Oak 是按照嵌入式系统硬件平台体系结构所进行编写的,而且 Oak 也是一种精简的语言,所以程序非常小,非常适用于网络上传输。

Sun 公司首先推出了可以嵌入网页并且可以随同网页在网络上传输 Applet(一种将小程序嵌入到网页中进行执行的技术),并将 Oak 更名为 “Java”。从此一个即好听又好记、具有强大的生命力的编程语言 Java 便诞生了。

为什么 Oak 会改名为 “Java” 呢?原来是当时 Sun 公司在申请 Oak 商标时发现 Oak 已经被别家公司使用了,所以 James Gosling 决定通过市场部门,请来了一个命名顾问,召开命名征集会。在命名征集会上,大家提出了很多名字,比如 Silk(丝绸)、Lyric(抒情诗),Java 等,最后 “Java” 这个名字得到了大家一致的认可。

Java 其实是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用 Java 来命名或宣传,以彰显其咖啡的品质。后来 Java 语言中的许多库类名称,多与咖啡有关,如 JavaBeans(咖啡豆)、NetBeans(网络豆)以及 ObjectBeans(对象豆)等等。

Java 的发展

  • 1995 年 5 月 23 日,JAVA 语言诞生。
  • 1996 年,1997 分别推出 JDK1.0,JDK1.1 版 1999 年,JAVA 被分成 J2SE、J2EE、J2ME。
  • 2000 年,JDK1.4 发布。
  • 2004 年 9 月 30 日 18:00 PM,J2SE1.5 发布,成为 Java 语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5 更名为 Java SE 5.0。
  • 2005年,JAVA版本正式更名为JAVAEE、JAVASE、 JAVAME。
  • 2006 年 12 月,SUN 公司发布 JRE6.0。
  • 2009 年 04 月 20 日,Oracle 以 74 亿美元收购 Sun。取得 Java 的版权。
  • 2010 年 9 月,JDK7.0 已经发布。
  • 2011 年 7 月,Oracle 公司发布 Java7 的正式版。
  • 自此以后,Java 保持着半年一更新的速度持续进步,到 2021 年 9 月,Java 17 版本发布。

 

Java 语言的特点

1. 简单

Java 是个精简的系统,无需强大的硬件环境便可以很好地运行。

Java 看起来设计得很像 C++,但是为了使语言简单、容易又不失熟悉感,设计者们把 C++ 语言中一些容易出错的特征去掉了。如多重继承、运算符重载、指针和内存管理等,Java 语言具有自动垃圾收集和采用引用等特性还提供了丰富的类库,方便用户迅速掌握 Java。

2. 跨平台

作为一种网络语言,Java 编译器将 Java 源程序编译成一种与体系结构无关的中间文件格式。只要有 Java 运行系统的机器都能执行这种中间代码。从而使同一版本的应用程序可以运行在不同的平台上。

Java 完全不用修改任何源代码,也不用重新编译就可以直接移植到其他平台。这给程序的部署带来了很大的灵活性,节约开发和升级成本。但 Java 代码必须要经过 JVM 解释才能运行,使得 Java 运行的效率降低。

3. 面向对象

面向对象可以说是 Java 最基本的特性。Java 语言的设计完全是面向对象的,它不支持类似 C 语言那样的面向过程的程序设计技术。所有的 Java 程序和 applet 均是对象,Java 支持静态和动态风格的代码继承及重用。

4. 半编译半解释

源程序先编译成字节码,Java 解释器(运行系统)能直接对 Java 字节码进行解释执行。链接程序通常比编译程序所需资源少。

5. 分布式

Java 包括一个支持 HTTP 和 FTP 等基于 TCP/IP 协议的子库。因此,Java 应用程序可凭借 URL 打开并访问网络上的对象,就像访问本地文件一样简单方便。

Java 的分布性为实现在分布环境尤其是在互联网下实现动态内容提供了技术途径。

6. 安全

作为网络语言,安全是非常重要的。Java 的安全性可从两个方面得到保证。一方面,在 Java 语言里,象指针和释放内存等 C++ 功能被删除,避免了非法内存操作。另一方面,当 Java 用来创建浏览器时,语言功能和一类浏览器本身提供的功能结合起来,使它更安全。

7. 多线程

线程有时也称小进程,是一个大进程里分出来的小的独立运行的基本单位。Java 提供的多线程功能使得在一个程序里可同时执行多个小任务,即同时进行不同的操作或处理不同的事件。多线程带来的更大的好处是具有更好的网上交互性能和实时控制性能,尤其是实现多媒体功能。

8. 其他特点

  • Java 是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java 要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
  • Java 不支持指针,它消除重写存储和讹误数据的可能性。类似地,Java 自动的 “无用单元收集” 预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java 解释程序也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。
  • 异常处理是 Java 中使得程序更稳健的另一个特征。异常是某种类似于错误的异常条件出现的信号。使用 try / catch / finally 语句,程序员可以找到出错的处理代码,这就简化了出错处理和恢复的任务。

孩子学习Java的好处

1. Java 是世界排名第一的计算机编程语言,学会了 Java,就学会了一种语言和一种平台。

 
2. 在培养计算机编程技能方面,学习 Java 将帮助孩子在未来的职业生涯中获得明显优势。

3. 当孩子学习 Java 时,学到的不仅仅是一种语言。因为 Java 是一个技术平台,具有许多相互关联的功能,可以提供尖端的、紧缺的工作技能。

4. Oracle 公司鼓励孩子学编程,还赞助了 Code 4 Kids 活动。Code 4 Kids 是一个面向 10 到 16 岁年轻开发人员的首要学习活动。

5. Java 是美国高中计算机 AP 考试中计算机科学考试的考试科目。

6. 学习 Java 可以是一种职业技能,也可以是一种娱乐技能,或者两者兼而有之。从业余爱好项目到改变世界的计划,各个年龄段的学生都创造了惊人的成绩。在世界各地的孩子学习 Java 的过程中,他们创造了更多的可能。

举两个有趣的例子:

1. Jessikommand 来自法国,是一款基于 Java 的命令和控软件,为世界上最小的机器鱼 Jessiko 提供动力。可以对鱼进行编程,使其在水族馆中按图案游动,并随着游动改变颜色。


 

2. 来自加利福尼亚的一名高中生为县科学博览会开发了节水应用程序。

 
利用 Oracle 云平台和基础设施服务加快现代云开发。

计算机 AP 考试

AP课程指的是美国大学预修课程(Advanced Placement),是由美国大学理事会(The College Board)在高中阶段开设的具有大学水平的课程,主要适合计划在美国就读本科的高中生学习,在全世界范围内均可授课。

孩子高中的时候可以参加 AP 考试,提前完成该学科大学的学分,也能为自己的大学申请增加筹码和说服力。

美国高中的 AP 课程共有 38 门学科,分为 7 大类,分别为艺术类、英语类、历史与社会科学类、数学与计算机科学类、自然科学类、世界语言与文学类,以及顶石文凭项目类。

 
其中,计算机科学类考试分为两门:

1. AP 计算机 A,考试内容是 Java,应用型较强,由选择题和手写程序的简答题组成。

2. AP 计算机原理,是近几年新增加的一门考试,主要偏重于基本计算机理论。需要大量背知识点,相对计算机 A 来说,难度更大。

Java 的成功案例

1. Twitter

Twitter 是互联网上访问量最大的 10 大网站之一。未注册用户可以阅读推文,注册用户可以通过网络、短信或移动设备应用程序发布推文。Twitter 吸引人的部分原因在于其用户友好的功能。另外,话题标签、热门话题、关注、和转发都有助于它的易用性和受欢迎程度。

 
Twitter 的工程师承认,虽然该公司一直非常关心其服务质量,但面对如此爆炸性的增长,实现这一目标一直是一项挑战。

Twitter 软件工程高级总监 Robert Benson 说:

“多亏了 Java,性能是任何服务都可以提供给客户的最重要的产品之一 ,最终用户希望 Twitter 速度快,以便他们能够获得实时信息。可靠性和性能对我们来说是一个巨大的目标,这就是为什么我们的部分核心战略涉及迁移到 Java 虚拟机 “JVM” 运行时环境。Twitter 不再有以前的性能问题,这在很大程度上是由于我们转向了 JVM。”

2. 安全水服务

一款全 Java 移动应用程序记录了为东非肯尼亚偏远农村家庭提供安全清洁水的努力。为了解决东非共和国肯尼亚农村的这些关键水问题。

一年多以前,SWK 开始安装 Hydraid BioSand 滤水器。一款基于低技术、缓慢的砂滤工艺。到目前为止,已经安装了共 2,500 个过滤系统,估计一个家庭平均七口人,因此在短短一年左右的时间里,这个行动影响了差不多 17,000 条生命。

 
但这些过滤器不是免费的。为了向捐赠者记录这些装置,需要填写一份广泛的调查问卷,其中包括照片、GPS 坐标和接收方的签名。

 

SWK 使用了一个全 Java 的 “调查应用程序”,它运行在由 mFrontiers 专门为 SWK 开发的手持式 Android 平板电脑上,mFrontiers 是一家位于伊利诺伊州利伯蒂维尔的企业软件公司和 Oracle 合作伙伴。该应用程序为 mFrontiers 赢得了 2014 年 Oracle 可持续创新卓越奖。

3. Netflix

Netflix 管理会员并根据他们的喜好提供有针对性的内容使 Netflix 成为世界领先的互联网电视网络。

Netflix 会员只需按月付费,就可以随时随地在几乎任何连接互联网的屏幕上观看任意数量的电影和节目。他们可以播放、暂停和继续观看,无需广告或承诺。

Java 与生俱来的可扩展性在使 Netflix 能够将其服务扩展到 50 个国家/地区的超过 5,700 万会员方面发挥了关键作用。这些观众每月总共观看超过 10 亿小时的节目和电影,包括原创剧集、纪录片和故事片。

 
Netflix 交付工程总监 Andrew Glover 说:

“在我们的架构中运行的绝大多数服务都是建立在 Java 和 Java 虚拟机 “JVM” 之上的, Netflix 使用无状态架构,因此随着我们引入更多客户,我们能够相对轻松地启动更多实例。我们有数千个 Java 进程一直在运行。但随着我们的发展,我们不会面临巨大的基础设施挑战。我们还有很多基于 Java 的开源工具,这使得监控、升级和扩展我们的服务变得容易。”

Netflix 会员喜欢只需点击几下遥控器或鼠标即可浏览、选择和播放电影,但很少有人会停下来考虑提供内容的复杂硬件和软件基础设施。

每当您启动 Netflix 以排队观看 Caddyshack、Some Like it Hot、Breaking Bad 或任何其他电影或电视节目时,Netflix 首先执行一些核心 Java 服务来确定您是谁、您住在哪里、您是否支付了账单以及什么您正在使用的显示设备。然后,它的内容交付网络确定最近的缓存,从中流式传输您的内容,缓冲到当时您的连接的最佳音频和视频质量。

当客户启动 Netflix 时,系统会在后台启动大约十几个不同的流程来授权该人,确定他或她正在使用的设备,确保帐户是最新的,并查看他们最近的活动,这种编排是使用基于 Java 的开源工具 Eureka 完成的。

4. Price.com

对于在线旅游网站来说,前期的简单性掩盖了屏幕背后的复杂性。例如,在 priceline.com 上,一个简单的查询会引发一系列复杂的互动和与世界各地多家酒店、航空公司和其他预订系统的联系。

 
诺沃克北美分部的首席信息官 Michael Diliberto 说:

“我们通过多个分销平台与数以千计的供应商和附属公司合作,我们需要将我们的系统连接到适当的供应库存,这意味着直接连接到 Hertz、Avis、Alamo 等租车公司以及 Travelport 等大型全球分销系统 “GDS”,甚至是 Farelogix 等小型新 GDS ,获取最新的酒店、租车和飞机座位库存”。

在纽约市搜索酒店交易可以同时向供应商系统生成 500 个请求,乘以同时查询系统的数千名客户,很容易看出 priceline 业务的核心是其管理。

priceline.com 客户和供应商之间复杂连接矩阵的能力。使这些连接如此无缝地工作并使其几乎实时地看起来如此简单的秘诀就是Java。“对我们来说,Java 已成为一种生活方式,” Diliberto 说。“Java 使我们能够更有效和高效地连接世界各地的其他旅游资源。”

Priceline 首席信息官 Michael Diliberto(左)和工程副总裁 Amit Poddar 在前讨论项目状态

根据 Diliberto 的说法,Java 是后端库存搜索引擎的理想选择,因为它具有出色的连接性和多线程功能。

推荐理由

1. Java 是全球排名第一的编程语言。

Java 软件工程师市场需求大,选择 Java 就业机会更多,薪水也更高。

2. 从互联网到企业平台,Java 是应用最广泛的编程语言。

Java 语言常年霸占着三大重要市场,这也意味着 Java 拥有最广泛的就业市场:

  • 互联网和企业应用,这是 Java EE 的长期优势和市场地位。
  • 大数据平台,主要有 Hadoop、Spark、Flink 等,他们都是 Java 或 Scala(一种运行于 JVM 的编程语言)开发的。
  • Android 移动平台。

3. Java 有着良好的社区支持。

Oracle 拥有最大的社区和生态系统之一,为全球数百万成员提供支持。通过鼓励、资助和扩大社区参与,Java 平台保持现代和充满活力。

4. 学习编程语言帮助孩子学会一种思维模式,提高竞争力。

孩子如果是从 5,6 年级开始学习编程,可考虑从 Python 入手,然后在 8,9 年级学习 Java。如果是 8,9 年级开始,建议先学 Java,通过 AP CS A 后再自学 Python 也会很容易。

对计算机竞赛感兴趣的学生可在学完 Python 或 Java 后,先参加美国计算机联盟赛(ACSL),成绩出色者可转美国计算机奥赛(USACO)。

所有学生都可以在学完 Java 后在 9 年级学习 “AP 计算机 A”,以提高申请大学的竞争力。

Java 编程精品课

爱学推出 Java 编程精品课,由有多年软件开发和丰富 Java 实际应用经验的软件工程师授课,帮助初中和高中学生学习和掌握这门编程语言。

课程循序渐进的分为初级,中级,和高级班课程。每个级别分为 3 期课程,每期课程为 10 节课。每个级别配套有各类项目开发的辅助课程供学生们增加对新领域技术的学习和掌握。

爱学教师团队

课程设置为每周一节课,每节课 55 分钟,小班教学,每班仅限 4-6 个学生。每周会留作业或者开发项目,老师会对学生提交的作业进行点评。

报名链接:aixue.us/java

扫码进入报名链接

请大家在报名链接上点击选择班级查看目前的开课日期和时间。如果希望有不同的开课日期和时间,请扫码联系爱学客服提出,我们将竭力为您成班。

也欢迎联系客服咨询一对一以及一对二的专门辅导。

退费条款

  • 如果无法成班将全额退款
  • 第一节课开始之前可以全额退款
  • 第一节课结束后可以退课(扣除第一节课的费用),剩余课时费作为爱学积分退回账户;也可以安排换课
  • 第二节课之后就不能退课也不能再换课
  • 因学生原因导致缺课将提供录像,不能退费或者退积分

上课流程

爱学的线上课程通过 Zoom 举行,课堂作业通过 Google Classroom(北美用户)或者 ClassIn(亚洲地区用户)发布和提交。

在您通过爱学官网完成课程报名之后,爱学团队的客服将在开课前通过电子邮件为您发送 Google Classroom 邀请链接(北美用户),或者邀请您进入 ClassIn 课堂(亚洲地区用户)。Google Classroom / ClassIn 里将会看到授课老师发布的欢迎语,上课所需材料以及上课的 Zoom 链接。

每节课除了有授课老师,爱学课堂助理也会全程在课堂记录考勤和监控学生的上课情况。如果有学生迟到,不认真上课,不开启摄像头等等状况,爱学课堂助理都会及时干预并在必要的情况下通过电话,微信,短信等方式通知家长。

课程开始后,爱学客服会联系家长,跟进学生的上课情况,以便获取家长和学生的反馈意见。请家长们注意报名时候登记的联系方式正确。

——如果喜欢,快分享给你的朋友吧——

爱学是一家专注 K-12 教育的线上课程及教育资源团购平台。

欢迎您扫码加入北美年级教育群,和其他同年级学生父母们一起交流教育心得和分享经验。

扫码进入年级教育群

    发表评论

    爱学美国