JavaSE基础Day02

JavaSE基础Day02

课程纲要
1. 数据类型转换 -----> 自动类型转换 和 强制类型转换
2. 运算符  ----------> 今日重点
3. 补充Scanner 键盘录入

第一章 数据类型转换

1、自动类型转换
1. 什么是数据类型转换?
    在一个变量定义的过程当中,等号左右两边数据类型不一致的情况下,出现数据类型转换,主要分为两种。
    
2. 类型转换的分类
	A. 自动类型转换(数据范围从小到大)
	B. 强制类型转换(数据范围从大到小)
    
3. 数据范围大小顺序:
	byte,short,char -> int -> long -> float -> double  【基础班大家唯一需要记忆的地方】
	
4. 自动类型转换的格式
	格式:
		数据类型   变量名称 = 数据值;  
	例如:
    	double dd = 3.66F;  //将 float 类型的数据,转换成为 double 类型的数据 
		long  num = 520;   //将 int 类型的数据,转换成为 long 类型的数据 
2、强制类型转换
1. 格式写法
	A. 格式:
		数据类型小的  变量名称 = (数据类型小的)数据值;
	B. 例如:
		float num1 = (float)3.14;  //将 double 类型转换成为 float 类型,浮点数默认是double,如果是float需要加F
		int num2 = (int)521L; //将 long 类型的521L数据转换成为int类型,long类型的数据后面需要加上L

2. 注意事项
	"强制类型转换,可能损失精度" //可能的含义: 有可能有精度损失,有可能没有精度损失。
	例如: 
		int num3 = (int)521L;  //这里就没有精度损失,因为int类型当中,可以存放 521 数据。
		int num4 = (int)3.99F; //这里就会出现精度损失,结果是3.相比之前的精度就变化了。
3、常量优先计算原则
1. 三种类型的数据参与运算的情况
	byte short char 参与 数学运算(加减乘除等)的过程当中,会自动提升为 int 类型,进行计算。(前提是变量)
	
2. 例如:
		//[1]变量+变量
		byte num1 = 3;
		byte num2 = 4;
		byte result1 = (byte)(num1+num2);  //自动提升 int
		System.out.println(result1);
		//--------------------------------
		//[2]变量+常量
		byte num3 = 5;
		byte result2 = (byte)(num3 + 10); //自动提升 int
		System.out.println(result2);
		//--------------------------------
		//[3]常量+常量
		byte result3 = 30+40; //不会报错,常量相加。
		System.out.println(result3);

3. 常量优先计算原则:
	如果是两个常量参与运算。先计算结果,再看数据类型。
	上面的 30+40 先加再看类型,加完之后,结果是 70, 70byte 范围之内,所以不会报错。
	注意.如果加完之后,超过了 byte 的范围,就会报错.需要强制类型转换了。
4、ASCII码表
1. ASCII码表的含义
	American Standard Code for Information Interchange 美国信息交换标准代码
	简单一点说: 就是二进制数据(十进制)和英文字母符号之间的对应关系
        '0'  ---> 数字 48
        'A' ---> 数字 65
        'a'  ---> 数字 9
    参考: 川哥笔记 chm --> B知识附录 --> ASCII码表
    
 2. 万国码表 Unicode
 	ASCII码表 是美国人使用的
 	GBK 码表  是国标,中国使用的
 	ISO-8859-1 欧洲人使用的码表
 	UTF-8 码表,统一了世界码表,称之为"万国码表"
        
 3. 简单记忆码表的方式: +0 记忆法
	//加上0的方式
	char zhifu1 = '我';
	char zhifu2 = '爱';
	char zhifu3 = '你';
	System.out.println(zhifu1+0); //25105
	System.out.println(zhifu2+0); //29233
	System.out.println(zhifu3+0); //20320

第二章 运算符

1、算术运算符
1. 常见的算术运算符
	加、减、乘、除、取余(取模)
	
2. 案例:
	小学应用题目
		int apple = 14;
		int boy = 3;
		//======[小学三年级的玩法]=========
		int x = apple/boy; //商
		int y = apple%boy; //余数
		System.out.println(x); //4
		System.out.println(y); //2
		//======[小学五年级的玩法]=========
		double z = 1.0*apple/boy;
		System.out.println(z); //4.6666666
	计算一个三位数的各个数字(例如:有一个三位数是 153,计算个位是几,十位是几,百位是几)
		int num = 153;
		int ge = num%10;   		//个位数字
		int shi = num/10%10;	//十位数字 153÷10=15  15÷10=1....5
		int bai = num/10/10%10;  //百位数字 153÷10=15  15÷10=1  1÷10=0...1
		System.out.println(ge);  //3
		System.out.println(shi); //5
		System.out.println(bai); //1

3. 加法的多种用法
	A. 数字是 直接做加法运算
	B. 字符是 转换成为int类型做加法运算
	C. 字符串是 连接在一起
	练习案例: //打印输出一个式子:   50-20=30
		int x = 50;
		int y = 20;
		System.out.println(x);  //50
		System.out.println(x+"-");  //50-
		System.out.println(x+"-"+y);  //50-20
		System.out.println(x+"-"+y+"=");  //50-20=
		System.out.println(x+"-"+y+"="+(x-y));  //50-20=30

4. 自增和自减操作
	A. 符号问题
		自增: ++   例如: num++;  或者  ++num;  //含义:在原始数据的基础上,加上1
         自减: --   例如: num--;  获取  --num;  //含义:在原始数据的基础上,减去1
     B.混合使用的情况(了解即可,后期使用不多)
     	口诀:  "前加,先加后用;后加,先用后加"
2、赋值运算符
1. 赋值运算符的分类
	A. 基本的赋值运算符
		=
	B. 复合的赋值运算符
		+=
		-=
		*=
		/=
		%=

2. 注意事项
	复合的赋值运算符当中,隐含了强制类型转换。
	题目: short s = 1;  s+=1;short s=1; s=s+1; 请问,哪一个会报错,为什么?
	答案: 后面的会报错,short变量参与运算的过程当中,会自动提升为 int 类型,需要强制类型转换。
	前面没有报错的原因是, 复合赋值运算符当中包含了强制类型转换。相当于 s = (short)(s+1);
3、比较运算符
1. 常见的比较运算符
	>  大于
	>= 大于等于
	<  小于
	<= 小于等于
	== 等等于
	!= 不等于
	
2. 注意事项
	A. 比较运算符的结果是 boolean 类型,成立是 true 不成立是 false
	B. 千万不要把 == 写成 = ,双等是比较运算符,单等是赋值运算符。
4、逻辑运算符
1. 为什么需要使用逻辑运算符? 逻辑运算符有什么用?
    用于连接关系表达式。
    例如: 1<x<10 ,这里的写法不正确!应该怎么写?  1<x && x<10
        
2. 常见的逻辑运算符
	A.(并且)   &&    "有false则false"
	B.(或者)   ||	"有true则true"
	C.(取反)   ! 	"非true则false,非false则true"
        
3. 注意事项
	A. 逻辑运算符的结果是 boolean 类型
	B. 短路效果: 如果左边可以确定结果,右边不执行。
	
4. 生活实例:
	找女朋友的要求:
	a. 既要颜值高,又要身材好。 --> 逻辑与 &&
 	b. 要么颜值高,要么身材好。 --> 逻辑或 ||  降低要求
 	c. 只要不是男的就行。  ------> 逻辑非 !  降低要求
5、三元运算符
1. 格式:
	数据类型  变量名称 = 表达式 ? 数值1:数值2;  //例如:  int RR = x>y?a:b;

2. 流程:
    A. 先计算表达式的结果,看是 true 还是 false.
    B. 如果结果是 true,那么值1就是结果。 //相当于是 RR=a;
    C. 如果结果是 false,那么值2就是结果。//相当于是 RR=b;
        
3. 注意事项
	A. 数值1和数值2的数据类型必须统一,和等号左边的数据类型要一致。
	B. 三元运算符,必须使用。要么打印输出,要么赋值,不能单独去写。//不能写: x>y?a:b; 错误写法!

第三章 键盘录入 Scanner

1、Scanner的介绍
1. 为什么需要介绍 Scanner?
	前面我们写的 变量值都是固定的.
    如果想要修改,需要修改Java代码,很不方便。
    所以介绍 Scanner,保证程序的灵活性,可以手动输入数据。
    
2. Scanner 使用的操作步骤?
	A. 导包   	  import java.util.Scanner;
	B. 创建对象   	Scanner sc = new Scanner(System.in);
	C. 录入数据   	int num = sc.nextInt();
2、综合案例(判断对称三位数)
import java.util.Scanner; //【A】导包
public class Demo{ 
	//判断一个三位数是否是对称数字 131 就是对称数字
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in); //【B】创建对象
		System.out.println("请输入一个三位数:");
		//[1]获取数据
		int num = sc.nextInt(); //【C】录入数据
		//[2]操作数据
		//获取到个位数字和百位数字
		int ge = num%10;
		int bai = num/10/10%10;
		String str = (100<=num&&num<=999)&&(ge==bai)?"YES":"NO";
		//[3]显示结果
		System.out.println("是否是对称数字:"+str);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值