Day03|类型转换及变量、常量

类型转换
  • 强制类型转换:(类名)变量名 高容量到低容量
  • 自动类型转换:低容量到高容量,自动转换
public class Demo1 {
    public static void main(String[] args) {
        //类型转换
        /*
        强制类型转换:(类名)变量名  高容量到低容量
        自动类型转换:低容量到高容量,自动转换
        * */
        int i=128;
        byte b=(byte)i;//int->byte 高容量到低容量,强制转换
        System.out.println(i);
        System.out.println(b);//Byte类 -128~127;内存溢出
        /*注:
        1.布尔值不能进行强制转换
        2.不能将对象类型转换为不相干的类型  boolean i=128(×)
        3.高容量转换到低容量时,需进行强制类型转换
        4.转换过程中可能出现内存溢出(line 12)和精度问题(line 20)。
        * */
        System.out.println("-----------------");
        System.out.println((int)20.5);
        System.out.println((int)-25.6f);
        System.out.println("-----------------");
        char a='a';
        int a1=a+1;//char到int,自动转换
        System.out.println(a);
        System.out.println(a1);
        System.out.println((char)a1);
    }
}

结果如下:
128
-128
-----------------
20
-25
-----------------
a
98
b
int 到 long转换
public class Demo2 {
    public static void main(String[] args) {
        int money=10_0000_0000;//10亿;数字之间可以用下划线分割,jdk7新特性,不影响结果
        int year=20;
        int total=money*year;
        System.out.println(total);//内存溢出
        System.out.println((long) total);//依然内存溢出
        System.out.println(money*(long)year);//先把一个数转换为long类型,显示正确结果
        System.out.println((long)money*year);//显示正确结果


    }
}

结果如下:
-1474836480
-1474836480
20000000000
20000000000
变量、常量、作用域

1.类变量:需要关键字static,在类中定义

2.实例变量:从属对象(类),如果不自行初始化,这个类型的默认值为0(int),0.0(浮点型),u0000(字符型);
布尔型为false;除了基本类型,其他默认值都为空。

3.局部变量:在方法里定义,必须声明和初始化值,作用域:方法内

public class Demo3 {
    /*变量:数据类型 变量名 = 值
    1.类变量:需要关键字static,在类中定义
    2.实例变量:从属对象(类),如果不自行初始化,这个类型的默认值为0(int),0.0(浮点型),u0000(字符型);
               布尔型为false;除了基本类型,其他默认值都为空。
    3.局部变量:在方法里定义,必须声明和初始化值,作用域:方法内

    常量:final 数据类型 常量名=值 大写
    * */
    //常量
    static final double PI=3.14;//数据类型前都为修饰符,不分先后
    //类变量
    static double salary=2500;//自动转换
    //实例变量
    String name;
    int age=21;
    public static void main(String[] args) {
        int i=10;//局部变量

        //在main方法中引入实例变量
        //数据类型 变量名=new Demo3()
        Demo3 demo3=new Demo3();
        System.out.println(demo3.age);
        System.out.println(demo3.name);

        //类变量
        System.out.println(salary);//可以直接引用

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值