Java基础(基本数据类型与运算符)

一、基本数据类型(四类八种)

(一)整数型

byte(1字符)、short(2字符)、int(4字符)、long(8个字符)

(二)浮点数型

float(4个字符)、double(8个字符)

(三)字符型

char(2个字符)

(四)布尔类型

boolean(1个字符)

其中大小     byte  <=== short  <=== int <=== long <=== float <=== double   在后面类型转化会用到。

二、运算符

(一)、算数运算符

+、-、*、/、%    其中前四个就是小学学习的加减乘除、最后一个为取余,就是计算两个数的余数,例如5%3的结果为2。其中%可以用来判断该数是否为偶数、奇数还可以作为循环的判断条件等等。在进行计算的时候可能会有数据类型的变化,例如如下:

        int i = 6;
        double b = 10.0;
        System.out.println(i+b);

int类型与double类型相加最后结果会是什么呢?没错正如你所想是double类型。为什么会这样呢?接下来就要引出隐式转换与强制转化。

1.隐式转换(两个提升规则)

程序会自动进行转换

其一,类型小的会先转换为类型大的,然后两者在进行计算。

其二,byte、short、char这三个在进行计算的时候会先提升为int类型,而后在进行计算。

2.强制转换

就是将类型大的转换为小的,这个需要在转化的数据前面加上要强转的类型,如下代码所示

int a = (int) 10.0;

10.0为double类型,强制转化为int类型,如果前面不加(int)程序在编译阶段就会给你提示爆红。在使用强制转换的时候有时候会出现错误例如如下,byte类型最大值为127,这样转换不就会出问题,就好比你在1L的杯子里面装3L水,是一样的道理。

byte by = (byte) 129;

(二)、自增自减运算符

自增++,自减--这两个可以放在变量的前面,也可以放在变量的后面。有两种使用情况:

第一,单独占一行,这个就相当于变量+1或-1,代码如下:

        int a = 1;
        a++;
        System.out.println(a);//2
        ++a;
        System.out.println(a);//3

第二,参与运算

如果++或--在前面,则先计算后使用。

如果++或--在后边面,则先使用后计算。

以++为例,代码如下:

        int a = 1;
        int b = a++;

        int a1 = 1;
        int b1 = ++a1;
        //b:1-------------b1:2
        System.out.println("b:"+b+"-------------"+"b1:"+b1);

下面是自增自减的一个小练习,可以自己试着思考一下:

        int x = 10;
        int y = x++;
        int z = ++x;
        System.out.println("x"+x);
        System.out.println("y"+y);
        System.out.println("z"+z);

(三)、赋值运算符

=、+=、-=、*=、/=、%=,除了等于其余的几个在运算的时候有一个小细节,具体如下代码所示:

        byte b = 1;
        b += 1;
        System.out.println("b:"+b);

b为byte类型,在使用+=时候相当于b =(byte)(b + 1),由于byte在运算时候会先转化为int与1进行相加,而后再将int类型值付给byte类型(int===>byte大类型转为小类型,此时就要用到强制类型转换),这几个赋值运算符底层隐藏了强制类型转换。

(四)、关系运算符

==、>、<、!=、>=、<=运算结果均为boolean类型,要么是true要么是false

(五)、逻辑运算符

&(逻辑与)、|(逻辑或)、^(逻辑异或)、!(逻辑非)

符号说明
&只有两边都是true结果才是true,其余都是false
|只有两边都是false结果才是false,其余都是true
^相同为false,不同为true
!取反

(六)、短路逻辑运算符

&&(短路与)、||(短路或)

符号说明
&&当左边为false时,右边的不执行
||当左边为true时,右边的不执行

(七)、三元运算符(三目运算符)

格式:关系表达式?表达式1:表达式2;

解释:如果表达式结果为true则执行表达式1,为false则执行表达式2

注意点:三目运算符的结果必须被使用,不使用则编译阶段会报错

示例代码如下(求三个数中的最大值):

        int a=1,b=2,c=3;
        int d = a>b?((a>c)?c:a):((b>c)?b:c);
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值