【初识Java】

Java历史

Java语言的诞生

大概是1995年左右,Sun公司的詹姆斯·高斯林(James Gosling )带领团队开发Java语言。

一般来说詹姆斯·高斯林是公认的Java之父

Java在最开始名字叫做Oak(橡树),但是Oak作为商标已经被注册了,于是采用了Java这个名字

Java在英文中的原意是印度尼西亚的爪哇岛(Jawa),以盛产咖啡而闻名

Java的诞生可以说是应运而生,随着互联网的浪潮而兴起。它沿袭了C/C++的很多语法和概念,但是又简化、优化了很多地方。于是Java很快,在2000年左右就成为了最主流的编程语言,直至今天


Java语言的发展历程

1995年5月,在SunWorld大会上,宣布发布Java 1.0版本,并首次提出了著名的“Write Once,Run Anywhere”

1996年1月,JDK 1.0发布,Java语言有了第一个正式版本的运行环境,代表技术为:Java虚拟机(JVM)

1996年5月,Sun公司在旧金山召开了首届JavaOne大会,JavaOne是全世界Java程序员一年一度的交流盛会

1997年2月,JDK 1.1发布,Java语法有了一定的发展,代表语法是内部类,反射,JDBC等

1998年12月,Java迎来了革命性的1.2版本,Sun公司将Java技术体系拆分为了三个方向:

  • 面向桌面应用开发的 J2SE(Java 2 Platform,Standard Edition)

  • 面向企业级开发的 J2EE(Java 2 Platform,Enterprise Edition)

  • 面向手机等移动终端开发的 J2ME(Java 2 Platform,Micro Edition)

J2SE 1.2的代表技术是集合(Collection)体系

2000年5月,J2SE 1.3版本发布,主要改进是升级了Java虚拟机,极大提升了Java执行效率

2002年2月,J2SE 1.4版本发布,1.4版本是Java真正走向商业成熟的一个版本

  • 直到现在,仍然有些项目可以运行在1.4版本上

  • 1.4的代表技术是异常,正则表达式,日志机制等

2002年同年,微软(Microsoft)公司发布了Java的竞品语言C#以及.net平台,极大的影响了Java的发展

2004年9月,J2SE 5.0版本发布,Sun公司摒弃了以往1.X的命名规则,主要原因是:

  • “1.5版本的改进是如此的大,以至于我们想用5.0称呼它”

  • 微软的.net平台发布没多久,就从1.0直升到了2.0,Sun公司认为1.X命名方式过于保守

1.5版本的代表技术是泛型,自动装箱,注解,枚举,可变参数,增强for等

2006年11月,Sun公司由于经营不善,濒临倒闭,于当年的JavaOne大会上宣布开源Java

2006年12月,Java SE 6 发布。这一次Sun公司删除了版本号中的“.0”,重新命名Java技术体系的三个方向:

  • 面向桌面应用开发的 Java SE(Java Standard Edition)

  • 面向企业级开发的 Java EE(Java Enterprise Edition)

  • 面向手机等移动终端开发的 Java ME(Java Micro Edition)

Java 6是Sun公司发布的最后一个Java版本,主要改进是提供了脚本支持,优化了性能

2009年4月,甲骨文(Oracle)公司收购Sun公司,一度辉煌市值超千亿美元的Sun公司湮灭在历史的尘埃中

  • 吴军博士的《浪潮之巅》

2011年7月,Oracle公司发布Java SE 7,这是Oracle公司发布的第一个Java版本,是一个过渡版本

  • JDK版本分为过渡版本和长期版本

    • 过渡版本主要作用是为了让开发者预览新特性,官方不会长期支持修复bug,不稳定

    • 长期版本为官方长期关注,并修理bug的版本,稳定

2014年3月,Java SE 8发布,这是Oracle公司发布的第一个Java长期版本,为目前主流商用Java版本

2017年9月,Java SE 9发布,是一个过渡性版本

2018年3月,Java SE 10发布,是一个过渡版本

2018年9月,Java SE 11发布,这是Oracle公司发布的第二个Java长期版本

2019年3月,Java SE 12发布,过渡版本

2019年9月,Java SE 13发布,过渡版本

2020年3月,Java SE 14发布,过渡版本

2020年9月,Java SE 15发布,过渡版本

....

Java主要用途

  1. Web应用

    • Web应用,说简单点就是通过浏览器(广义)访问的应用,是当前Java最主流的用途

  2. Android开发

    • 安卓开发已经逐渐式微,越来越少人使用Java开发Android

    • H5技术

  3. 桌面应用开发

    • 桌面应用,简单来说,只需要单机就能使用的应用,就是桌面应用

    • 普遍来说,桌面应用开发是C/C++的天下

    • 但是某些特殊情况下,仍然需要使用Java开发桌面应用

JDK和JRE

JRE(Java Runtime Environment):Java运行时环境

  • JRE包括Java虚拟机、运行时核心类库等Java程序运行时必备的环境

  • JRE主要是给已经编写好的Java程序使用,也就是说操作系统中想要运行Java程序,必须要有JRE

JDK(Java Development Kit):Java开发者工具包

  • JDK包含JRE

  • 除了JRE外,JDK还提供了Java开发者需要使用的工具,比如javac.exe,java.exe(Windows)

Java程序的运行原理

以Windows操作系统为例

 Java语言的跨平台性

Write Once,Run Anywhere

Java语言最引以为傲,最显著的特性就是Java的跨平台性

  • Java的跨平台性是指Java语言编写的应用程序可以在不同的系统平台上运行

Java实现跨平台性依赖于Java虚拟机(Java Virtual Machine,简称JVM)

  • Java程序并不是直接执行在操作系统上的,而是执行在Java虚拟机中

  • 每个操作系统平台都有自己独有的Java虚拟机

Java可以跨平台吗?JVM可以跨平台吗?

Java语言的编译型和解释型

Java语言是解释型语言?Java语言是编译型语言?

编译执行:通过编译器将源代码编译为机器码(机器能识别的代码指令),然后机器直接执行

解释执行:指由解释器直接执行,不需要编译成机器语言

拿做饭来比喻,源代码就像食材:

  • 解释执行像吃火锅,一边煮一边吃,煮菜的人相当于解释器的地位(源代码一边解释,一边执行)

  • 编译执行像炒菜吃,先把菜炒好再吃,炒菜的人相当于编译器的地位(源代码一次性编译,直接执行)

食材完全可以做火锅吃,也可以做菜吃,无论怎么吃都只是吃的一种方式罢了

同样的,无论解释执行还是编译执行,其实只是源代码的一种执行方式而已

回到我们的问题本身:

说Java是解释型语言,或编译型语言其实都是很荒谬的

  • 这就像说萝卜必须做火锅吃,不能炒菜吃一样

正确的说法是Java某种特定实现是解释型的或者是编译型的

  • 拿Java来说,编译得到.class文件的步骤无法忽视,某些JVM内部实现也不是解释执行的,而是编译

  • C语言是很多人根深蒂固的编译型语言,但实际上C语言也有它的解释器实现

所以,所谓的编译型和解释型并不是语言的特性,而是语言实现的特性

启示:

  • 不要执拗于概念

  • 很多概念随着时间和技术的发展,会变得不适用

  • 学习技术要多思考,不要人云亦云

Java开发工具

开发Java可以使用的工具很多

记事本类:

Notepad(微软记事本)

Notepad++(弃用)

   Sublime Text(主流)

集成开发环境(IDE):

Eclipse(开源免费,有些公司会使用)

MyEclipse(收费,曾经很火)

   IDEA(收费,但是可以科学使用,目前最火热的)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值