Java基本数据类型,算术运算,控制台输入详解

数据类型

1.基本类型(八个)

数值型{

整型类型

  • byte型:1字节 8bit位 第一位是符号位
    byte a = 127;
    
  • short型:2字节
    short b = 32767;
    
  • int 型:4字节
    int c = 123;
    int c = 0b123;//二进制
    int c = 0123;//八进制
    int c = 0x123;//十六进制
    
  • long型:8字节
    long d = 123l;
    long d = 123L;//数字后缀L或l
    

0b或0B开头数字 为二进制

0开头数字为 八进制

0x或0X开头为16进制

浮点类型

  • float :4字节
  • 单精度,尾数可以精确到7位有效数字

    float e = 123.4f//数字后缀加f或F
    
  • double: 8字节
  • 双精度,精度是float的两倍。通常采用此类型。

    double f = 123.4
    
    %%java浮点型默认为double类型%%
    • 十进制数形式,例如: 3.14 314.0

    • 科学记数法形式,如 3.14e2 3.14E2

}

字符型 (char)2字节

  • 使用了Unicode 编码 兼容了Ascll码
  • 可以参与算术运算,本质是使用了Unicode编码表中对应的10进制编号来进行计算

逻辑型(boolean)

  • ture
  • false

2.引用类型

String类型(字符串)

  • '+'相当于字符串连接符
  • String s = “abcd”;
  • 1.任意八种基本数据类型的数据与String类型只能进行连接“+”运算(字符串连接),且结果一定也是String类型
  • 2.String类型不能转为其他的基本类型
  • 		String a = "hello";
            String b = "world";
            String c = a + b;
            String d = a + b + 12;
            System.out.println(a);
            System.out.println(b);
            System.out.println(c);
            System.out.println(d);
    

    运行结果:

    
    hello
    world
    helloworld
    helloworld12
    
    Process finished with exit code 0
    
    

接口(interface)

判断左边类型是否与右边类型一致

package homeworkday7.chouxiang;

public class Test {
    public static void main(String[] args) {
        Cuiweiyang dqw=new Dengqinwen();
        Cuiweiyang dqw2=new Dengqinwen2();
        Person zs = new Person();
          dqw.sleep();
          dqw2.sleep();
          Dengqinwen dqw3=(Dengqinwen) dqw;
          zs.feed(dqw3);
    }
}
package homeworkday7.chouxiang;

public class Person {
    public void feed(Cuiweiyang cuiweiyang){
        cuiweiyang.eat();
        if(cuiweiyang instanceof Dengqinwen){//判断cuiweiyang是否与Dengqinwen是一个类型
            System.out.println("转换为Dengqinwen成功!");
        }
    }
}

结果就是转换为Dengqinwen成功!

数组([])

基本数据类型的转换

八种基本类型除了boolean类型以外,其他七种类型之间可以相互转化

转换规则:

1.默认转换

将取值范围小的的类型自动提升为取值范围大的类型

(byte,char,short(byte->short))->(int)->(long)->(short)->(double)

4个字节float比8个字节long取值范围要大

原因: 浮点数在存储时结构与整数计算方式不同

2.强制转换

容量大的转换为容量小的

格式 : (强制转换的类型) 变量名

int a =258;
byte b = (byte)a;

注:有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一 种数据类型,然后再进行计算

算术运算

分类运算符
算数运算符* / + - % ++ –
赋值运算符+=, -=, /=, *=, %=(扩展赋值运算符), =
比较(关系)运算符== != > <= >= instanceof
逻辑运算符
位运算符
条件运算符(条件表达式)? 表达式1:表达式2

算数运算符

1.‘+’

  • 表示正数
  • 进行加法运算(数值+数值,数值+‘字符’,‘字符’+‘字符’)
  • 连接作用 (字符串+字符串,字符串+数值…字符串+其他)=字符串

2.‘-’

  • 表示负数
  • 减法运算(数值-数值,数值-‘字符’,‘字符’-‘字符’)
  • 注:字符串没有减法

3.‘*’

4.‘/’

5.‘++’

++数值:先++再赋值y=x++ +3;//x+3

数值++:先赋值再++y=++x+3;//x+1+3

6.‘–’

7.‘%’

两边为整数

与++同理

赋值运算符

short s = 3;
s=s+2; ①会出错,因为2为int型
s+=2; ②是对的,+2后会进行隐式转换为s对应的数据类型

/= ,*=,-=,%=同理

在这里插入图片描述

在这里插入图片描述

注:两边数据类型必须一致

比较运算符(结果为true与false)

1.‘==’

判断两边数值是否相等(基本类型与基本类型),Boolean与Boolean进行比较,String与String进行比较(引用类型与引用类型),

注意 字符串自己不能比较大小,Boolean与Boolean不能比较大小

2.‘!=’

数值!=数值,bool!=bool,string!=string;

3.‘>‘和’<’

数值与数值,字符与数值,字符与字符

4.‘>=‘与’<=’

与3同理

5.instanceof

判断左边类型是否与右边类型一致

package homeworkday7.chouxiang;

public class Test {
    public static void main(String[] args) {
        Cuiweiyang dqw=new Dengqinwen();
        Cuiweiyang dqw2=new Dengqinwen2();
        Person zs = new Person();
          dqw.sleep();
          dqw2.sleep();
          Dengqinwen dqw3=(Dengqinwen) dqw;
          zs.feed(dqw3);
    }
}
package homeworkday7.chouxiang;

public class Person {
    public void feed(Cuiweiyang cuiweiyang){
        cuiweiyang.eat();
        if(cuiweiyang instanceof Dengqinwen){//判断cuiweiyang是否与Dengqinwen是一个类型
            System.out.println("转换为Dengqinwen成功!");
        }
    }
}

在这里插入图片描述

逻辑运算符

1.& 逻辑与

所有表达式结果为true,结果为true ,否则false

特点:当第一个表达式为false时,还会去继续执行第二个式子

2.&& 逻辑与/短路与

所有表达式结果为true,结果为true ,否则false

特点:当第一个结果为false时,不会再继续执行第二个式子

int a=1;
        int b=2;
        int c=3;
        System.out.println(a>b&(b++)>c);
        System.out.println(b);
        b=2;
        System.out.println(a>b&&(b++)>c);
        System.out.println(b);
false
3
false
2

3.| 逻辑或

当所有表达式结果为false,结果为false,否则为true

特点:当第一个表达式为true时,还会去继续执行第二个式子

4.|| 逻辑或/短路或

当所有表达式结果为false,结果为false,否则为true

特点:当第一个表达式为true时,不会去继续执行第二个式子

int a=1;
        int b=2;
        int c=3;
        System.out.println(a<b|(b++)>c);
        System.out.println(b);
        b=2;
        System.out.println(a<b||(b++)>c);
        System.out.println(b);
true
3
true
2

5.! 逻辑非

!true = false,!false = true;

6.^ 逻辑异或

相同为false 不同为true

条件运算符

(条件表达式)? 表达式 1 : 表达式2

若 条件表达式 为true 去执行表达式 1 ,否则执行表达式 2;

位运算符

1.<< 左移

空位补0,被移除的最高位丢弃,空缺位补0

int a=7;
        int b=4;
        System.out.println(b<<2);
        //0000 0100 4
        //0001 0000 16

2.>> 右移

被移位的二进制最高位是0,右移后,空缺位补0,最高位是1,空缺位补1


        int b=4;
        System.out.println(b>>2);
        //0000 0100 4
        //0000 0001 1

3.>>> 无符号 右移

被移位二进制最高位无论是0还是1,空缺位都用0补

正数


        int b=4;
        System.out.println(b>>>2);
        //0000 0100 4
        //0000 0001 1

负数

		int b=-4;
        System.out.println(b>>>2);
        /*
            0111 1111 1111 1111 
            1111 1111 1111 1110 -4
         */
        /*
            0111 1111 1111 1111
            1111 1111 1111 1110 1073741823
         */

4.& 与

对应两位都为1,则结果为1,否则0

		int a=2;
        int b=4;
        System.out.println(a&b);
        /*
            0000 0010 2
            0000 0100 4 &
            0000 0000
         */

5.^ 异或

对应两位都相等,则结果为0,否则1

		int a=2;
        int b=4;
        System.out.println(a^b);
        /*
            0000 0010 2
            0000 0100 4 ^
            0000 0110
         */

6.| 或

对应两位都为0,则结果为0,否则1

		int a=2;
        int b=4;
        System.out.println(a|b);
        /*
            0000 0010 2
            0000 0100 4 |
            0000 0110
         */

7.~ 非

对所有位取反 1~0 0~1

		int a=2;
        int b=4;
        System.out.println(~a);
        /*
            ~0000 0010 2
             1111 1101 -3(最高位为1)
         */

注:使用byte类型移位时,系统会自动换为int进行位运算

控制台输入

在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;

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

        Scanner in = new Scanner(System.in);//Scanner 后面可以跟任何标识符来做对象,System.in为固定格式
        int a = in.nextInt();
        String b = in.next();
        System.out.println(a);
        System.out.println(b);
    }
}

控制语句

条件语句 - 根据不同条件,执行不同语句

  • if
  • if…else
  • if…else if
  • if…else if … else if…else
  • switch

if条件结构

if条件结构是根据条件判断之后再做处理

在这里插入图片描述

在这里插入图片描述

switch语句

在这里插入图片描述

switch与if区别

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

刺猬崔‍️

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

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

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

打赏作者

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

抵扣说明:

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

余额充值