Java数据类型转换

类型转换

当把一种基本类型的数据赋值给另外一种基本数据类型的变量时,就会涉及到类型转换,类型转换仅局限于数值型类型内部

  • 由于Java是强类型语言,所以进行有些运算的时候,需要用到类型转换

    数据类型的优先级别的高低和所占内存字节数有关,所占字节数越多,优先级越高

    优先级别由低到高的顺序排序:

    byte—short—char—int—long—float—double

    运算中,不同类型的数据先转化为同一类型,然后进行运算

  • Java中的基本数据类型转换分为

    • 自动类型转换(隐式类型转换)
      • 低到高自动转换
    • 强制类型转换(显式类型转换)

数据类型转换

public class Demo3 {
    public static void main(String[] args) {
        int i = 18;
        byte b = (byte)i ;
        //强制转换int类型转换为byte类型    (类名)变量名
        System.out.println(i);
        System.out.println(b);
        /*
        * 注意点:
        * 1.不能对布尔值进行转换
        * 2.不能把对象类型转换为不相干的类型
        * 2.在把高容量转换为低容量的时候,强制转换
        * 4.转换的时候可能存在内存溢出,或者精度问题!
        * */
        System.out.println("==========");
        System.out.println((int)23.7);//23
        System.out.println((int)-45.89f);//-45
        System.out.println("==========");
        char c= 'a';
        int d = c+1;
        System.out.println(d);
        System.out.println((char) d );
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wilKJGiw-1648560261649)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220329185355528.png)]

注意问题:在整数之间进行类型转换时,数值不发生改变;而将整数类型,特别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失

数据转换溢出问题

public class Demo3 {
    public static void main(String[] args) {
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以使用下划线分割
        int money = 10_0000_0000;
        int years = 20 ;
        int total = money * years;//运行结果: -1474836480   计算的时候溢出了
        long total2 = money* years;//默认是int ,转换之前就已经存在问题了
        long total3 = money * ((long)years); //先把一个数转换为Long
        System.out.println(total);
        System.out.println(total2);
        System.out.println(total3);
    }
}

csdn挽姬

变量

  • 变量是什么:就是可以变化的量!
    Java是一种强类型语言,每个变量都必须声明其类型
    Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型,作用域

变量声明的语法格式:

数据

  • 注意事项:
    • 每个变量都有类型,类型可以是基本类型,也可以是引用类型
    • 变量名必须是合法的标识符
    • 变量生命刚刚是一条完整的语句,因此每一个声明都必须以分号结束
public class Demo4 {
    public static void main(String[] args) {
//        int a,b,c ;不建议这样定义,要保证程序可读性
        int a=1 ;
        String name = "挽姬" ;
        char x = 'X' ;
        double pi = 3.14 ;
    }
}

作用域

  • 类变量
  • 实例变量
  • 局部变量
public class Demo4 {
    //类变量   static
    static double salary = 2500;
    //变量
    //实例变量:从属于对象:如果不自行初始化,这个类型的默认值 0 0.0
    //布尔值 : 默认是false
    //除了基本类型,其余的默认值都是null
    String name;//实例变量
    int age ;
    //主程序方法,main()方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i = 10 ;
        System.out.println(i);
        //变量类型  变量名字 = new Demo4
        Demo4 demo4 = new Demo4();
        System.out.println(demo4.name);
        System.out.println(demo4.age);
        //类变量   static
        System.out.println(salary);
    }
    //其他方法
    public void add() {
//        System.out.println(i);//这里就不能使用i
    }
}

常量

常量:初始化后不能在改变值!不会变动的值

所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变

public class Demo5 {
    //修饰符,不存在仙后顺序
    //final代表常量
    static  final double pi = 3.14;
//    final  static double pi = 3.14;
    public static void main(String[] args) {
        System.out.println(pi);
    }
}

变量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则 : monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 类名:首字母大写和驼峰原则 : Man,GoodMan
  • 方法名 : 首字母小写和驼峰原则 : run(),runRun()

变量的学习是程序编写的第一步,程序的编写往往都是从变量声明开始的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值