Java基础语法02

Java基础语法02

类型转换

Java是强类型语言,所以进行有些运算时会需要类型转换。

低-------------------------------------------------------------->高

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

运算中,不同类型的数据会转化为同一类型,然后进行运算。低优先级回向高优先级转换。

强制类型转换

强制类型转换是会出现内存溢出的情况,所以对数据类型转换时要注意数字大小。

public class Demo {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte) i ;//强制将 int型 转化为 byte型
//内存溢出
        System.out.println(i);//输出结果128
        System.out.println(b);//输出结果-128
    }
}

自动类型转换

自动类型转换会自动将低优先级转化为高优先级

	   int i2 = 128;
        double b2 =  i ;//自动类型转换
                        //低-->高
        System.out.println(i2);//128
        System.out.println(b2);128.0

注意点:

  1. 不能对布尔值进行转化
  2. 不能把对象类型转化为不相干的类型
  3. 在把高容量转换到低容量时,强制转换
  4. 转换的时候会存在内存溢出,或者精度问题
 System.out.println((int)23.7);//23
 System.out.println((int)-45.89f);//-45

操作比较大的数时要注意溢出问题:

//jdk7新特性可以在数字中加_
        int money = 10_0000_0000;
        int year = 20;

        int total = money*year;
        System.out.println(total);//-1474836480    溢出了
        
        long total2 = money*year;//在  total2 变成 long 之前money和year已经进行过运算了
        System.out.println(total2);//-1474836480
        
        long total3 = ((long)money) * year;//money转化为long型会在运算时把year也自动转换
        System.out.println(total3);//20000000000

变量

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

变量作用域:

类变量、实例变量、局部变量

类变量需要加static修饰符

局部变量只能在方法内使用而且必须申明和初始化

public class Demo {

    //类变量
    static double monthSalary = 2500;

    //实例变量 类里面,方法外面,从属于对象,不用初始化,会自行变成这个类型的默认值
    //0    0.0    布尔值默认false    其余类型默认值都是null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {

        //局部变量 使用之前必须申明,并初始化
        int i = 10;
        //实例变量的用法
        Demo05 demo05=new Demo05();
        System.out.println(demo05.age);//0
        System.out.println(demo05.name);//null

    }
    //其他方法
    public void add(){

    }
}


常量

初始化就不能再改变值,一般常量名用大写字符

需要加final的修饰符

public class Demo {
    static final double PI =3.14;
    //static final 都是修饰符,不分先后顺序
    public static void main(String[] args) {
        System.out.println(PI);//3.14
    }
}

变量命名规范

  • 所有变量、方法、类名:必须见名知意

  • 类成员变量:首字母小写+驼峰原则:monthSalary

  • 局部变量:首字母小写+驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则:Man;GoodMan

  • 方法名:首字母小写和驼峰原则:run(),runOut()

posted @ 2022-02-24 18:00  tantao0_0  阅读(22)  评论(0)    收藏  举报