Java类型转换、运算符——学习笔记(2)

一、类型转换

1、自动类型转换,范围小的可以直接赋值给大的类型变量

底层原理(面试):举例,byte(1字节,8位)赋值给int(4字节,32位)

char类型可以直接赋值给int类型数值

char ch='a';//ASCII码a=97,00000000 01100001
int x=ch;//00000000 00000000 00000000 01100001

System.out.println(x);//输出结果97

因为存在不同类型之间的相互赋值,因此需要类型转换

2、表达式的自动类型转换,范围小的会先转换成表达式中范围大的类型再参与运算

byte、short、char会当成int参与运算,最终运算结果类型是表达式中范围最大的那个类型

面试:

        byte i=50,j=30;
        //byte sum=i+j;//报错,原因:byte会当成int参与运算
        int sum=i+j;

3、强制类型转换:大范围赋值给小范围

        int a=20;
//        byte b= a;//报错:大范围赋值给小范围,需要强制转换,快捷键,alt+enter
        byte b= (byte) a;
        System.out.println(b);//20
//        注意:强转可能造成数据丢失或者溢出;小数转化为整数,直接丢掉小数部分,保留整数部分

二、运算符

1、算数运算符

注意:/和%,整数相除时,结果还是整数

/相当于取整,不四舍五入;%取余

如果想要获得小数结果,分母*1.0

System.out.println(5*1.0/2);

练习:拆分数值

        int data=256;
        int ge,shi,bai;
        ge=data%10;
        shi=data%100/10;//或者data/10%10
        bai=data/100;
        System.out.println(ge);
        System.out.println(shi);
        System.out.println(bai);

2、连接符“+”

//      注意:能算则算,不算就放一起
        int a=1;
        System.out.println("我是"+a+"号");
        System.out.println(a+'a');//1+97=98

3、自增运算符,对变量进行操作,不是字面量;单独使用前后无区别

若在表达式中:

i++:先参与运算,再自增

++i:先自增,再参与运算

--同理

面试:学习来源B站黑马课程

//        自增运算符
        int a=3,b=4;
        //a 3 4 5 4
        //b 4 5 6 5
        //k   3   + 4   + 5 +   6 + 4 +   5 + 6 + 5   +   5
        int k=a++ + b++ + b + ++b + a + ++a + b + a-- + --b;
        System.out.println(a);//4
        System.out.println(b);//5
        System.out.println(k);//43

 4、赋值运算符

+=,-=,/=,%=,*=

        //赋值运算符
        int a=3,b=4;
        a+=b;//a=a+b
        b-=a;//b=b-a
        System.out.println(a);//7
        System.out.println(b);//-3

        byte m=5,n=6;
        m+=n;//m=(byte)(m+n)
        System.out.println(m);//11

5、关系运算符

比较结果是布尔值

注意:==,=

6、逻辑运算符,结果也是布尔值

&与,只有true&true为true,两侧都判断

|或,只有false|false为false,两侧都判断

!非,

^异或,两者不同才为true

&&,若左侧不满足,后边就不继续判断了

||,若左侧不满足,后边就不继续判断了

常用&&,||,!

7、三元运算符

条件表达式?值1:值2

表达式true则值1,否则值2

练习:找3个数中最大值,嵌套的写法

public class HelloWorld {
    public static void main(String[] args) {
        int a=5,b=8,c=1;
        int max=a>b?(a>c?a:c):(b>c?b:c);
        System.out.println(max);
    }
}

8、运算符优先级

三、调用Java提供的方法

案例:键盘录入技术

1、导包(不需要自己写)

2、键盘扫描对象

3、调用对象的功能

package com.laogao.practice;

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入年龄");
        int age= scanner.nextInt();
        System.out.println("请输入姓名");
        String name=scanner.next();
        System.out.println("年龄:"+age);
        System.out.println("姓名:"+name);
    }
}

运行结果

 API:应用程序编程接口,就是Java写好的,直接调用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值