Java003

类型转换

Java为强类型语言,在进行有些运算时,要使用类型转换

低--------------------------------->高
byte,short,char -> int -> long -> float -> double
运算中,不同类型的数据先转换为同一类型,再进行运算

强制类型转换

由高到低,需要进行强制类型转换

// 强制转换 (类型)变量名    高->低
int i =128;
byte b = (byte) i;      // -128,因为byte最大值为127(内存溢出)

自动类型转换

由低到高,会自动进行类型转换

int i = 128;
double d = i;           // 自动类型转换

注意点:

  1. 不能对布尔值进行类型转换
  2. 不能把类型转换为不相关的类型
  3. 把高容量转换至低容量时,强制类型转换
  4. 转换时可能出现内存溢出或精度问题

溢出问题

操作比较大的数时,需要注意溢出问题
JDK7新特性:数字间可以用下划线分割

int money = 10_0000_0000;
int years = 20;
int total = money * years;              // 计算溢出
long total2 = money * years;            // 在转换为long之前,已经溢出了
long total3 = money * (long)years;      // 先把一个数转换为long
System.out.println(total);              // -1474836480
System.out.println(total2);             // -1474836480
System.out.println(total3);             // 20000000000

变量

Java为强类型语言,每个变量都必须声明其类.
Java变量要素包括变量名,变量类型和作用域.

变量作用域

  • 类变量:从属于类的变量
public class Variable {
   // 类变量
   static double salary = 1000_0000.0000_0000;

   // main方法
   public static void main(String[] args) {
       // 类变量(static):从属于类的变量
       System.out.println(salary);
   }
}
  • 实例变量:从属于对象
    会自动初始化为默认值(0,0.0,false,null),除了基本类型
    其余类型默认值都为null
public class Variable {
   // 实例变量:在类中,在方法外;从属于对象
   // 可以不用进行初始化,会自动初始化为默认值(0、0.0、null、false)
   String name;
   int age;

   // main方法
   public static void main(String[] args) {
       // 使用实例变量:变量类型  变量名称 = new Variable
       Variable variable = new Variable();
       System.out.println(variable.name);      // null
       System.out.println(variable.age);       // 0
   }
}
  • 局部变量:从属于当前方法
    使用前必须进行声明和初始化
public class Variable {
   // main方法
   public static void main(String[] args) {
       // 局部变量:在方法中,使用前必须声明和初始化,作用域仅在当前方法中
       int i = 0;
       method();
   }

   // 其他方法
   public static void method() {
       // System.out.println(i);    报错,因为 i 为局部变量
   }
}

常量

初始化之后不可再改变的值
常量名一般用大写
常量修饰符:final

public class Demo03 {
    // 修饰符,不区分先后顺序
    static final double PI = 3.14;
    final static double PI2 = 3.14;

    public static void main(String[] args) {
        // 常量
        System.out.println(PI);
        System.out.println(PI2);
    }
}

命名规范

  1. 所有变量、方法、类名:见名知意
  2. 类成员变量:首字母小写和驼峰法:monthSalary
  3. 局部变量:首字母小写和驼峰法
  4. 常量:全大写字母和下划线:MAX_VALUE
  5. 类名:首字母大写和驼峰法:AddClass
  6. 方法名:首字母小写和驼峰法:addMethod()
tag(s):
show comments · back · home