JavaSE Base2

类型转换

运算中,不同类型的数据转换为同一类型再运算

  1. 强制转换:从高类型到低类型;低到高顺序 ,(byte,short,char)---int---long---float---double

  2. 自动转换:从低到高

package base;

public class TypeCast {
   public static String getType(Object o){
       return o.getClass().toString();
  }
public static void main(String[] args) {
       int i =128;
       byte b = (byte)i;//memory overflow 内存溢出
       //force typecast (type)blm   高到低
       //auto typecast 低到高
       System.out.println(i);//128
       System.out.println(b);//-128

       /*
       1. 不能转换布尔值
       2. 不能将对象类型转换为不相干的类型
       3. 转换时可能存在内存溢出或精度问题
        */

       //对于非常大的数
       //定义long类型时,数字如果超过int类型的限制,应在后面加上L
       //JDK7新特性
       int money = 10_0000_0000;
       int year = 20;

       int total = money*year;//-1474836480
       System.out.println(total);

       long total1 = money*year;
       System.out.println(total1);//-1474836480

       long total2 = money*((long)year);
       System.out.println(total2);//20000000000

       byte by = 1;
       byte by1 = 2;
       short sh = 1;
       short sh1 = 2;
       System.out.println(getType(by+by1));//class java.lang.Integer
  }
}

变量

  1. 常量:即不变化的量。

    package base;

    public class constant {

       //修饰符 不区分先后
       static final double PI = 3.14;
       //常量 大写字母 下划线

       //类名:大驼峰
       //方法名,变量:小驼峰

       public static void main(String[] args) {
           System.out.println(PI);
      }
    }
  2. 变量:有名字,类型,作用域。

    • 类变量:在类中直接定义,有static修饰的变量

    • 实例变量:在类中直接定义,从属于对象

      初始值:整型 0;浮点型 0.0;布尔型 false;引用类型 null

    • 局部变量:函数中的变量

    package base;

    public class Var {

       //类变量
       static double f = 6000;

       //实例变量:从属于对象;基本类型初始值 0 0.0
       //布尔值 :false
       //引用类型:null
       String name;
       int age;

       public static void main(String[] args) {
           //名字 类型 作用域
           int a,b,c;//可读性差
           char d = 'd';//局部变量

           //类变量 实例变量 局部变量

           Var var1 = new Var();
           System.out.println(var1.name);//null
           System.out.println(var1.age);//0
           System.out.println(f);
      }
    }
  3.  

posted @ 2021-10-15 22:36  ohesy  阅读(262)  评论(0)    收藏  举报