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类,集合类等

java.io:输入输入出管道
java.util.concurrent : 多线程相关
java.net : 网络通信用协议包,Socket类、ServerSocket类
java.math : 数学括展包
java.sql : 用来访问data source的包
javax.sql : SQL包

java.awt : 基本图型工具包
javax.swing : 高级图型工具包
java.nio : native io包,高效io包
java.util.regex : 正则表达式相关

五、配置环境变量

1.为什么要配置path环境变量?
在配置环境变量前,我们运行Java程序是需要在命令行窗口切换到jdk的bin目录下,使用javac 和 java 命令去编译,运行。

hello world运行成功
在 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即是一门编译型语言也是一门解释型语言;

什么是DLL文件?

DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

DLL文件中存放的是各类程序的函数(子过程)实现过程,当程序需要调用函数时需要先载入DLL,然后取得函数的地址,最后进行调用。使用DLL文件的好处是程序不需要在运行之初加载所有代码,只有在程序需要某个函数的时候才从DLL中取出。另外,使用DLL文件还可以减小程序的体积

堆,栈,常量池

我们平常定义的变量,不管是基本数据类型变量,还是引用类型变量都是在中;
我们创建出来的对象(即引用类型)是在中;
字符串、常量(数值类)都在常量池中;
如:
String s=new String(“abc”);
该过程会在栈中创建一个变量s,如果常量池中没有“abc”字符串,则在常量池中创建该对象,之后还会在堆中创建“abc”对象;
一共在内存中开辟了三块内存,栈中存放变量s,值为堆中“abc”对象的引用,也就是说,栈s变量指向堆中的“abc”对象,而堆中对象指向常量池“abc”常量;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值