狂神说JAVA 入门
JAVA帝国的诞生
JAVA的初生
-
1972年C语言诞生 好处:贴近硬件,运行极快,效率极高。
应用:操作系统、编译器、数据库、网络系统等。
坏处:指针和内存管理 (不好掌握容易犯错修改麻烦)
-
1982年C++诞生
好处:相比C语言添加了面向对象,并且兼容C。
应用:图形领域、游戏等。
坏处:比C语言更加复杂
-
为反抗C语言的“暴政”,一些程序员们想要建立一个新的语言,这个语言应具有以下特点: 语法有点像C 没有指针 没有内存管理 真正的可移植性,编写一次,到处运行。 面向对象 类型安全 高质量类库 等
-
1995年JAVA诞生
1995年的页面简单而粗糙,缺乏互动性,为证明JAVA的能力,用JAVA开发了图形界面程序(Applet)。
Bill Gates说:这是迄今为止设计的最好的语言!
Java 2 标准版(J2ME):去占领桌面 失败 Java 2 移动版(J2ME):去占领手机 失败 Java 2 企业版(J2EE):去占领服务器 成功
-
大量巨头加入
JAVA的发展
第一位授权Java(J2EE)的公司:BEA公司
三高:高可用、高性能、高并发
这些巨头们基于Java开发了巨多平台、系统、工具
-
构建工具:Ant,Maven,Jekins
-
应用服务器:Tomcat, Jetty,Jboss, Websphere, weblogic
-
Web开发:Struts,Spring,Hibernate, myBatis
-
开发工具:Eclipse, Netbean,intellij idea, Jbuilder
-
2006年:Hadoop (大数据领域)
-
2008年: Android (手机端)
JAVA的特性和优势
Java是面向对象的,拥有有简单性、可移植性(跨平台性)、动态性、安全性和健壮性,具有高性能、分布式、多线程的特点。
JAVA三大版本
Write Once、Run Anywhere(一次编写,到处运行)
-
JavaSE:标准版(桌面程序、控制台开发等)
-
JavaME :嵌入式开发(手机、小家电等)知道就行
-
JavaEE:E企业级开发(web端,服务器开发等)
JDK JRE JVM
-
JDK:Java Development Kit (Java 开发者工具)。它包括了 jre、jvm 和一些工具,jdk是整个 Java 开发的核心。
-
JRE:Java Runtime Environment(Java 运行时环境)。jre包括了Java虚拟机(jvm)以及一些标准的类别函数库。
-
JVM:JAVA Virtual Machine (Java虚拟机)。可以用软件也可以用硬件来实现,jvm 是 Java 能够跨平台的核心,实现一次编写,多处运行。
-
JDK、JRE、JVM区别与联系
来源 关系:一层层的包含关系。JDK>JRE>JVM 在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM+Lib=JRE。总体来说就是,我们利用JDK(调用JAVA API)开发了JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。 区别: JDK和JRE一个是开发环境,一个是运行环境。在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。 JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。
Java开发环境搭建
安装JDK
安装notepad
HelloWorld及简单语法规则
1.随便新建一个文件夹,存放代码。
2.新建一个Java文件
-
Hello.java为文件名
注意:系统可能没有显示文件后缀名
3.编写代码(注意拼写和大小写不要错,Java大小写敏感;尽量使用英文,中文可能识别不了;文件名和类名必须保持一致,并且首字母大写;符号不能使用中文的。)
public class Hello{
public static void main (String[] args){
System.out.print("Hello,World!");
}
}
4.编译javac Java文件
打开编写代码文件所在的文件夹在路径最前端打上cmd保证命令指令符打开的是这个地址,在后面打上javac Hello.java就行了,成功所在文件夹会生成一个class文件
(报错命令不存在就说明你没有配置好环境变量)
5.运行class文件
在cmd中输入java Hello即可运行
这时候下面会出现Hello World!
Java程序运行机制
计算机高级编程语言类型分为两种编译型和解释型,而Java既有编译型特点也有解释型特点。计算机是无法理解高级编程语言的所以我们必须将其编译为机器码才能运行。
编译型语言:在程序执行之前进行编译把程序编译成机器码
解释型语言:在程序运行时进行编译,相当于边运行边编译
前者因为只需编译一次并在运行前编译所以运行速度快,代码效率高,又因为编译后的程序不可修改所以保密性较好,但它的可移植性较差,一般无法移植到其他平台。
后者每次运行都要编译一次,所以运行速度慢,占用资源也要多一些所以代码效率低,相对的可移植性较好,只要有解释器解释环境就可以在不同的操作系统上运行,代码修改后就可运行,不需要编译过程。
编译型语言执行速度快,因此很适合对运行速度要求较高对系统要求较低的程序开发,如:操作系统、大型应用程序、数据库系统;
编译语言:C/C++、Pascal/Object Pascal(Delphi)等。
解释型语言兼容性较高,因此很适合对速度要求不高、对不同系统平台间的兼容性有一定要求的程序开发,如:一些网页脚本、服务器脚本及辅助开发;
解释语言:Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB等。
为什么说Java具有解释型和编译型的特点
JAVA语言是一种编译型-解释型语言,同时具备编译特性和解释特性(其实,确切的说java就是解释型语言,其所谓的编译过程只是将.java文件编程成平台无关的字节码.class文件,并不是向C一样编译成可执行的机器语言,在此请读者注意Java中所谓的“编译”和传统的“编译”的区别)。作为编译型语言,JAVA程序要被统一编译成字节码文件——文件后缀是class。此种文件在java中又称为类文件。java类文件不能再计算机上直接执行,它需要被java虚拟机翻译成本地的机器码后才能执行,而java虚拟机的翻译过程则是解释性的。java字节码文件首先被加载到计算机内存中,然后读出一条指令,翻译一条指令,执行一条指令,该过程被称为java语言的解释执行,是由java虚拟机完成的。而在现实中,java开发工具JDK提供了两个很重要的命令来完成上面的编译和解释(翻译)过程。两个命令分别是java.exe和javac.exe,前者加载java类文件,并逐步对字节码文件进行编译,而另一个命令则对应了编译后生成的类文件(javac.exe)过程。在次序上,java语言是要先进行编译的过程,接着解释执行。
Java和其他的语言不太一样。因为java针对不同的平台有不同的JVM,实现了跨平台。所以Java语言有一次编译到处运行的说法。
1.你可以说它是编译型的:因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。
2.你可以说它是解释型的:因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
3.但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。
IDEA安装
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/java/288657.html