JDK、JRE、JVM的关系
一、数据类型
Java中的数据类型分为基本数据类型和引用数据类型。Java不支持C、C++中的指针类型、结构体类型和共用体类型。
## 基本类型:
1.boolean;
2.数值类型:
(1)整数类型:byte、short、int、long;
(2)浮点类型:float、double;
(3)字符类型:char;
## 引用类型:
1.类类型:class;
2.接口类型:interface;
3.数组类型:array;
4.String。
## 装箱和拆箱
Java数据类型中的8种简单类型分别为:boolean、byte、char、short、int、long、float和double。
与之对应,Java类库的java.lang包中定义了8种包装类:Boolean、Byte、Character、Short、Integer、Long、Float和Double。
Integer a = 10;//装包:将一个简单类型转换成对应的包装类
int i = a; //拆包:将一个包装类的实例对象类型转换为一个简单类型
Integer i = 100;
Integer i2 = 100;
System.out.println(i == i2);//ture
System.out.println(i.equals(i2));//ture
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i3 == i4);//flase:如果是在-128~127之间,会放到缓存当中[];如果不在范围内会重新生成一个对象
System.out.println(i3.equals(i4));//ture:比较的是数值的大小
二、变量和常量
只能以字母或下划线开头
## 变量
变量是Java单元中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。
例如:
int a;//定义一个整数变量a
double b;//定义一个双精度浮点数变量b
变量是一个合法的标识符,应具有一定含义,以增加程序的可读性。
一般约定变量名是以小写字母开头的,而类名是以一个大写字母开头的。如果变量名包含多个单词,而每个单词要组合在一起,则每个单词的第一个字母大写,如StudentName。
一旦定义一个变量,Java编译器就会根据其数据类型为其分配内存空间。变量在声明后,使用赋值运算符“=”来为其指定初值。
例如:
int c = 0;
double d= 0.0;
char ch = 'A';
实例变量、静态变量、局部变量
int a;//实例变量:堆(heap)
static int b;//静态变量:方法区(Method Area)不属于对象,只属于类本身。使用static关键字,静态属性保存在一个内存中的公共内存单元,任何一个类的对象访问它时,取到的都是相同的数值
void fun() {
int c = 10;//局部变量:虚拟机栈(VM Stack)
System.out.println(a);//默认值为0
System.out.println(b);//默认值为0
System.out.println(c);//局部变量使用必须初始化
}
注:变量的数据类型必须与赋给它的数值类型相匹配。
## 常量
常量实在程序执行过程中值不改变的量,如整型常量123、实型常量1.23、字符型常量“A”、布尔类型ture和false以及字符串常量“Helloworld”等,Java用关键字“final”来定义常量。
例如:
final double PI = 3.1415926;
## 整型数据
1.整型常量:与C和C++相同,Java的整型常量有三种形式:
(1)十进制整数,如123、-456、0。
(2)八进制整数,以0开头,如012表示十进制数10,-011表示十进制数-9。
(3)十六进制整数,以0x或0X开头,如0x12表示十进制数18,-0X12表示十进制数-18。
注:默认int型,对于long型值,则要在数字后加L。
2.整型变量:byte、short、int、long四种。
int类型是一种最常使用的整数类型,它所表示的数据范围为64位处理器。但对于很大的整数,超出int类型所表示的范围,这时要使用long类型。
## 浮点型数据
1.浮点型常量:Java的浮点型常量有两种表现形式:
(1)十进制数形式:由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.0。
(2)科学计数法形式:如123e3或123E3,其中e或E后面的指数必须为整数。
注:默认double型,对于float的值,要在数字后加f或F。
## 字符型数据
1.字符型常量
2.字符型变量
3.字符串常量
## 布尔型数据
布尔型数据只有两个值,ture和flase,且它们不对应任何整数值。
三、运算符的优先级
Java有四大类运算符:算术运算、位运算、关系运算和逻辑运算。
运算符优先级:
![在这里插入图片描述](https://img-blog.csdn.net/20181012132119608?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ3OTI5Mw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
## 算数运算符
(1)增量运算符(++)
int a = 10;
a = a++;
System.out.println(a);//10
(2)减量运算符(--)
(3)一元运算+、-
(4)算数四则运算+、-、*、/
(5)模运算%
System.out.println(10%-3);//1:10-(-3)*(-3)=1
## 关系运算符
(1)等于(==)
(2)不等于(!=)
(3)大于(>)小于(<)大于等于(>=)小于等于(<=)
## 逻辑运算符
(1)逻辑与(&)
(2)逻辑或(|)
(3)异或(^)
## 位运算符
(1)按位非(~)
(2)按位与(&)
(3)按位或(|)
(4)按位异或(^)
(5)右移(>>):补符号位
(6)无符号右移(>>>) :补0
(7)左移(<<)