类型转换和变量、常量、作用域

DAY03学习

1. 类型转换

  1. 由于Java是强类型语言,所以要进行有些运算的时候,要进行类型转换;
  2. 类型转换从低到高(byte,short,hcar-int-long-float-double);
  3. 运算中,不同类型的数据先转换为同一类型的数据,然后再进行运算。

1.1 类型转换面试题

public class Demo3 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;  //强制转换,此处由于Byte类型的最大值到127,所以128溢出内存
        System.out.println(i);
        System.out.println(b);
        //强制转换  (类型)变量名   类型由高转为低
        //自动转换   类型由低转为高
        double d = i;   //自动转换
        System.out.println(d);
        /*
        注意点:
        1. 不能对布尔值进行转换
        2. 不能把对象类型转换为不相干的类型
        3. 在把高容量转换为低容量的时候,需要强制转换
        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 e =c+1;
        System.out.println(e);
        System.out.println((char)e);

        //操作数比较大的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int money = 10_0000_0000;
        int years = 20;
        int total1 = money*years;
        System.out.println(total1);  //-1474836480  计算的时候溢出了
        long total2 = money*years;
        System.out.println(total2);  //-1474836480  默认结果是int,转换之前已经溢出
        long total3 = money*((long)years);
        System.out.println(total3);  //20000000000  先把一个数转换为long可以解决此类问题
    }
}

2. 变量

  1. java是强类型语言,每个变量都必须声明其类型;
  2. java变量是程序中最基本的存储单元,其要素包括变量名、变量类型、作用域。
    数据类型 变量名 = 值; 可以使用逗号隔开来声明多个同类型变量

注意事项:

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

2.1 变量作用域


1. 类变量

 static int i = 10;

2. 实例变量

 String str = "Hello world";

3. 局部变量

 public void method(){
   int i = 0;
 }

2.2 变量面试题

public class Demo04 {

    //属性:变量

    // 类变量  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 Demo04();
        Demo04 demo04 = new Demo04();
        System.out.println(demo04.name);  //输出null
        System.out.println(demo04.age);    //输出0

        System.out.println(salary);
    }

    //其他方法
    public void add(){
        System.out.println();
    }
}

2.3 常量

  1. 常量(Constant):初始化(initialize)后不能再改变值,不会变动的值

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

    final  常量名 = 值;
    final  double  PI = 3.14;
    
  3. 常量名一般使用大写字符


public class Demo05 {

    //修饰符,不分先后顺序
    static final double PI = 3.14;

    public static void main(String[] args) {
        System.out.println(PI);
    }
}

2.4 变量的命名规范

  1. 所有变量、方法、类名都要做到 “见名知意”
  2. 类成员变量:首字母小写和驼峰原则,除了第一个单词以外,后面的单词首字母大写
    monthSalary
  3. 局部变量:首字母小写和驼峰原则
  4. 常量:大写字母和下划线
    MAX_VALUE
  5. 类名:首字母大写和驼峰原则
    Man GoodMan
  6. 方法名:首字母小写和驼峰原则
    run() runRun()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值