Java基础数据类型
Java提供了八个基本类型。六个数字类型(四个整型,二个浮点型),一种字符类型,还有一种布尔型。
类型 | 位数 | 默认值 |
---|---|---|
byte | 8 | 0 |
short | 16 | 0 |
int | 32 | 0 |
long | 64 | 0L |
float | 32 | 0.0f |
double | 64 | 0.0d |
char | 16 | ‘u000’ |
String | null | |
boolean | 2 | false |
类型转换
整型,常量,字符型数据可以混合运算。运算中,不同类型的数据应该转化为同一种类型在进行计算。
转换前提是又低到高。
byte,short,char–>int–>long–>float–>double
数据类型转换必须满足如下规则:
- 不能对boolean类型进行类型转换。
- 不能把对象类型转换成不相关的对象。
- 在大容量转小容量类型时必须强转。
- 转换中可能会出现溢出或者丢失精度。
隐含强制类型转换
- 整数的默认类型是int。
- 浮点型在定义时必须在数字后面加上F或f。
Java的变量
Java变量分为局部变量,类变量(静态变量)和实例变量。
局部变量:
- 局部变量声明在方法,构造方法或者语句块里;
- 局部变量在方法,构造方法或者语句块被执行是创建,当它们执行完成后,变量将被销毁;
- 访问修饰符不能用于局部变量;
- 局部变量只在声明它的方法,构造方法或者语句块中可见;
- 局部变量是在栈中分配的;
- 局部变量没有默认值,所以在声明局部变量后要进行初始化,才能使用。
public class Test{
public void setAge(){
int age = 0;
age = age + 7;
System.out.println("小狗年龄:" + age);
}
public static void main(String[] args){
Test test = new Test();
test.setAge();
}
}
实例变量
- 实例变量声明在一个类中,但在方法,构造方法和语句块之外;
- 当一个对象被实例化之后,每个实例变量的值就跟着确定;
- 实例变量在对象创建的时候创建,对象被销毁的时候销毁;
- 实例变量的值至少被一个方法,构造方法,语句块引用,使得外部能够通过这些方式获取实例变量信息;
- 实例变量可以声明在使用前和使用后;
- 访问修饰符可以修饰实例变量;
- 实例变量一般情况下应该把实例变量设置为私有。通过访问修饰符可以使实例变量对子类可见;
- 实例变量可以直接通过变量名访问。
public class Employee{
//这个实例变量对子类可见
public String name;
//私有变量,仅在该类可见
private double salary;
//构造器中对name赋值
public Employee(String empName){
name = empName;
}
//设置salary的值
public void setSalary(double empSal){
salary = empsal;
}
//打印
public void printEmp(){
System.out.println("名字" + name);
System.out.println("薪水" + salary);
}
public static void main(String[] args){
Employee emp = new Employee("nowcoder");
emp.setSalary(2000);
emp.printEmp();
}
}
类变量(静态变量)
- 类变量也称静态变量,用关键字static声明,但必须在方法之外;
- 无论类创建了多少个对象,类只拥有类变量的一份拷贝;
- 静态变量除了被声明为常量外很少使用。常量初始化后不可更改;
- 静态变量存储在静态存储区;
- 静态变量在第一次被访问时创建,在程序结束时销毁;
- 与实例变量具有相似的可见性。为了对类的使用者可见,大多数静态变量声明为public类型;
- 静态变量可以通过:ClassName.VariableName的方式访问;
- 类变量被声明为public static final类型时,类变量名称一般建议使用大写字母。如果静态变量不是public和final类型,其命名方式与实例变量以及局部变量命名方式一致;
public class Employee{
//静态私有变量
private static double salary;
//常量
public static final String DEPARTMENT = "娱乐部";
public static void main(Stringp[] args){
salary = 10000;
System.out.println(DEPARTMENT + "平均工资" + salary);
}
}