【无标题】java基础学习Day3

入门Day3

类型转换

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

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

强制类型转换和自动类型转换

public class demo03 {
    public static void main(String[] args) {
        int i = 128;
        byte b = (byte)i;//内存溢出
        //强制转换  (类型)变量名   高--低
        //自动转换    低--高
        System.out.println(i);
        System.out.println(b);
        /*
        注意点:
        1.不能对布尔值进行转换
        2.不能把对象类型转换位不相干的类型
        3.在把高容量转换到低容量的时候,强制转换
        4.转换时可能出现内存溢出问题,或是精度问题
        */
        System.out.println((int)23.78);
        System.out.println((int)100.7);
        System.out.println("============================");
        //强制转换
        char c = 'a';
        int d = c+1;
        System.out.println(d);
        System.out.println((char)d);
    }
}


注意问题:

public class demo04 {
    public static void main(String[] args) {
        //操作较大的数时,注意溢出问题
        int money = 10_1010_1010;//数字之间可以用下划线分割
        int years = 20;
        int total = money*years;
        long total1 = money*years;//默认是int,,转换之前就存在问题
        long total3 = money*(long)years;
        System.out.println(total);//-1272816280,结果溢出
        System.out.println(total1);//-1272816280,结果依然溢出
        System.out.println(total3);
    }
}

变量

  1. 变量是什么:可以变化的量

  2. java是一种强类型语言,每个变量的声明必须声明其类型

  3. Java变量是程序中最基本的储存单元,器要数包括变量名,变量类型和作用域。

    type varName [=value] [{,varName[=value]}]
        //数据类型  变量名 = 值;可以使用都好隔开声明多个类型变量
    
  4. 注意事项

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

常量

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

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

  3. 格式

    final 常量名=;
    final double PI=3.14;
    

    代码:

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

变量与常量的命名规范

  • 所有变量、方法、类名:见名知意
  • 类成员变量:首字母小写和驼峰原则:monthSalary
  • 局部变量:首字母小写和驼峰原则
  • 常量:大写字母和下划线:MAX_VALUE
  • 类名:首字母大写和驼峰原则
  • 方法名:首字母小写和驼峰原则

运算符

java语言支持以下运算符:优先级()

  • 算术运算符:+、-、*、/、%、++、–
package operator;

public class Demo01 {
    public static void main(String[] args) {
        //二元运算符 加减乘除
        int a = 10;
        int c = 20;
        System.out.println(a*c);
        System.out.println(a+c);
        System.out.println(a-c);
        System.out.println(a/(double)c);
    }
}
=========================================================================================
package operator;

public class Demo04 {
    public static void main(String[] args) {
        //++   --  自增,自减  一元运算符
        int a = 10;
        int b = a++;//a=a+1,执行完这段代码后,先给b赋值,再自增
        //a = a+1;
        System.out.println(a);
        //a = a+1;
        int c = ++a;//执行这段代码前,先自增,再给c赋值
        int d = a--;
        int e = --a;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
        //幂运算,很多运算都会使用工具类操作
        double  pow = Math.pow(3,2);//Math类
        System.out.println(pow);
    }
}

  • 赋值运算符:=
  • 关系运算符:>、<、>=、<=、==、!=
package operator;
//关系运算符
public class Demo03 {
    public static void main(String[] args) {
        //关系运算符的返回结果:正确,错误  布尔值
        int a= 10;
        int b = 20;
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a==b);
        System.out.println(a!=b);
    }
}

  • 逻辑运算符:&&、||、!
package operator;
//逻辑运算符
public class Demo05 {
    public static void main(String[] args) {
        //与(and)或(or)非(取反)
        boolean a = true;
        boolean c = false;
        System.out.println("a && c:"+(a && c));//逻辑与运算:两个变量都为真,结果才为true,若第一个为假,则直接返回假,不在进行后面的运算
        System.out.println("a || c:"+(a || c));//逻辑或运算:两个变量有有一个为真,则结果才为true
        System.out.println("!(a && c):"+(!(a && c)));//如果是真,则变为假,如果是假则变为真
        //短路运算
         int b = 3;
         boolean d = (b<2) && (++b<2);
        System.out.println(b);
         boolean e = (b>2) && (++b>2);
        System.out.println(b);
        System.out.println(d);
        System.out.println(e);


    }
}

  • 位运算符:&、|、^、~、<<、>>、>>>
package operator;
//位运算符
public class Demo06 {
    public static void main(String[] args) {
        /*
        A = 0011 1100
        B = 0000 1101

        A&B = 0000 1100 相同则为1,不同为0
        A|B = 0011 1101 不同为1,相同则为0
        A^B = 0011 0001
        ~B = 1111 0010
        2*8 = 16  2*2*2*2
        <<左移  相当于*2
        >>右移  相当于/2
        */
        System.out.println(2<<3);//2*2*2*2
    }
}

  • 条件运算符:?:
package operator;

public class Demo08 {
    public static void main(String[] args) {
        // x ? y:z
        //如果x==true,则结果为y,否则结果为z
        int score = 60;
        String type = score < 60 ? "不及格":"及格";
        System.out.println(type);
    }
}

  • 扩展赋值运算符:+=、-=、*=、/=
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值