赞
踩
Java是什么:
○ Java 英文翻译为印尼爪哇岛,地名,因盛产咖啡而闻名,漫漫长夜、唯有咖啡陪伴程序员
○ 1991年诞生,叫做 Oak (橡树),1995年改名为 Java ,2000年前后,成为世界上最流行的编程语言,过去二十多年中蓬勃发展、孤独求败。
○ 语言:人与人交流沟通的表达方式
○ 计算机语言:人与计算机之间进行信息交流沟通的特殊语言
○ Java 编程语言的共同创始人之一,公认的Java之父
○ 1955年5月19日诞生于加拿大,1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位。
○ 毕业后到IBM工作,设计IBM第一代工作站 NeWS系统 ,但不受重视。后来转至Sun公司。1990年,与Patrick Naughton和Mike Sheridan等人合作开发"绿色计划"项目,期间开发了一套语言叫做 Oak ,后改名为 Java 。
Java 的历史要追溯到 1991 年,当时Sun 公司的詹姆斯·高斯林(James Gosling)及其团队要完成一个项目"Green",该项目需要设计一种小型的计算机语言,主要用于有线电视转换盒这类的消费设备。由于这类设备的处理能力和内存都非常有限,且不同厂商会选择不同的CPU,所以对编程语言有2个明确的要求:
Sun公司开发团队具有Unix的应用背景,所以以C++为基础语言开发出了这种语言,当时称之为 Oak(橡树) ,后来去注册名称时发现 Oak 这个名字已经被占用, 于是将其改名为 Java 。
Java语言 设计之初主要作为平台独立语言使用,可以嵌入到各种消费类电子设备(家用电器等)中,但市场反应不佳。但随着上个世纪90年代随着互联网的崛起, Java 逐渐成为重要的Web应用开发语言,在过去二十多年中Java蓬勃发展、孤独求败。
世界编程语言排名:
Java关键时间节点:
1.1991年4月,由 James Gosling 博士领导的 绿色计划Green 启动项目目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱等)上运行的程序架构该项目最终的产品是 Oak(橡树) ,即Java语言的前身
2. 1995年5月23日,Oak语言改名为Java,并且在SunWorld大会上正式发布Java 1.0版本
Java语言第一次提出了Write Once,Run Anywhere的口号
3. 1996年1月23日,JDK 1.0发布,Java语言有了 第一个正式版本 的运行环境
JDK 1.0提供了一个纯解释执行的Java虚拟机实现(Sun Classic VM)
JDK 1.0版本的代表技术包括:Java虚拟机、Applet、AWT等。
4. 1997年2月19日,Sun公司发布了JDK 1.1
Java技术的一些最基础的支撑点(如JDBC等)都是在JDK 1.1版本中发布的Java语法也有了一定的发展,如内部类和反射
5.1999年4月8日,JDK 1.1在此期间一共发布了1.1.0~1.1.8九个版本从1.1.4之后,每个JDK版本都有一个自己的名字(工程代号)例如:JDK 1.1.4 - Sparkler(宝石)、JDK 1.1.5 - Pumpkin(南瓜)
6. 1998年12月4日,JDK迎来了里程碑式的版本JDK1.2,代号Playground(竞技场)
Sun公司在这个版本中把Java技术体系拆分为3个方向:
7. 1999年4月27日, HotSpot虚拟机 发布
HotSpot最初由一家名为"Longview Technologies"的小公司开发,因为 HotSpot的优异表现,这家公司在1997年被Sun公司收购了
HotSpot虚拟机发布时是作为JDK 1.2的附加程序提供的,后来它成为了JDK1.3及之后所有版本的Sun JDK的默认虚拟机
8. 2004年9月30日, JDK1.5 发布,代号Tiger(老虎)
从JDK 1.2以来,Java在语法层面上的变换一直很小,而JDK1.5在Java语法易用性上做出了非常大的改进
例如,自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环
(foreach循环)等语法特性都是在JDK 1.5中加入的
9. 2006年12月11日,JDK 1.6发布,代号Mustang(野马)
在这个版本中,Sun终结了从JDK 1.2开始已经有8年历史的J2EE、J2SE、J2ME的命名方式 启用 Java SE 6、Java EE 6、Java ME 6 的命名方式。
10. 2006年11月13日,在JavaOne大会上,Sun公司宣布最终会将Java开源
2009年2月19日,工程代号为Dolphin(海豚)的JDK 1.7完成了其第一个程碑版本
2009年4月20日,Oracle公司宣布正式以74亿美元的价格收购Sun公司,Java商标从此正式归Oracle所有具体版本:
这么多的版本,知道三个就可以了:JDK8、JDK11、JDK17,其他了解即可。
JDK8是企业用的最多的版本,JDK11和JDK17是后续长期支持更新的版本。
1998年12月4日,Sun公司在发布的JDK1.2中,将Java技术体系拆分为3个方向(平台):
1.J2SE (Java 2 Platform, Standard Edition),面向桌面应用开发
○ J2SE是其他两个版本的基础
○ 我们学J2SE的目的不是为了做GUI桌面开发(计算器、打地鼠游戏等桌面应用)
○ 而是为今后要学习的J2EE进行必要的基础铺垫
2.J2ME (Java 2 Platform, Micro Edition),面向手机等移动终端开发机顶盒、移动电话和PDA之类的嵌入式消费电子设备开发,我们不用关心
3.J2EE (Java 2 Platform, Enterprise Edition),面向企业级开发
Java具体应用:
全球超过30亿台各样设备上的应用程序是用Java开发的,耳熟能详的有:
○ Adobe PDF 阅读器,Gui开发
○ Google、Facebook、Amazon、淘宝、百度、携程等Web网站
○ Tomcat、JBoss、WebLogic等Web服务器
抖音、淘宝、微信等手机APP,使用Android开发组件Android SDK(基于 Java)
○ ERP(企业资源规划)CRM(客户资源管理)等企业级应用,游戏后端,如英雄联盟、吃鸡
Java最大的特点就是 一次编译,随处运行
开发人员需要安装JDK,内部自带一个JRE(程序员用JDK完成开发后,用JRE测试运行)
实施人员(部署)可以安装独立的JRE,用于运行Java程序
到oracle官网中,注册账号并登录,然后到相应的页面中,即可下载。
oracle官网
Java相关:
JDK下载:
JDK历史版本
JDK8下载地址:https://www.oracle.com/java/technologies/javase/javase8-archi ve-downloads.html
API在线文档
JDK8在线文档:https://docs.oracle.com/javase/8/index.html
API说明文档下载
JDK8-API文档下载地址:https://www.oracle.com/java/technologies/javase-jdk8-
doc-downloads.html
1)Linux中安装JDK
把下载好的压缩包,直接解压并解归档即可。可以解压到当前目录下,也可以 解压到指定目录中:
2)Windows中安装JDK
直接双击安装包,一直next往下即可,默认安装位置:C:\Program Files\Java, 会在此目录中自动创建JDK的目录,并且目录的名字中携带JDK的版本号。
注意:安装过程中也会提醒是否安装一个外部的jre,装或者不装都可以。如
果安装的话其目录名字为jre1.8.0_74,如上图。
注意,JDK安装目录中,也自带了一个默认的内部的JRE,点击JDK目录后即
可看到此JRE的目录
注意,电脑中可以同时安装多个版本JDK,相互之间不影响,使用的时候,
环境变量中修改配置:指定具体版本即可。
需要配置三个环境变量:JAVA_HOME、PATH、CLASSPATH。其中PATH必须配置,另外两个建议配置。
1)Linux中环境变量配置
使用vi打开 .bashrc 文件进行配置
配置完成后,在命令窗口中输入命令 java -version 进行查看:
2)Windows系统配置
配置JAVA_HOME:
配置Path:
配置完成后,在cmd终端窗口中输入命令 java -version 进行查看:
这里以Windows中安装后的目录为例说明:
关于src.zip文件:
src.zip和rt.jar的关系:
我们平时所说的“java”,其实是一个综合的描述,它包含了一系列的很多东西。
java语言的优点:
创建文件, mkdir -p code/day01
如果是Windows,在桌面创建相应的文件夹即可。
Hello.java
思考:程序运行的入口,是可以随便写么,也就是随便写一个方法,JVM就能把它当做运行的起点么?
编译Hello.java中编写的代码:
javac Hello.java
运行Hello.class文件中,编译生成的字节码:
思考:JVM是怎么知道Hello这个类在哪个class文件中的?又是怎么知道这个class文件在什么地方的?
Hello这个类 不一定在Hello.java中,但是一定是在Hello.class中
总结:编译文件 javac 文件名.java
执行文件 java 文件名
1、标识符的命名
类名:首字母大写 eg:Teacher
变量名:首字母大写 eg:MathScore
常量名:均大写 eg:LENGTH
方法名:首单词小写后续单词首字母大写 eg:addSalary()
2、代码注释
单行注释 //
文档注释 /**
*
*/
JVM是java中最核心的一个东西,它在计算机的内存中,虚拟并提供了java代码可以在其中运行的基础环境
思考:java代码编译后,可以在不同的操作系统平台中运行的原因是什么?(跨平台)
在JDK7中对JVM规范所给出的内存管理结构如下:
JVM就是java代码和计算机之间的一个桥梁:
java代码中,开辟要使用的内存空间,使用new关键字即可完成。
使用完之后,对内存的释放,在JVM中,由垃圾回收器(Garbage Collection,GC)来完成。
不同类型的GC,在JVM中,会根据不同的算法,对不同的内存区域内标记为垃圾的空间,进行回收释放。在这个过程中,是不需要编程人员干预的,它自己会主动的完成。
在代码中,我们也可以调用JavaSE-API提供的方法,通知GC现在去进行垃圾回收的工作:
12 字节码验证
验证通过过,再确定哪些代码是解释执行的,哪些代码是JIT即时编译执行的:
class文件内容,需要让JVM进行解释,解释成计算机可以执行的代码。整体效果就是JVM解释一行代码就执行一行代码。所以如果java代码全是这样的运行方式的话,效率会稍低一些。
执行代码的另一种方式,JVM可以把java中的 热点代码 直接编译成计算机可以运行的代码,这样接下来再调用这个热点代码的时候,就可以直接使用编译好的代码让计算机直接运行,可以提高运行效率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。