Java基础一(Java相关介绍)

一、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-----------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210314A01Z2600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券