Java三大版本
首先,新人在刚入行的时候,不论是抱着什么目的(当然最后是因为兴趣,因为兴趣是一个很强的推动力),我们要了解学习什么东西,或者说从什么东西学起----JAVA。作为一款高级程序设计语言,它的学习难度上面,至少我认为要比C语言简单许多,再加上如今市场对这方面的人才需求非常大,所以很多人将它作为了首选。目前来说JAVA的应用比较偏向于WEB的设计,也是我们很多学习JAVA的同志,日久就业的一个方向。
JAVA最大的特点:
Java的主要优势在于其做出的WORA:即一次编写(Write Once)、随处运行(Run Anywhere)。简单来讲,这意味着开发团队能够利用Java编写一款应用程序,并将其编译为可执行形式,而后将其运行在任何支持Java的平台之上。这显然能够极大提高编程工作的实际效率,这种优势来源于Java Virtual Machine(JAVA虚拟机的缩写),JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JAVA语言的一个非常重要的特点就是与平台的无关性,而使用Java虚拟机是实现这一特点的关键。
JAVA的三大版本:
- JAVA SE:它是JAVA的标准版,是整个JAVA的基础和核心,这是我们主要学习的一个部分,也是JAVAEE和JAVAME技术的基础,主要用于开发桌面应用程序。学会后可以做一些简单的桌面应用如:扫雷,连连看等。
- JAVA ME:它是JAVA的微缩版,主要应用于嵌入式开发,比如手机程序的开发。目前来说就业范围不是很广,在一些城市可能相对的不好找工作。
- JAVA EE:也叫JAVA的企业版,它提供了企业级应用开发的完整解决方案,比如开发网站,还有企业的一些应用系统,是JAVA技术应用最广泛的领域。主要还是偏向于WEB的开发,而JAVA EE的基础就是JAVA SE,所以我们在学习JAVA SE的时候,基础一定要打好,因为这是最基本的,也是最核心的。
Java SE:
经过这么多的介绍,相信大家已经很明白,如果学习JAVA的目的是为了就业,我们应该先学好JAVA SE,然后继续学习JAVA EE。精髓在于多思考,多练习,不要怕会出错,没有完美的程序,都是不断的在改进,不断的在完善,出错是好事,这样你可以了解更多的异常情况和突发情况,可以为日后工作中出现问题时及时解决积累足够的经验。
最后希望大家在学习程序开发的时候,要有一定勇于探索的精神,搞不懂的问题可以自己先思考(程序开发的核心也是在于不断思考),实在搞不懂可以在网上查询,也可以和大家讨论,但是不要太过于较真,毕竟学海无涯,你永远都学不完所有的东西,要劳逸结合,不要让自己过于疲惫,为了学习更多的东西牺牲健康,那是伟人才会做的事情,得不偿失。
JDK 和 JRE
我们回头看看我们JavaSE的图。
JDK
Java 2 SDK (Development Kit)包含:JRE的超集,包含编译器和调试器等用于程序开发的文件
JRE
Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序和Applet所必须文件
Java运行环境的三项主要功能:
- 加载代码:由class loader 完成;
- 校验代码:由bytecode verifier 完成;
- 执行代码:由 runtime interpreter完成。
区别和联系:
sdk(也就是jdk)是jre的超集,是在jre的基础上增加了编译器及其他一些开发工具。
jre就是java运行时环境,包括了jvm和其它一些java核心api,任何一台电脑,只有安装了jre才可以运行java程序.
如果只是要运行JAVA程序,只需要JRE就可以。 JRE通常非常小,也包含了JVM.
如果要开发JAVA程序,就需要安装JDK。
初识JVM
(JAVA Virtual Machine)
JVM是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行bytecodes字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。
JVM负责将java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。JAVA提供了另一种解释运行的方法JIT(just in time),可以一次解释完,再运行特定平台上的机器码,高级的JIT可以只能分析热点代码,并将这些代码转成本地机器码,并将结果缓存起来,下次直接从内存中调用,这样就大大提高了执行JAVA代码的效率。这样就实现了跨平台、可移植的功能。
- JVM是指在一台计算机上由软件或硬件模拟的计算机;它类似一个小巧而高效的CPU。
- byte-code代码是与平台无关的是虚拟机的机器指令。
- java字节代码运行的两种方式:**
一、方式interpreter(解释)
二、Just-in-time(即时编译):由代码生成器将字节代码转换成本机的机器代码,然后可以以较高速度执行。
JAVA的跨平台实现的核心是不同平台使用不同的虚拟机
不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
欲工善其事必先利其器,我们先把我们的环境搭建好,才能开始咋们的征程!
Java开发环境搭建
百度搜索JDK,找到下载地址,浏览Oracle的网站。
JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 选择版本(我们采用JDK8)
- 同意协议(流氓协议)
- 查看电脑的环境(64位,还是32位等等)
- 下载安装包
- 安装JDK ,JRE (改安装目录,注意规范,作为一个程序人,规范很重要。所以给电脑上环境单独分类最好,)
- 配置电脑的环境变量 :
- 我的电脑–>右键—>属性
- 环境变量–>添加 JAVA_HOME (JDK的安装地址:D:\Environment\java\jdk1.8.0_201)
- 配置path目录下新建:%JAVA_HOME%\bin ;%JAVA_HOME%\jre\bin
- 测试是否安装成功:
- 打开 cmd(命令行窗口)
- 输出 java –version 查看版本信息,是否成功输出!
- 安装vs code,或者一个好用的文本编辑器,最好不要用记事本,很不方便!
HelloWorld
环境安装好了,测试代码一定要写HelloWorld!代表你向这个世界的呐喊,仪式感很重要,就像你生活中和家人,朋友,妻子在节日中或者纪念日一定要做一些事情,这就是仪式感,所以各位来跟着我写!
- 我们先随便建立一个文件夹,放我们的代码
- 新建文件 Hello.java
- 编写我们的HelloWorld程序!
public class Hello{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
- 保存文件,打开命令行,利用javac编译!
javac Hello.java
# 如果没有报错,查看文件夹下是否有新的一个文件
# Hello.class
# 如果没有出现,恭喜!说明你遇到了你在学Java当中的第一个Bug
- java 执行!
java Hello
# 成功输出Hello,World!
- 如果出现错误,检查字母大小写是否有错误,或者是否标点符号错误,文件名错误等等,一定要确保成功输出,我们之后再来研究,它是怎么输出的!
编写 Java 程序时,应注意以下几点:
- 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
- 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
- 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
- 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
- 主方法入口:所有的 Java 程序由 public static void main(String []args) 方法开始执行。
JAVA程序运行机制
计算机的高级编程语言类型: 编译型 ,解释型. Java 语言是两种类型的结合;
【科普:编译型 ,解释型】
从字面上看,“编译”和“解释”的确都有“翻译”的意思,它们的区别则在于翻译的时机安排不大一样。
我们先看看编译型:有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler)。就类似于把一本中文书直接翻译成英文版进行出售。
现在再看看解释型:打个比方:假如你打算阅读一本外文书,而你不知道这门外语,那么你可以找一名翻译,给他足够的时间让他从头到尾把整本书翻译好,然后把书的母语版交给你阅读(编译型);或者,你也立刻让这名翻译辅助你阅读,让他一句一句给你翻译,如果你想往回看某个章节,他也得重新给你翻译。(解释型)
编译型与解释型,两者各有利弊。前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)、VB等基本都可视为编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python等等。
Java语言虽然比较接近解释型语言的特征,但在执行之前已经预先进行一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特点,又已经完成了对源代码的大部分预编译工作,所以执行起来比“纯解释型”程序要快许多。
总之,随着设计技术与硬件的不断发展,编译型与解释型两种方式的界限正在不断变得模糊。
第一步:编译
利用编译器(javac)将源程序编译成字节码à 字节码文件名:源文件名.class
第二部:运行
利用虚拟机(解释器,java)解释执行class字节码文件。
总结
- 我们了解了计算机的发展史
- 看到了Java帝国的诞生
- 了解了Java这门语言的特性
- 跟着历史看懂了Java的三大版本
- 安装了Java的开发环境
- 写了自己的第一个程序HelloWorld!
- 知道了编译型和解释型语言的区别
当然,我认为这些都不是最重要的,关键是,今天我们踏出了第一步,我看过这样一个故事:
一个原始人抬头仰望星空,宇宙发出了警告!人类问为什么,宇宙使者说:从他抬头仰望星空开始,整个人类的发展就不过是为了实现他的愿望而已!
所以,只要确定了方向,只要不停下脚步,我们终会抵达终点,实现自己的梦!