java语言说明
java是Sun Microsystems公司(现在已经被甲骨文公司收购)在1995年推出的
Java的三个体系
- Java SE(,Java2 Platform Standard Edition,标准版)完成桌面应用程序的开发,是其它两者的基础;
- JavaEE(,Java 2 Platform, Enterprise Edition,企业版)开发企业环境下的应用程序,主要针对web程序开发;
- Java ME(,Java 2 Platform Micro Edition,微型版)开发电子消费产品和嵌入式设备,如手机中的程序;
java Web开发是目前java应用最多的一个领域,人们常说的java开发,一般指的就是java Web开发
java语言的特性和优势
java语言是1995年由sun公司发布的。
Java的特性和优势:简单性、面向对象、可移植性(write once,run anywhere)、高性能、分布式、动态性、多线程、安全性、健壮性。
java语言的特点:简单性,面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性
java的执行模式:半编译,半解释。
java的运行机制
Java的运行机制,计算机高级编程语言类型有:编译型、解释型
Java语言是这两种类型的结合(半编译半解释)
- 利用编辑器编写Java源程序:主类名.java;
- 利用编译器(javac)将源程序编译成字节码文件:源文件名.class
- 再利用虚拟机(解释器,即java)解释执行
字节码是java虚拟机的指令代码
运行过程:载入、代码校验、解释执行。
Java运行环境的三项主要功能:加载代码:由class loader完成;代码校验:由bytecode verifier完成;执行代码:由runtime interpreter完成。
API
API全名:application programming interface API是应用程序编程接口
Java API
Java API就是sun公司提供给我们使用的类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。
我们可以通过查帮助文档来了解Java提供的API如何使用
我们常常用JDK来代指Java API
JDK
JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)软件开发包
,java的开发和运行环境,java的开发工具(编译器,调试器等)和jre。
JRE:
Java Runtime Environment,java程序的运行环境,java运行的所需的核心类库+JVM(java虚拟机)及运行Java应用程序和Applet所必须的文件。
环境变量设置
4.1、永久配置方法
- 打开我的电脑--属性--高级--环境变量 :
- 新建系统变量JAVA_HOME (目录Javajdk即jdk所在的目录)和CLASSPATH(.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%JAVA_HOME%librt.jar即当前目录及jar和tools.jar,rt.jar所在目录,%为引用地址所用)在Path 后追加(%JAVA_HOME%bin;%JAVA_HOME%jrebin;)
dt.jar是关于运行环境的类库,主要是swing的包
tools.jar是关于一些工具的类库
rt.jar包含了jdk的基础类库,(runTime)也就是你在java doc里面看到的所有的类的class文件
该包默认会被查找,也可以不在这里配。
编译和运行需要的都是toos.jar里面的类
分别是
sun.tools.java.*;
sun.tols.javac.*;
4.2、临时(动态)设置方法:
- set path=%path%;C:Program FilesJavajdkbin其他雷同,只对当前打开的dos窗口中起作用,关掉dos要重新配置
- javac -cp/-classpath 要搜索的jar位置或路径变量 java
- java -cp/-classpath 要搜索的jar位置或路径变量 HelloWorld
路径变量设置方法set TEST=d:testjava,这样dos中就可以用%TEST%代表该路径了。
4.3、说明
4.3.1、path环境变量:当我们运行一个exe可执行文件时,系统会首先在当前目录下找,如果没有去注册表找,如果还没有最后会去path环境变量配置的目录下去找
需要成功执行javac.exe和java.exe命令,就应该将这两个命令所在的目录追加到path环境变量当中
4.3.2、classpath环境变量:虚拟机在运行一个程序时,首先需要加载字节码文件。classpath中的路径是为了java程序在编译和运行的时候搜索类或接口而用的
1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
3):一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。
java程序在编译和运行的时候,不仅在classpath中搜索,系统还会在JRE的目录下找一个名为rt.jar的文件。而且是先搜索rt.jar后搜索classpath下的路径。
注意
安装版的jdk能够自动设置path路径,安装完后直接在命令行中javac -version
java -version 都可以显示出来,解压版的需要自己来配置jdk,
java虚拟机
Java(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,在计算机上通过软件模拟实现的,有想象中的处理器,堆栈,寄存器等,还有相应的指令系统。用于执行字节码文件
JVM具有非常严格的实现规范,大多数操作系统都可以安装JVM
字节码是虚拟机的机器码。
java分了5片内存。
1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。
栈:存储的都是局部变量 ( 方法中定义的变量,方法上的参数,语句中的变量 );
只要数据运算完成所在的区域结束,该数据就会被释放。
堆:所有对象的数据,静态数据,和数组的成员数据都存储在堆中
1:每一个实体都有内存首地址值。
2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。
3:垃圾回收机制。
java常用命令
javac:Java编译器,将Java源代码换成字节代
java:Java解释器,直接从类文件执行Java应用程序代码
jar:多用途的存档及压缩工具
常用命令举例:
javac -classpath libmysql-connector-java-5.1.22-bin.jar -sourcepath src -d buildclasses srccnorglsantcontrolHelloWorld.java
structuredbuildclasses>>> java -cp . cn.org.ls.ant.control.HelloWorld
注意:
1、如果包含其它包的文件,必须有 sourcepath
2、如果包含类似mysql.jar库,必须有 classpath,
可以-classpath lib*
3、使用java命令时,必须在包的根路径下(classes),
并且不可以使用,必须使用.
正确:Java cn.org.ls.ant.control.Hello
查看jar包编译版本
打开jar包内META-INF下的MANIFEST.MF文件可以看到
build-Jdk指的就是编译的jdk版本