学习Java Day05

Day05

数据转换

基本类型从低到高等级划分

byte,char ,short->int->long->float->double

//byte 为字节型

//char 为字符型

//short 为短整型 int 为整型 long 为长整型

//float ,double 为浮点数类型

高>>低(强制转换 )

(类型)变量名 高>>低

①注意存储范围

例如:

public class Decom05 {
     
    public static void main(String args[]){
     

        int a1 = 125;
        int a2 = 130;
        byte b = (byte)a1;
        byte c = (byte)a2;
        System.out.println(b); //125
        System.out.println(c); //-126
    }
}

若用int类型转换为byte类型 数据超过-128~127的范围时 ,b输出未知.内存溢出.

强制转换需要注意存储范围

②浮点类型转整型

public class Decom05 {
     
    public static void main(String args[]){
     
        double a1 = 32.45;
        float  a2 = 28.36f;
        int    a3 = (int)a1;
        long   a4 = (long)a2;
        System.out.println(a1);//32.45
        System.out.println(a2);//28.36
        System.out.println(a3);//32
        System.out.println(a4);//28

    }
}

可见,浮点类型强转为整型,小数部分将会丢失. 注意:并非四舍五入

低>>高(自动转换)

不需要复杂转换

public class Decom05 {
     
    public static void main(String args[]){
     
        int    a5 = 464;
        double a6 = a5;
        float  a7 = a5;
        System.out.println(a5); //464 
        System.out.println(a6); //464.0
        System.out.println(a7); //464.0
    }
}

①字符与整型的转换

public class Decom05 {
     
    public static void main(String args[]){
     
        char a1 = 'c';
        int  b  = a1+1;
        System.out.println(b);        //100
        System.out.println((char)b);  //d
    }
}

字符型变量运算处理输出整型变量时,字母会转化为对应的Unic编码值,在进行运算.

整型变量转化为字符型会通过unic编码表转化为对应的字母.

注意点:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型
  3. 在把高容量转换到低容量的时候,强制转换
  4. 转换的时候可能存在内存溢出,或者精度问题!

对较大的数据进行操作时,注意存储范围

例如:

public class Decom05 {
     
    public static void main(String args[]){
     
          int money = 10_0000_0000;
          int year  = 20 ;
          int total1 = money*year ;
          long total2 = money*year;
          long total3 = money*(long)year;
        System.out.println(total1);        //-1474836480
        System.out.println(total2);        //-1474836480
        System.out.println((long)total2);  //-1474836480
        System.out.println(total3);        //20000000000
    }
}

两个较大的Int类型数据,进行乘法运算时,输出的结果超出int 存储范围,导致内存溢出

在打印输出时,将结果强转为长整型变量,结果仍然溢出,原因:money 和year都是int类型,运算结果也是Int类型,内存已经溢出.此时转化为长整型变量无济于事

解决溢出问题,在两个int类型进行运算时,对其中一个数据强转为长整型变量.输出结果为长整型变量,结果正确

数字后缀带L表示长整型数据

注意细节:长整型类型,数据后缀最好是大写L,避免使用小写l误解为数字1;

例如: long double i = 123456.0L; ✔

​ long double i = 123456.0l; ✖



变量

定义:

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

分类:

  • 类变量
  • 实例变量
  • 局部变量
public class Decom05I {
     
    static int allClinks=0;         //类变量
    String str="Hello world";       //实例变量
    
    public void method(){
     
        int i  =0 ;           //局部变量
    }
}

快捷键方法声明:psvm 取首字母

注:final用来定义常量,不在修改!

​ static 作为修饰符,代表类,随类文件存在

public class Decom05I {

    static final double PI = 3.14;            //类变量,可以在main方法中直接调用
    public static void main(String[] args) {
        System.out.println(PI);
    }
    
}

sattic final double PI = 3.14;

等价于

final satic double PI = 3.14;

注意:

  • 每个变量都有类型,类型可以是数据类型,也可以是引用类型;
  • 变量名必须是合法标识符;
  • 变量声明是一条完整的语句,因此每个声明都必须以分号结束;

常量

定义:

  • 常量(Constant):初始化(initialize)后不能在改变值!不会变动的值。
  • 所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。

​ final 变量名 = 值;

​ final double PI = 3.14;

  • 变量名一般使用大写字符。

命名规范:

  • 所有变量、方法、类名:易于识别,见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary,(除第一个单词,后面单词首字母大写)
  • 局部变量:首字母小写和驼峰原则
  • 常亮:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则:Man,GoodMan
  • 方法名:首字母小写和驼峰原则:run(),runRun()

你可能感兴趣的:(成长经历,程序人生)