Java数据类型以及运算符

Java数据类型

牢记Java是一种 强类型 的语言,每种数据都定义了一种具体的数据类型,并且在内存中分配了不同大小空间。
数据类型分为基本数据类型以及引用数据类型,这里暂时只提及基本数据类型。

数据类型

(由小到大)
整数类型 byte、short、int、long
浮点类型 float、double
字符型 char
布尔型 boolean

数据类型的大小范围:

类型 占用存储空间 表数范围
byte 1字节 -128~127 (2的八次幂)
short 2字节 -215~215-1 (2的十六次幂,但从零开始)
int 4字节 -231~231-1
long 8字节 -263~263-1
float 4字节 -3.403E38~3.403E38
double 8字节 -1.798E308~1.798E308

数据类型作用域:

变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。相同的作用域中不能定义两个同名变量。

数据类型初始化值:

没有初始化值不能直接使用

Java中的运算符

运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、三目运算符

关系运算符

== 相等于 4==3 false
!= 不等于 4!=3 true
< 小于 4<3 false

大于 4>3 true
<= 小于等于 4<=3 false
= 大于等于 4>=3 false
关系运算符的计算结果是一个Boolean值,true或false

int a = 3;
        int b = 4;
        int c = 3;

        System.out.println(a == c);//true

        System.out.println( a = b );//4

        boolean flag = a > b;
        System.out.println(flag);//false
        System.out.println(a >= b);//true
        System.out.println(a < b);//false
        System.out.println(a <= b);//true
        System.out.println(a != b);//false

逻辑运算符

运算符 运算 范例 结果
& AND(与) false&true false
| OR(或) false|true true
^ XOR(异或) true^false true
! Not(非) !true false
&& AND(短路) false&true false
|| OR(短路) false||true true

特点:一般用于连接Boolean类型的表达式或值
结论:
& 逻辑与:有false则false
| 逻辑或:有true则true
^ 逻辑异或 相同为false,不同为true
!非:就是非

//&逻辑与运算
        System.out.println((a>b) & (a>c)); //false
        System.out.println((a>b) & (a<c)); //false
        System.out.println((a<b) & (a>c)); //false
        System.out.println((a<b) & (a<c)); //true


        //|逻辑或运算
        System.out.println((a>b) | (a>c)); //false
        System.out.println((a>b) | (a<c)); //true
        System.out.println((a<b) | (a>c)); //true
        System.out.println((a<b) | (a<c)); //true


        //^逻辑异或运算
        System.out.println((a>b) ^ (a>c)); // false
        System.out.println((a>b) ^ (a<c)); // true
        System.out.println((a<b) ^ (a>c)); // true
        System.out.println((a<b) ^ (a<c)); // false

        //!逻辑非运算
        System.out.println(!((a>b) ^ (a>c))); // true
        System.out.println(!((a>b) ^ (a<c))); // false


&&,||
&&和&的区别,||和|的区别
A:最终结果是一样的
B:&&具有短路效果,左边为false时,右边不执行
||具有短路效果,左边为true时,右边不执行

        int a = 3;
        int b = 4;
        int c = 5;

        //&&双与
        System.out.println((a > b) && (a > c)); //false && false = false
        System.out.println((a > b) && (a < c)); //false && true = false
        System.out.println((a < b) && (a > c)); //true && false = false
        System.out.println((a < b) && (a < c)); //true && true = true

        //&逻辑与运算
        System.out.println((a>b) & (a>c)); //false
        System.out.println((a>b) & (a<c)); //false
        System.out.println((a<b) & (a>c)); //false
        System.out.println((a<b) & (a<c)); //true

        int x = 3;
        int y = 4;

        boolean b1 = ((x++ == 3) & (y++ == 4));
        System.out.println("x:"+x);//4
        System.out.println("y:"+y);//5
        System.out.println("b1:"+b1); //true


        boolean b2 = ((x++ == 3) && (y++ == 4));
        System.out.println("x:"+x);//4
        System.out.println("y:"+y);//5
        System.out.println("b2:"+b2);//true


        boolean b2 = ((x++ == 6) && (y++ == 4));
        System.out.println("x:"+x);//4
        System.out.println("y:"+y);//4
        System.out.println("b2:"+b2);//false

        boolean b1 = ((x++ == 6) & (y++ == 4));
        System.out.println("x:" + x);//4
        System.out.println("y:" + y);//5
        System.out.println("b1:" + b1); //false

        boolean b1 = ((x++ == 6) | (y++ == 4));
        System.out.println("x:" + x);//4
        System.out.println("y:" + y);//5
        System.out.println("b1:" + b1); //true

        boolean b1 = ((x++ == 3) || (y++ == 4));
        System.out.println("x:" + x);//4
        System.out.println("y:" + y);//4
        System.out.println("b1:" + b1); //true

位运算符

<< 左移 3<<2 = 12 -->322=12

右移 3>>1 = 1 -->3/2=1

无符号右移 3>>>1 = 1 --> 3/2=1
& 与运算 6&3 = 2
| 或运算 6|3 = 7
^ 异或运算 6^3 = 5
~ 反码 ~6 = -7

补充一个位运算符的小知识点:
两个数值AB异或,其中A异或两次B,其值依旧是A

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

        int a = 3;
        int b = 4;

        System.out.println(a^b^b);
        System.out.println(a^b^a);

    }
}

感谢阅读,我是啊帅和和,一位大数据专业即将大四学生,祝你快乐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊帅和和。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值