Java基础知识1
- Java有哪三种技术架构? (JDK的版本)
JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;
JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;
JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;
- javac命令和java命令做什么事情呢?
java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分。
当执行javac命令时,会启动java的编译器,对java文件进行编译,生成了class文件, 也就是jvm可以识别的字节码文件。
java:负责运行的部分。
当执行java命令时,会启动jvm.加载运行时所需的类库,并执行class文件。一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.
- JVM、JRE、JDK分别是什么?能起到什么作用?
JDK包含JRE,而JRE包含JVM
JDK(Java Development Kit)是java开发工具包,包含JRE和各种类库和工具。
JRE是(Java Runtime Environment)是Java运行时环境,它可以提供运行时环境,因此它是JVM的实现,是物理存在的。它包含一系列函数库和运行时用到的其他文件。
JVM(Java Virtual Machine)就是我们常说的java虚拟机,是一个抽象概念,它特指那些可以运行Java字节码的运行时环境。它是整个java实现跨平台最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class文件并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。
- JAVA中基本数据类型和引用数据类型区别
一、基本数据类型:
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0
short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0
int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0
long:长整型,在内存中占64位,即8个字节-2^63~2^63-1,默认值0L
float:浮点型,在内存中占32位,即4个字节,用于存储带小数点的数字(与double的区别在于float类型有效小数点只有6~7位),默认值0
double:双精度浮点型,用于存储带有小数点的数字,在内存中占64位,即8个字节,默认值0
char:字符型,用于存储单个字符,占16位,即2个字节,取值范围0~65535,默认值为空
boolean:布尔类型,占1个字节,用于判断真或假(仅有两个值,即true、false),默认值false
二、引用数据类型:
类、接口类型、数组类型、枚举类型、注解类型。
区别:
基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上。
引用数据类型在被创建时,首先要在栈上给其引用(句柄)分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。
相关知识:
静态区: 保存自动全局变量和 static 变量(包括 static 全局和局部变量)。静态区的内容在总个程序的生命周期内都存在,由编译器在编译的时候分配。
堆区: 一般由程序员分配释放,由 malloc 系列函数或 new 操作符分配的内存,其生命周期由 free 或 delete 决定。在没有释放之前一直存在,直到程序结束,由OS释放。其特点是使用灵活,空间比较大,但容易出错
栈区: 由编译器自动分配释放,保存局部变量,栈上的内容只在函数的范围内存在,当函数运行结束,这些内容也会自动被销毁,其特点是效率高,但空间大小有限
文字常量区: 常量字符串就是放在这里的。 程序结束后由系统释放。

浙公网安备 33010602011771号