变量概念
变量三个基本要素(类型+名称+值)
int a = 100; //定义了一个变量,类型:int整形, 名称:a, 值: 100
//案列:输出个人信息
public class Var01{
//定义一个main方法
public static void main(String[] args){
int a = 98;
double b = 4.5;
char gender = '男';
String name = "卡卡罗特";
//output
System.out.println(a);
System.out.println(b);
System.out.println(gender);
System.out.println(name);
}
}
注意:String类型要用双引号”“。
程序中 +号 的使用
1. 左右两边都是数值型时,做加法运算
2.左右两边有一边是字符串时,做拼接运算
3. 运算顺序,是从左到右(注意第三个和第四个的区别)
Java数据类型
注:string在Java中不是基本数据类型,属于类(class)的一种
整数类型
1. Java各整数类型有固定的范围和字段长度,不受具体os(操作系统)影响,以保证Java程序的可移植性。
2. Java的整数类型默认是int型,声明long类型常量后面要加’l‘ 或 'L'
浮点类型
单精度float(4字节) 双精度double(8字节)
1. 浮点数在机器中存放形式: 浮点数 = 符号位 + 指数位 + 尾数位
2. 尾数部分可能丢失,造成精度损失(小数都是近似值)
3. Java的浮点数类型默认是double型,声明float型常量时须在后面加’f' 或 'F'
4. 0.56 等价于 .56
5. System.out.println(5.16e2) 得到 516.0 , 因为5.16是double型,经运算后还是double型,所以小数点保留
浮点数使用陷阱
2.7 与 8.1 / 3 的比较
double num1 = 2.7;
double num2 = 8.1 / 3;
System.out.println(num1); //2.7
System.out.println(num2); //接近2.7的一个小数,而不是2.7
输出num1为 2.7 输出num2 为 2.699999999999997
得到一个 重要的使用点:当我们对运算结果是小数的进行相等判断时,要小心
字符型使用
char 的使用
细节:
1. 字符常量是用单引号(‘ ’)括起来的单个字符。 char c1 = 'a' ; (双引号表示字符串,)
2. Java中还允许使用转义字符 '\' 来将其后的字符转变为特殊字符型常量。
3. 在Java中,char的本质是一个整数,在输出时,输出对应的Unicode字符 。
(1)System.out.println('a' + 10); // 107, , , 在这里,‘a’相当于一个整数,进行运算
(2)char c5 = 'b' + 1;
System.out.println(c5); // 99对应的字符c(ASCII),因为上面进行了char声明。
System.out.println((int)c5); //99
字符编码介绍
1. ASCII编码是最初使用的,用一个字节表示128种字符
2. Unicode编码增加了其他语言文字,字母和汉字统一都是占用两个字节(浪费空间)
3. utf-8,优化,字母使用一个字节,汉字两个字节。
布尔类型
boolean类型。boolean类型只允许取true和false,无null,并且不同于其他语言,Java中的布尔类型也无法取 0 或 非0 .
基本数据类型转换
自动类型转换
1. 当Java程序进行赋值或运算时,精度小的类型会自动向精度大的类型转换,这是自动类型转换
2. 数据类型精度排序,从左至右(从小到大):
细节1:
int n1 = 10; //ok
float n2 = n1 + 1.1; //错误,1.1为double类型,运算结果是double
float n2 = n1 + 1.1F; //对,1.1F为float类型
double n2 = n1 + 1.1; //对
(byte, short) 和 char 之间不会自动转换。
当把具体数值赋给byte 时,先判断是否在byte 范围内,如果是,就可以赋值
byte a = 10; 正确
细节2:
byte,short,char类型间进行运算,不管是不同类型之间还是相同类型之间,都会先转换成int类型
强制类型转换
将容量大的数据类型转换成容量小的数据类型。
案例:
int i = (int)1.9; //强制将double类型转换成整型int
System.out.println(i);//输出1
细节1:
强转符号遵守就近原则:
int x = (int)1.9 * 5 + 2.0; // 仅仅将1.9转换了
int x = (int)(1.9 * 5 + 2.0); // 将11.5转换为11
细节2:
char类型可以保存int常量,不能保存int变量,需强转。
String和基本类型转换
1. 基本类型转String类型:将基本类型的值+""即可
int a = 10;
float b = 2.5F;
double c = 123.45;
boolean d = true;
String a1 = a + "";
String b1 = b +"";
String c1 = c +"";
String d1 = d +"";
System.out.println(a1);
System.out.println(b1);
System.out.println(c1);
System.out.println(d1);
2. String类型转基本类型:调用包装类parseXX方法
3. String转char: xx.charAt(下标);
String str = "520";
System.out.println(str.charAt(0)); //5