JAVA数据类型转换(2021.11.18)

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

在这里插入图片描述

  • 小数的优先级大于整数

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

注意点

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

变量

变量是什么:就是可以变化的量

java是一种强类型语言,每个变量都必须声明其类型。

java变量是程序中最基础的存储单元,其要素包括变量名,变量类型和作用域。

type varName [=value] [{,varName[=value]}];
//数据类型	变量名 = 值;可以使用逗号隔开来声明多个同类型变量

注意事项

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

变量作用域

类变量

实例变量

局部变量

public class Variable{
    static int allClicks=0;		//类变量
    String str = "hello world";	//实例变量
    
    public void method(){
        int i = 0;		//局部变量
    }
}

常量

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

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

final 常量名=final double PI=3.14
//常量名一般使用大写字符

变量的命名规范

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

运算符

Java语言支持如下运算符:

在这里插入图片描述

  • java的等于是使用==表示

代码

变量

public class Demo02变量 {
    public static void main(String[] args) {
        //int a,b,c;
        //int a=1,b=2,c=3;  //程序可读性
        int a=1;
        int b=2;
        int c=3;
        String name = "yudehai";
        char x = 'X';
        double pi = 3.14;
    }
}

变量基本类型

public class Demo02基本类型转换 {
    public static void main(String[] args) {
        int i = 128;
        double b = i;   //内存溢出

        //强制转换      (类名)变量名     高到低
        //自动转换      低到高

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

        System.out.println("=======================");
        //精度会变低
        System.out.println((int)23.7);      //23
        System.out.println((int)-45.89);    //-45
        System.out.println("=======================");
        char c = 'a';
        int d = c + 1;
        System.out.println(d);
        System.out.println((char)d);
        System.out.println("=======================");
        //操作比较大的数的时候,注意溢出问题
        //JDK7新特性,数字之间可以用下划线分割
        int moeny = 10_0000_0000;
        int years = 20;
        int total = moeny*years;    //-1474836480,计算的时候溢出了
        long total2 = moeny*years;  //默认是int,转换之前已经存在问题了
        long total3 = moeny*(long)years;  //提前将years转换成Long
        System.out.println(total3);
    }
}

变量作用域

public class Demo02blzuoyongyu {
    //类变量   static
    static double salary = 2500;

    //static final 静态常量
    //final、public、static 修饰符,不存在先后顺序
    static final double PI = 3.14;

    //属性:变量

    //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0
    //布尔值:默认是false
    //除了基本类型,其余的默认值都是null
    String name;
    int age;

    //main方法
    public static void main(String[] args) {
        //局部变量:必须声明和初始化值
        int i = 10;
        System.out.println(i);

        //变量类型  变量名字 = new Demo02变量作用域();
        /*
        Demo02变量作用域 demo02变量作用域 = new Demo02变量作用域();
        System.out.println(demo02变量作用域.age);
        System.out.println(demo02变量作用域.name);
         */

        //类变量   static
        System.out.println(salary);

        //静态常量
        System.out.println(PI);
    }
    //其他方法
    public void add(){
//        System.out.println(i);

    }
}

二元运算符

public class Demo02二元运算符 {
    public static void main(String[] args) {
        //二元运算符
        int a = 10;
        int b = 20;
        int c = 30;
        int d = 40;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);    //不进行强制转换结果为:0

        System.out.println("===========================");
        long e = 1231231312313213123L;
        int f = 123;
        short g = 10;
        byte h = 8;

        System.out.println(e+f+g+h);    //Long
        System.out.println(f+g+h);      //Int
        System.out.println(g+h);        //Int
        System.out.println("===========================");
        //关系运算符返回的结果:正确,错误  布尔值
        int i = 10;
        int j = 20;
        int k = 21;
        System.out.println(i>j);
        System.out.println(i<j);
        System.out.println(i==j);
        System.out.println(i!=j);
        //取余
        System.out.println(k%i);    //k / i   21/10 = 2 ... 1
        System.out.println("===========================");
        //++    --  自增,自减   一元运算符
        int l = 3;
        int m = l++;    //执行完这行代码后,先给m赋值,在自增
        int n = ++l;    //执行完这行代码前,先自增,再给n赋值

        System.out.println(l);
        System.out.println(m);
        System.out.println(n);
        System.out.println("===========================");
        //幂运算 2^3   2*2*2 = 8   很多运算,我们会使用一些工具类来操作!
        double pow = Math.pow(3, 2);
        System.out.println(pow);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值