12月26号内容

一,昨日回顾
1.什么是变量?变量的数据类型有哪些?
答:程序的运行过程中,其值不断改变的量叫做变量。
数据类型分为两大类
基本数据类型和引用数据类型
基本数据类型:
整数类型 字符 取值范围
字节类型 byte 1 -128~127
短整型 short 2
默认整数类型 int 4
长整型 long 8
浮点类型
単精度类型 float 4
双精度类型 double 8
字符类型
char 2
布尔类型
boolean 1
引用数据类型:数组,类,接口
2.强制类型的转换格式是什么?为什么要强制转换?
答:目标数据类型 变量名=(目标数据类型)初始化值;
原因:结果的类型和接收的类型不匹配,所以要强制转化成匹配的类型
3.Java中的默认类型提升是什么?
答:byte,short,char三者之间不会相互转换,当参与运算时他们会默认转换为int—>long—>float—>double(依次)
4.定义long类型和float类型的变量要注意什么?
答:最好在末尾跟上大写字母
long a= xxxL; float b= xxxF;
二,今日内容
比较运算符:>,<,>=,<=,==,!=
运算符连接的表达式无论是简单还是复杂,最终结果都是boolean类型
(注意:==不能写成=)

class Day1{
	public static void main (String[] args){
	//定义三个变量
	int x=4;
	int y=5;
	int z=4;

		System.out.println(x==z);
		System.out,println(y==z);
		
		System.out,println((x+y)>(x+z));
		System.out,println((x+y)>=(x+z));
		System.out,println((x+y)<(x+z));
		System.out,println((x+y)<=(x+z));

		System.out,println(x!=z);
		
		

}

逻辑运算符:
基本的逻辑运算符:
逻辑单与 &:并列关系,有false则false
逻辑单或 |:或的关系,有true则true
逻辑异或 ^:相同则为false,不同则为true
逻辑非 !:非true则为false,非false则为true,偶数个非是它本身

class Day3{
 public static void main(String[] args){
  
  
  //定义三个变量
  int a = 3 ;
  int b = 4 ;
  int c = 5 ;
  
  
  //逻辑单与&
  System.out.println((a>c)&(b>c)) ;//false & false
  System.out.println((a>c)&(b<c)) ;//false & true
  System.out.println((a<c)&(b>c)) ;//true & false 
  System.out.println((a<c)&(b<c)) ;//true & true
  
  System.out.println("---------------------------") ;
  
  //逻辑单或|
  System.out.println((a>c)|(b>c)) ;//false  | false
  System.out.println((a>c)|(b<c)) ;//false | true
  System.out.println((a<c)|(b>c)) ;//true | false 
  System.out.println((a<c)|(b<c)) ;//true | true
  
  System.out.println("---------------------------") ;
  
  //逻辑异或^
  System.out.println((a>c)^(b>c)) ;//false  ^ false
  System.out.println((a>c)^(b<c)) ;//false ^ true
  System.out.println((a<c)^(b>c)) ;//true ^ false 
  System.out.println((a<c)^(b<c)) ;//true ^ true
  
  System.out.println("---------------------------") ;
  
  //逻辑非
  System.out.println(!(a>c)) ;
  System.out.println(!!(a>c)) ;
  System.out.println(!!!(a>c)) ;
  System.out.println(!!!!(a>c)) ;
 }
}

面试题:逻辑双与 && 和逻辑单与 & 的区别?(逻辑双 || 和逻辑单 |,同理)
共同点:都可以表示并列关系,有false则false
区别:逻辑双与 &&,如果左边的表达式位false,则符号右边的表达式不会执行,称为扩展的逻辑运算符的短路效果
同理逻辑双 ||,如果左边表达式位true,则右边不执行,具有短路效果

class Day4{
 public static void main(String[] args){
  //定义三个变量
  int a = 3 ;
  int b = 4 ;
  int c = 5 ;
  
  //使用逻辑双与来链接这些表达式
  System.out.println((a>c) &&(b>c)) ;
  System.out.println((a>c) &&(b<c)) ;
  System.out.println((a<c) &&(b>c)) ;
  System.out.println((a<c) &&(b<c)) ;
  System.out.println("--------------------") ;
  
  
  //定义两个变量
  int x = 3 ;
  int y = 4 ;
  
  System.out.println("x:"+x) ;//3
  System.out.println("y:"+y) ;//4
  //boolean flag = ((++x == 3) & (--y ==4)) ;
  //boolean flag = ((x++ == 3) & (y-- ==4)) ;
  //boolean flag = ((x++ == 3) & (++y ==4)) ;
  //boolean flag = ((x++==3 ) && (y-- ==4) ); //逻辑双与  //true && true
  boolean flag = ((++x==3 ) && (y-- ==4) ); // 当符号位&& ,左边的表达式位false,右边不执行(短路效果)
  System.out.println("x:"+x) ; //4 //4 //4   //4    //4
  System.out.println("y:"+y) ;//3  //3  //5  //3  //4 y的值不变还是以前的
  System.out.println(flag) ;//false   true   //false //false
  
  System.out.println("--------------------") ;
  
  int m = 4 ;
  int n = 5 ;
  System.out.println("m:"+m) ;//4
  System.out.println("n:"+n) ;//5
  System.out.println("--------------------") ;
  //boolean flag2 = ((m++ == 4) | (--n == 5)) ; // true |  false
  //boolean flag2 = ((++m == 4) || (--n == 5)) ;//false || false
  boolean flag2 = ((m++ == 4) || (--n == 5)) ;//true
  System.out.println("m:"+m) ;//5   //5  //5
  System.out.println("n:"+n) ;//4    //4  //5
  System.out.println("flag2:"+flag2) ; //true
  
 }
}

位运算符:
基本运算符:
位与运算&:有0则0
位或运算 |:有1则1
位异或运算 ^:相同则为0,不同则为1(特点:一个数据位异或另一个数据两次,其值是它本身)
~反码:对当前数据的二进制全部按位取反,0变1,1变0

class Day5{
 public static void main(String[] args){
  
  System.out.println(3 & 4) ; //3位与4   //0
  System.out.println(3 | 4) ;//3位或4    // 7
  System.out.println(3 ^ 4) ; //3位异或4  //7
  
  System.out.println(~3) ;//对3求反码   //-4
  //~:对当前数据的进行按位取反
 }
}
class Day6{
 public static void main(String[] args){
  
  //定义两个变量
  int a = 10 ;
  int b = 20 ;
  
  System.out.println(a ^ b ^ b) ;//10
  System.out.println(a ^ b ^ a); //20
 }
}

三元(三目)运算符:
单目:~3 双目运算:3+4(或者表达式)
三元格式:(表达式)?表达式1:表达式2
执行流程:先判断表达式是true还是false,
如果是true,执行表达式1的结果,否则执行表达式2的结果

class Day7{
 public static void main(String[] args){
  //定义变量
  int a = 40 ;
  int b = 70 ;
  
  //求a,b之间的最大值
  //定义变量接收最终结果
  int result = (a>b)? a:b;
  System.out.println("result:"+result) ;
  
  //求a和b 的数据是否相等?
  //int z = (a==b)? true : false ; //不兼容的类型: boolean无法转换为int
  //boolean z = (a==b)? true : false ;
  
  //上面简写为
  boolean z =  (a==b) ;
  System.out.println(z);
 }
}

移位运算:
>>:右移,特点:当前数据除以2的移动次幂
<<:左移,特点:当前数据乘以2的移动次幂
>>>:无符号右移:无论最高位是1还是0,左边补齐0

class Weiyifu{
 public static void main(String[] args){
  System.out.println(64>>3);
  System.out.println(6<<2);
  System.out.println(-64>>>3);
 }
}

util.Scanner; 在java语言中,只要不是java.lang包下的类,都需要导包
(1)创建键盘录入对象 固定格式写法:sc变量名(见名知意,可自定义)
Scanner sc=new Scanner(System.in);
(2)导包,位置在class(类)的上面
格式: import java.util.Scanner;
(3)接收键盘录入的数据
提示:请您输入一个数据:
int 变量名=对象名sc.nextInt(); //录入下一个int类型的数据
(4)输出变量名

import Day9;
class ScannerDemo{
 public static void main(String[] args){
  //1)创建键盘录入对象  固定格式写法:sc变量名 可以自己定义(见名知意)
  Scanner sc = new Scanner(System.in) ;
  /*
  导包,位置是在class的上面  
   格式:
    import java.util.Scanner;
  */
  
  //3)提示
  System.out.println("请您输入一个数据:");
  //4)接收键盘录入数据
  //int 变量名 = 对象名sc.nextInt() ; //录入下一个int类型的数据
  int num = sc.nextInt() ;
  System.out.println("您输入的数据是:"+num) ;
  
 }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值