软件设计之Java入门视频(3)

软件设计之Java入门视频(3)

视频教程来自B站尚硅谷:

尚硅谷Java入门视频教程,宋红康java基础视频
相关文件资料(百度网盘)
提取密码:8op3

学习内容:

该视频共分为1-717部分
ps: 去除图片水印可以在博客设置中取消水印设置
本次内容涉及60-89

记录内容:

  1. 引用数据类型之String
  2. 二进制
  3. 运算符

1、引用数据类型之String(字符串)

在此之前先对数据类型的划分进行图片说明:
在这里插入图片描述

注意事项:
    (1)声明String类型变量时,使用的是一对" "
    (2)String可以和8中基本数据类型进行运算,并且只能是连接运算: +
    (3)运算结果仍然是String类型
    (4)String不参与自动提升算法中的顺序排列

String类型计算练习判断

char c =  'a';  //对应int值是97
int num  = 10;
String str = "Hello" ;
System.out.println(c + num + str)   //107Hello  
System.out.println(c + str + num ) // aHello10
System.out.println(c + (num + str)) // a10Hello
System.out.println((c + num) + str) // 107Hello
System.out.println(str + num + c) // Hello10a

2、 二进制

二进制原码、反码、补码

计算机以二进制补码的形式保存所有的整数
原码: 直接将一个数值换成二进制数。最高位是符号位
负数的反码: 是对原码按位取反,只是最高位(符号位)确定为1
负数的补码: 其反码加1

在这里插入图片描述

为什么一个byte字节的数字范围是-128~127?

在这里插入图片描述

为什么int型变量为128 强制转换成byte成了-128?

int a =  128 ;//int 是4个字节 0000 0000 0000 0000 0000 0000 1000 0000
byte b = (byte)a; //byte 是一个字节 1000 0000 对应就是-128

3、运算符

算术运算符

取余运算符%  结果符号与被模数的符号相同(此处的符号表示正负号)
a % b 其中 a是 被模数

int m1 = -12;
int n1 = 5;
int a1 =  m1 % n1 ;  //a1 = -2 与 m1 符号相同
int m2 = 12;
int n2 = -5;
int a2 =  m2 % n2 ;  //a1 = 2  与 m2 符号相同

自增运算符:
        前++: 先自增1,后运算
        后++: 先运算,后自增1
自减运算符:
        前- -: 先自减1,后运算
        后- -: 先运算,后自减1
自增/自减运算符不会改变本身变量的数据类型

int m = 10;
int n = ++ m;  //n = 11 , m =11
int q = m ++ ;  // q = 11, m = 12

逻辑运算符

逻辑运算符针对boolean
& 逻辑与   &&短路与
| 逻辑或    || 短路或
! 逻辑非
^ 逻辑异或

逻辑与/或 和 短路 与/或 的区别

区分 & 与 &&
相同点1:&与&&运算结果相同
相同点2:当符号左边为true,两者都会执行符号右边的运算
不同点:当符号左边为false,&继续执行符号右边运算,&&不执行。

boolean b1 = false ;
int num1 = 10 ;
if (b1 & (num1++ >0)){
	System.println("结果A");
}else{
	System.println("结果B");
}
//此时num1 = 11
boolean b2 = false ;
int num2 = 10 ;
if (b2 && (num1++ >0)){
	System.println("结果A");
}else{
	System.println("结果B");
}
//此时num2 = 10

区分 | 与 ||
相同点1:|与||运算结果相同
相同点2:当符号左边为false,两者都会执行符号右边的运算
不同点:当符号左边为true,|继续执行符号右边运算,||不执行。

boolean b1 = true ;
int num1 = 10 ;
if (b1 | (num1++ >0)){
	System.println("结果A");
}else{
	System.println("结果B");
}
//此时num1 = 11
boolean b2 = true ;
int num2 = 10 ;
if (b2 || (num1++ >0)){
	System.println("结果A");
}else{
	System.println("结果B");
}
//此时num2 = 10

位运算符

位运算符操作的都是整数型数据
<<: 在一定范围内,每向左移1位,相当于*2
>>: 在一定范围内,每向右移1位,相当于/2
所谓的一定范围就是把int型二进制写出来,左移是尾部补0,右移是头部补0(>>与>>>的区别就是当被移动对象首位为1时(负数嘛),前者最高位补的是1而不是0 )

面试题:最高效的计算 2 * 8 的方法
2<<3 或者 8<<1

三元运算符

结构: (条件表达式)? 表达式1 :表达式2
条件表达式结果是 boolean 类型
              表达式为True,   执行表达式1
              表达式为False,执行表达式2
三元运算符可以嵌套使用

问题:获取三个数最大值

int n1 = 1;
int n2 = 2;
int n3 = 3;
int max1 = (n1 > n2)? n1:n2;
int max2 = (max1 > n3)? max1:n3;
  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值