基本数据类型(primitive type)
共八个:
整数
int (占四个字节范围)
byte(占一个字节范围:-128~127)
short (占两个字节范围)
long (占八个字节范围)(long类型要在数组后面加L)
如:long num =10L;
小数:浮点数
float (float类型要在数字后面加F)
如果要比较或计算且不能有误差 最好不用float浮点数进行比较(如银行业务),可以用BigDecimal 数学工具类
double
字符
char
要注意:String定义字符串 它不是关键字,而是一个 类。
布尔值:是非
boolean (占一位)
换算关系
位(bit):计算机内部数据存储的最小单位
字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写的 B 来表示
字符:计算机中使用的字母、数字、字和符号
8b=1B
1024B=1KB
1024KB=1M
1024M=1G
引用数据类型(reference type)
- 类
- 接口
- 数组
类型转换
注意:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 高到低转换需要强制转换
- 转换的时候可能存在内存溢出,或者精度问题
- 操作比较大的数的时候,注意溢出问题
如:
int a = 1000000000;
int b = 20;
int c= a * b;//-1474836480,计算的时候溢出了
long d= a * b;//还是不对,因为转换之前已经出现问题了
long e= a *((long)b);//运行正确 要先把一个数转换为Long。
强制转换 (类型)变量名 高–低
必须通过()转换
如:
int i=127;
byte b=(byte)i;
自动转换 低–高
不需要通过()进行类型转换
如:
int i=127;
double b=i;
变量的作用域
实例变量
在方法的外面,类的里面。它从属于对象。
如果不自行初始化,这个类型的默认值为 0 或 0.0,布尔值默认是false,除了基本类型,其余的默认值都是null。
实例变量:从属于对象(如以下这个实例变量从属于Demo08这个类)
public class Demo08{
String name; //实例变量:从属于对象(从属于Demo08这个类)
int age;
public static void main(String[] args){
//变量类型 变量名字 = new Demo08();
//类似于C语言中的typedef重命名结构体,然后引用结构体里的成员
Demo08 demo08 = new Demo08();
System.out.println(demo08.age)
System.out.println(demo08.name)
}
}
局部变量
在方法里面。必须声明和初始化值
int i=10;
System.out.println(i);
类变量 static
可直接输出
不用像实例变量一样还需要new,以及之后需要Demo08.salary
public class Demo08{
static double salary = 2500;
public static void main(String[] args){
System.out.println(salary);
}
}
也可以加在方法上。就可以在main函数内直接使用了
如:
public static int add(int a,int b)
{
return a+b
};
public static void main (String[] args)
{
add() //在一个类里可以直接使用
}
常量 final
初始化之后不能再改变值
final 变量名 = 值;
final double PI=3.14;
常量名一般使用大写字母
public class Demo08{
static final double PI = 3.14; //修饰符不存在先后顺序 static 和 final位置可互换
public static void main(String[] args){
System.out.println(PI);
}
}
变量的命名规范
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
Math
很多运算可以用一些工具类来操作
如求3的2次方
double pow = Math.pow(3,2); //用Math. 来选择需要的方法
System.out.println(pow);