java学习笔记3

本文详细讲解了Java中的类型转换,包括自动类型转换和强制类型转换,以及在表达式中的自动类型提升。此外,还介绍了算术运算符、关系运算符、逻辑运算符、三元运算符的使用规则和优先级,并通过实例展示了如何进行键盘录入。内容涵盖了从基本的数据类型转换到复杂的运算符应用。

22 需要掌握内容


23 类型转换:自动类型转换

1.什么是自动类型转换?类型范围小的变量,可以直接赋值给类型范围大的变量。(char类型赋值给int类型的变量)

byte a = 20;
int b = a;//没报错说明可行,实际是这里发生了自动类型转换
System.out.println(a);
System.out.println(b);

这里的首位蓝色0表示其是正数

2.自动类型转换的其他形式

3.再看个自动类型转换的例子

int age = 23;
double db = age;
System.out.println(db);

24 类型转换:表达式的自动类型提升

1.表达式自动类型转换规则

注意:

①表达式的最终结果类型由表达式中的最高类型决定(若用int和double同时进行运算,程序会将其先全部转换为double类型再一起计算,最后输出double类型的x.0带小数的)

②在表达式中,byte、short、char直接转换成int类型参与运算的

如图 byte k改为int k

2.最终运行结果是31.0

byte a = 10;
int b = 20;
double c = 1.0;
double rs = a + b + c;  //用最大范围的类型去接收
System.out.println(rs);

25 类型转换:强制类型转换

1.什么是强制类型转换?强行将类型范围大的变量、数据赋值给类型范围小的变量。

一般情况:

int a =20;
byte b = a; //大范围数据类型赋给小范围类型,报错

但若按照规则

便可以实现。

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

2. 强制转换底层原理

3.注意事项。强制转换正确的前提是,前者有效位能够容纳在后者位数中,若不能则会导致数据溢出或丢失,影响最终输出结果。

int i = 1500;
byte j = (byte)i;
System.out.println(j);

此处理想输出结果应是1500,但由于int位数远大于byte,导致最终结果改变为-36.

4.浮点型float强转成整型int,直接丢掉小数部分,保留整数部分返回。

double score = 99.5;3
int it = (int)score;
System.out.println(it);

此处最终结果为99


26 运算符:基本的算数运算符

1.+、-、*、/(java中两个整数相除的结果还是整数)、%(取余)

2.小数除法可能是不准确的,10/3输出为3,如果想要其输出为3.333…,可以*1.0,而且必须放在前方给10乘

System.out.println(10 * 1.0 / 3);

3.System.out.println(3 % 2); 结果为1


27运算符:数据拆分案例

需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台

//  拆分三位数
    int data = 589;

    //个位
    int ge = data % 10;
    System.out.println(ge);
    //十位
    int shi = (data % 100) / 10;
    System.out.println(shi);
    //百位
    int bai = data / 100;
    System.out.println(bai);

28 运算符:加号做连接符

1.“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。

能算就算!不能算就在一起!

此处是字符串5a,因为“”为其增加了字符串

Int a=5,“a”是将a看做字符串,字符串a存储的数字为97


29 运算符:自增自减运算符

1.++ 自增:变量自身的制加1

2.-- 自减:变量自身的值减1

3.注意

①++和—单独使用时,既可以放在变量后边,也可以放在变量前边

②++、--只能操作变量,不能操作字面量

③++、--如果不是单独使用(如在表达式中、或者同时有其他操作),放在变量前后有明显区别;

此时输出 b=10

rs=11

此时输出 a=11

rs=11

应用:抖音点赞数目、系统在线人数

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

30 运算符:自增自减拓展案例(面试常考)

注意搞清楚++、--的先后,决定了先加还是先用!c、d的数字也要在使用过程中随时更新。


31 运算符:赋值运算符

1.就是“=”,先看“=”右边,把数据赋值给左边的变量a储存。

2.扩展赋值运算符

注意:扩展的赋值运算符隐含了强制类型转换。

int a = 10;
int b = 200;
a += b;
System.out.println(a);  //含有强制转换

32 运算符:关系运算符

1.什么是关系运算符?是对数据进行条件判断的符号,最终返回一个比较的布尔结果(true,false)

注意不要把==写成=

2. 举个例子

int a = 10;
int b = 10;
boolean rs = a == b;
System.out.println(rs);

或者直接

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

33 运算符:逻辑运算符

1.什么是逻辑运算符?可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果。

2.应用:筛选功能

3. 具体内容

4. 举个例子

double size = 9.8;
double storage = 6;
//需求:尺寸大于6.95,内存大于8
System.out.println(size >= 6.95 & storage >= 8); //false
System.out.println(size >= 6.95 | storage >= 8); //true
System.out.println(!true); //false

5.“”双与&&”:一个为false,结果是false。但左边若为false,右边不执行。

int a = 10;

int b = 20;
System.out.println(a > 100  &&  ++b > 10); //false
System.out.println(b); //21

此时因为a>100为false,因此右边++b不会执行,输出b的结果仍为20;若将a改为101,则最终输出b为21。

同样的条同样的条件,但单&。虽然前者false,但后者仍会执行

System.out.println(a > 100  &  ++b > 10);  //false
System.out.println(b);   //21
  1. “双或||”:一个为true,结果是true。同理,左边若为true,则右边不执行。

int a = 10;

int b = 20;
System.out.println(a > 5 || ++b > 10); //true
System.out.println(b);  //20

但单“|”无论如何都会执行++b

int a = 10;

int b = 20;
System.out.println(a > 5 | ++b > 10); //true
System.out.println(b);  //21

34 运算符:三元运算符

1.格式:条件表达式? 值1:值2;

2.执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2.

3.举个例子

double score = 18;
String rs =  score >= 60 ? "考试通过":"挂科";
System.out.println(rs);

35 运算符:三元运算符练习题

案例:求三个整数的最大值

需求:定义三个整数,找出最大值并打印在控制台

int num1 = 369;
int num2 = 666;
int num3 = 123;

int max1 = num1 > num2 ? num1:num2;
int max2 = max1 > num3 ? max1:num3;
System.out.println(max2);                                                       

或者使用嵌套方法

int max = num1 > num2 ? (num1 > num3 ? num1:num3) : (num2 > num3 ? num2:num3);
System.out.println(max);

36 运算符:运算符优先级问题

1.

2.举个例子。&&优先级高于||,因此先看后半蓝色部分。而蓝色部分前一半为false,则后一半不执行。蓝色部分整体为false,再看整体,整体前者为true,故输出true

System.out.println(10 > 3 || 10 > 3 && 10 < 3);  //true

但若加括号,反而会变成false

System.out.println((10 > 3 || 10 > 3) && 10 < 3); //false

37 api介绍、案例技术:键盘录入

需求:完成java程序与用户交互,比如录入用户输入的名称、年龄

核心类库

(java写好的程序)

2.API(application programming interface,应用程序编程接口)→Java写好的程序,可以直接调用。

键盘录入功能实现的三个步骤:

        //1导包操作(其实并不需要自己写)

import java.util.Scanner;


public class ScannerDemo {
    public static void main(String[] args) {
        //学会使用键盘录入技术
        //2得到一个键盘扫描器对象
        Scanner sc = new Scanner(System.in);

        //3调用sc对象的功能 等待接收用户数输入数据
        //这段代码会等待用户输入数据,直到用户输入完成并按下回车键,拿到数据
        System.out.println("请输入年龄");
        int age = sc.nextInt();
        System.out.println("您的年龄是" + age);

        System.out.println("请输入姓名");
        String name = sc.next();
        System.out.println("欢迎" + name);

注意数据类型。name不能再用int接收。


38 阶段总结:类型转换、运算符、API、Scanner

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值