一、Java语言特点
1.简单易学:Java的语法与C,C++很接近。
2.面向对象(封装,继承,多态)
3.可移植性(Java虚拟机实现平台无关性):即跨平台性,所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。(跨平台性原理:Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序)。
4.支持多线程:多线程机制使应用程序在同一时间并行执行多项任务。
5.健壮性:Java语言的强类型机制、异常处理、垃圾的自动收集等。
6.安全性
ps:
Java和C++对比:
1.都是面向对象的语言,都支持封装、继承和多态
2.Java不提供指针来直接访问内存,程序内存更加安全
3.Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口可以多继承。
4.Java有自动内存管理机制,不需要程序员手动释放无用内存
二、JDK、JRE、JVM?
jdk:Java开发工具包
其中包含了Java的开发工具,也包括了JRE。其中的开发工具:编译工具(javac.exe),打包工具(jar.exe)等
jre:Java运行环境
包括Java虚拟机和Java程序所需的核心类库等。
jvm:Java虚拟机
Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。
三者关系:
三、JDK目录
(1) bin文件夹:存放jdk附带的实用工具 (javac.exe,java.exe等)
bin (binary)其中文意思即是:二进制
(2) lib文件夹:类库
Java开发工具使用的归档文件,其中包含tools.jar,它包含支持JDK的工具和实用程序的非核心类。
(3) jre文件夹
Java运行时的环境,其中包含Java虚拟机。
(4) include文件夹
里边包含头文件,支持Java本地接口和Java虚拟机调试程序接口的本地代码编程。
(5) DB文件夹
一个纯Java实现、开源的数据库管理系统(DBMS)java的内嵌数据库。
(6) src压缩包
存放Java的源代码。
四、Java中常用的包
java.lang :基础的基础-java的核心类库,如基本数据类型、基本数学函数、字符串处理、线程、异常处理类等,系统缺省加载这个包(不需要import导入)。
java.util :工具库,包含如处理时间的date类,集合类等
五、配置环境变量
1.为什么要配置path环境变量?
在配置环境变量前,我们运行Java程序是需要在命令行窗口切换到jdk的bin目录下,使用javac 和 java 命令去编译,运行。
在 jdk\bin 目录下hello world运行成功!
在dosTest目录下hello world运行失败!
因为只有在jdk的bin目录下才有对应的工具javac.exe和Java.exe;在其他地方不能运行java程序。
而配置path环境变量后
在dosTest目录下hello world运行成功!
因为系统运行Java程序是先在当前目录下寻找需要的工具javac.exe与java.exe,如果当前目录下没有,则依次在path环境变量保存的路径中找,所以在path里配置jdk\bin之后就可以在任何地方运行java程序了;
(总之一句话,要成功运行Java程序,你要让系统知道你的jdk\bin目录在哪)
2.如何配置环境变量
此电脑—>右键—>属性—>系统高级设置—>环境变量
新建变量JAVA_HOME,值为jdk安装目录;
找到path变量,添加值%JAVA_HOME%bin
六、Java程序执行过程
Java源程序经过编译器编译后变成字节码文件(即.class文件),字节码文件由虚拟机解释器解释执行,解释器将其转换成特定平台上的机器码,然后在特定的机器上运行。
注意其中的名词:
源代码:程序员编写的.java文件
编译器:jdk中的编译工具javac.exe
字节码:Java源代码经过编译器(javac.exe)编译后产生的代码(即扩展为.class的文件),它不面向任何特定的处理器,只面向虚拟机。
【采用字节码的好处】:
Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。
解释器:JVM解释器解释执行class字节码文件,变成特定平台上的机器码
特定平台:可以理解为不同的操作系统,不同系统的JVM是不一定相同的,可在上面执行的机器码也不一定相同;java对于多种不同的操作系统有不同的JVM所以 Java实现了真正意义上的跨平台!
机器码:即机器、系统能够识别执行的形式,如二进制文件。
所以Java即是一门编译型语言也是一门解释型语言;
------------END-----------
领取专属 10元无门槛券
私享最新 技术干货