一、数据类型划分
数据类型:基本数据类型:数值型:整数类型(byte int short long)
浮点类型(float double)
字符型(char)
布尔型(Boolean)
引用数据类型:类(class)
接口(interfance)
数组
基本数据类型:创建时直接储存在栈内存中
引用数据类型:创建时在栈中分配一块内存,在堆中分配一块内存,把具体信息存在堆内存中,再把栈内存指向该堆内存
(栈:整整齐齐排列;堆:乱七八糟左一块右一块)
二、基本数据类型
基本数据类型:
基本数据类型的默认值:
1.整数类型:
1)java中整型常量默认int型,所以注意敞亮的长度不要超出int的范围(10位数)。
2) 数据溢出:数据大小超过可表示的范围。如:
public static void main(String[] args) {
int max = Integer.MAX_VALUE;//得到int型的最大值
System.out.println(max);
System.out.println(max+1);
System.out.println(max+2);
}
输出结果:2147483647
-2147483648
-2147483647
原理:循环
防止数据溢出:任意常量后加个L,或者强制类型转换。如:
public static void main(String[] args) {
int max = Integer.MAX_VALUE;
System.out.println(max);
System.out.println(max+1L);
System.out.println((long)max+2);
}
2.字符类型
1)字符类型在内存中占两个字节。
2)单引号(' ')括起。
3)不同的字符码系统(如ASCII)可能用相同的数值表示不同的字符,Java中用的是Unicode字符码系统,Unicode为每个字符定义了一个唯一的数值。
4)计算机处理字符时,将其看作整数。因此给字符型变量赋值时可以用数值。如:
public static void main(String[] args) {
char ch1 = 'a';
char ch2 = 97;
System.out.println(ch1);
System.out.println(ch2);
}
运行结果: a
a
5)转义字符
3.浮点类型
默认double型,数值后面可加D/d,可不加;float型数值后面必须加F/f。
4.布尔类型
值:true/flase
三、数据类型转换
1.自动转换:
自动转换条件:(1)转换前后数据类型兼容 (2)转后的范围比转前大
如:short 转成 int
整型与浮点型运算结果为浮点型
整型与整型运算结果为整型(小数部分会被忽略)
任何数据类型碰到String,都会转成String类型
int i = 1;
int j = 2;
System.out.println("1+2= " + i+j);//输出 1+2= 12
System.out.println("1+2= " + (i+j));//输出 1+2= 3
2.强制转换:
强转语法:(转换后的数据类型)待转换的变量
四、运算符
1.运算符:
分类:赋值运算符(=)、算术运算符(+ - * / %)、关系运算符(> < >= <= == !=)、逻辑运算符(& &&短路与 | ||短路或 )、条件运算符、括号运算符
五、选择与循环
1.程序的结构:顺序结构、选择结构、循环结构、
1)选择结构:if 语句、 if ... else语句、三元运算符(条件?条件为真时的表达式:条件为假时的表达式)、if ... else if ...else语句、switch语句
switch (表达式){
case 选择值1: 主体语句1;
break;
case 选择值2: 主体语句2;
break;
……
case 选择值n: 主体语句n;
break;
default : 主题语句;
}
注意:1.switch 语句中的选择值只能是 字符 、 常量 、 枚举。
2.default 语句可以不写
2)循环结构:while循环 、do ...while循环、for循环、循环嵌套
循环中断:break 、 continue
(1)break:离开循环执行循环外的代码;若break出现在嵌套循环的内层循环中,则跳出当前循环。
(2)continue:停止运行continue之后的本次的循环主体,跳到循环的起点继续进行下一次循环。