目录
Java编译运行过程分为编译期和运行期,其中编译期是将.java源文件进行编译生成.class字节码文件。运行期是JVM加载并运行.class字节码文件。其特点为跨平台、一次编译到处使用
JVM:java虚拟机,用于加载.class并运行.class
JRE:java运行环境,包含JVM以外还包含了运行java程序所必须的环境
因此JRE = JVM+java系统类库(小零件)
JDK:java开发工具包,包含JRE以外还包含了开发java程序所必须的命令工具
因此JDK = JRE+编译、运行等命令工具。
这里应当注意的是: 运行java程序的最小环境为JRE,而开发java程序的最小环境为JDK。
用来标识类名,变量名,方法名,类型名,数组名及文件名的有效字符序列称为标志符。
1)由字母,下划线,美元符号和数字组成,长度不受限制
2)第一个字符不能是数字字符
3)不能是关键字
4)标志符不能是true,false,null
具有特定用途或被赋予特定意义的一些单词,不可以作为标识符来使用。以下是Java的50个关键字
| break | ||||
| case | const | |||
| continue | ||||
| float | ||||
| goto | ||||
| long | native | |||
| new | ||||
| throws | ||||
| try | while |
基本数据类型也称为简单数据类型,Java中有8种基本数据类型,分别是boolean、byte、short、char、int、long、float、double。习惯上将他们分为4类:逻辑类型,整数类型,字符类型和浮点类型。
使用关键字boolean来声明逻辑变量,boolean类型变量只占1个字节内存,在声明的时候也可以赋初值,只有两个值 true(真) false(假), 用于表示判断结果, true表示成立, false表示不成立。其变量的声明如下:
boolean a=true,b;
字节类型 byte,占1个字节内存,即8位2进制数,取值范围为 -128 ~ 127,因为范围小,所以不常用,用于表示底层数据传输单位。
短整型short占2个字节的内存,即16位2进制数。取值范围 -32768 ~32767 范围不大,不常用。
整型int占4个字节的内存,即32位2进制数。取值范围为-
~
-1。即-2147483648—2147483647。是最常用的整数类型。
对于int类型的常量应该know:
二进制------用数字0和字母b做前缀,即前缀为0b或者0B,例:0b111
八进制------用数字0做前缀,例:077
十进制------123,4567
十六进制------用数字0和字母x做前缀,即前缀为0x或者0X,例:0x3A
长整型long占8个字节的内存,即64位2进制数,因此其变量取值范围是-
~
-1
对long类型的常量应该know:
1)长整型的直接量需要在数字后面加l/L
2)计算时若有可能溢出,则在第一数字后加L
1)整数直接量(字面量)默认为int,但不能超出范围,超出范围会发生编译错误
2)整数相除结果仍是整数
3)运算时若超过范围则会产生溢出。
字符型char占2字节内存,即16位2进制数,因此其变量取值范围是0~65535。
内部采用16位2进制数存储,存储一个字符的Unicode编码.。一个字符对应一个码,表现的形式是字符char,但本质是码int。
字符字面量采用单引号为定界符号,中间只能写一个字符
Unicode 编码,万国码,统一编码,Unicode编码了英文,希腊字母,阿拉伯文,中文,日文,韩文 等全球国家的文字符号。Unicode又被划分为了很多个子集。Java中的char采用的是最通用的一个子集(中文,英文,符号,数字等)
特殊符号需要通过反斜杠\来转义。例如一些转义字符比如:\n--------换行;\b------退格;\t------水平制表;
存储数据时候小数点位置发生移动, 故称为浮点数类型。浮点型分为float(单精度)型和double(双精度)型。
float变量在存储float数据是保留8位有效数字(相对double型保留的有效数字,称为单精度),对于float型变量,分配4字节内存,占32位。float类型字面量需要添加后缀 f/F
double变量在存储double数据是保留16位有效数字(相对float型保留的有效数字,称为双精度),对于double型变量,分配8字节内存,占64位。
浮点数是一个尽可能精确数字, 存储和计算时候存在误差
默认浮点数字面量是 double类型, float类型字面量需要添加后缀 f/F
double 双倍精度浮点数, 由于其精度高而float 单精度浮点数精度低,因此, double类型更加常用
可以使用科学计数法进行赋值
基本数据类型精度从低到高排列:byte<short<long<int<float<double
当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。
当把级别高的变量的值赋给级别低的变量时,必须使用类型转换运算。格式如下:
(类型名)要转换的值
要注意的是:自动类型转换没有风险,而强制类型转换有可能溢出或者丢失精度!!!