Java学习 第二天


第二天


一、String数据类型的使用

1.String属于引用数据类型,翻译为字符串
2. 声明String类型变量时,使用一对“”
3. String可以和8种基本数据类型做运算,且运算只能是链接运算:+

练习 1:
char c = ‘a’;//a:97 A :65
int num = 10;
String str = “hello”;

①System.out.println(c + num + str);
输出为:107hello

②System.out.println(c + str + num);
输出为:107hello

③System.out.println(c + (str + num));
输出为:ahello10

④System.out.println((c + num )+ str);
输出为:107hello

⑤System.out.println(str + num + c);
输出为:hello10a

练习 2:
目标输出为:“* *”

①System.out.println("* *");
正确

②System.out.println(’’+’\t’+’’);
错误

③System.out.println(’’+"\t"+’’);
正确

④System.out.println(’’+’\t’+"");
错误

⑤System.out.println(’’+(’\t’+""));
正确

Tips:
string无法直接转化为int等基本数据类型(无论强转与自动提升)
需要后续学习Integer

二、常用进制及其相互转化

1.常用进制

①二进制(binary):0,1 ,满2进1.以0b或0B开头。
②十进制(decimal):0-9 ,满10进1。
③八进制(octal):0-7 ,满8进1. 以数字0开头表示。
④十六进制(hex):0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。
如:0x21AF +1= 0X21B0

Tips:二进制负数是补码的形式,确定其二进制数需要转化为原码
在这里插入图片描述

十进制转化为二进制规则

例:13转化为二进制在这里插入图片描述

二进制与八进制,十六进制的转化:

①二进制转化为八进制,每三位二进制数转化为一位八进制数
②二进制转化为十六进制,每四位二进制数转化为一位十六进制数在这里插入图片描述

三、运算符

1.算术运算符

在这里插入图片描述
Tips:

①取模结果的符号总与被取模的变量一致,如:-5%2=-1。此外,取模运算的结果不一定总是整数。
②对于除号“/”,它的整数相除和小数相除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。eg:5/2=2 。
③字符串只可以进行连接操作,他与任何其他基本数据类型的连接运算均为,吸纳进入字符串。例如:“Hello” + 5 =“Hello5”。

/*
练习:随意给出一个三位数的整数,打印显是它的个位数,十位数,百位数的值。
例如:
数字153的情况如下:
个位数:3
十位数:5
百位数:1

*/
class AriExer{
	public static void main(String[] args){
		int num = 187;
		System.out.println("百位数:" + num/100);
		System.out.println("十位数:" + num%100/10);
		System.out.println("个位数:" + num%10);
	}
}

2.赋值运算符

符号:=

①当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制
类型转换原则进行处理。
②支持连续赋值
③扩展赋值运算符: +=, -=, *=, /=, %=

练习一:
short s = 3; 
s = s+2; ①
s += 2; ② ①和②有什么区别?
本质上没有区别,只是写法不同!

练习二:
int i = 1;
i *= 0.1;
System.out.println(i);//逻辑结果为0.1,只保留整数部分,故i=0.
i++;
System.out.println(i);//i=1。

练习三:
int m = 2;
int n = 3;
n *= m++; //m先参与运算,再++。故n=6;m=3。
System.out.println("m=" + m);
System.out.println("n=" + n);

练习四:
int n = 10;
n += (n++) + (++n);
//第一个n=10
//第二个n,现参与运算,再+1,故运算时,n=10,实际n=11;
//第三个n,先+1,再参与运算,故此时n=12.
//综上 n = 10 + 10 +12 = 32.
System.out.println(n);


3.比较运算符

在这里插入图片描述
Tips:

①比较运算符的结果都是boolean型,也就是要么是true,要么是false。
②比较运算符“==”不能误写成“=” 。

练习:
class CompareTest{
	public static void main(String[] args){
		int i = 10;
		int j = 20;
		System.out.println(i==j);	//false
		System.out.println(i = j);	//20

		boolean b1 = true;
		boolean b2 = false;
		System.out.println(b2 == b1);	//false
		System.out.println(b2 = b1);	//true
	}
}

4.逻辑运算符

&—逻辑与
|—逻辑或
—逻辑非
&& —短路与
||—短路或
^ —逻辑异或
在这里插入图片描述
注意

①“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
②“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
③异或(^)的理解:异或,追求的是“异”!,若左右两侧布尔值不同则结果为true,反之为false

5.位运算符

位运算是直接对数的二进制进行的按位运算

在这里插入图片描述
位移规则:
在这里插入图片描述

左移时空出来的最低位都是由"0"来补位

6.三元运算符

在这里插入图片描述

/*
运算符之六:三元运算符
1.结构:(条件表达式)?表达式1 : 表达式2
2. 说明
① 条件表达式的结果为boolean类型
② 根据条件表达式真或假,决定执行表达式1,还是表达式2.
  如果表达式为true,则执行表达式1
  如果表达式为false,则执行表达式2
③ 表达式1 和表达式2要求是一致的。
④ 三元运算符是可以嵌套的
3. 凡是可以使用三元运算的地方,都是可以改写if-else。
   反之,则不一定成立!!!
*/
class SanTest{
	public static void main(String[] args) {
		//获取两个整数的最大值
		int m = 12;
		int n = 5;
		int max = (m > n)? m : n;
		System.out.println(max);


		//****************************************
		//获取三个数中的最大值
		int n1 = 12;
		int n2 = 30;
		int n3 = -43;

		int max1 = (n1 > n2) ? n1 : n2;
		int max2 = (max1 > n3) ? max1 : n3;
		System.out.println("三个数中的最大值是:" + max2);

		//此方法:pass,可读性太差
		//int max3 = (((n1 > n2)? n1 : n2) > n3) ?((n1 > n2) ? n1 : n2) : n3;
		//System.out.println("三个数中的最大值是:" + max3);

		//改写成if-else
		if(m > n){
			System.out.println(m);
		}else{
			System.out.println(n);
		}
	}
}

7.运算符优先级

在这里插入图片描述

总结

本文有参考为CSDN博主「lsqstudy」的原创文章 原文链接:https://blog.csdn.net/PorkBird/article/details/113693828
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值