java002——数据类型、运算符

java002

数据精度

从低向高排列:

​ byte short char int long float double

分配字节:1 2 2 4 8 4 8

【所以字节数和精度并不相同】

数据类型转换

自动类型转换(隐式)

​ 特例注意:

在这里插入图片描述

前提:数据范围从小到大

强制类型转换(显示)

(类型名) 要转换的值;

注意事项:

​ 1、强制类型转换一般不推荐使用,因为有可能发生精度损失、、数据溢出

​ 2、byte/short/char 这三种类型都可以发生数学运算,例如加法

​ 3、byte/short/char 这三种类型 在运算时,都会被首先提升为int类型,然后再计算

​ 4、可以直接将 int 常量赋值给 byte、short、char 等数据类型,,但是要注意范围。原理是:javac编译器会自动的隐含地补上(byte)(short)(char)。如果超过范围,编译器会报错

​ 5、boolean类型不能发生数据类型转换(不能转化为0,1!!!)

public class HelloWorld {

public static void main(String[] args) {
	char zifu1='A';
	System.out.println(zifu1 + 1); //结果是66,+1时,‘A’被转化成int
}
}
public class HelloWorld {
	public static void main(String[] args) {
		byte x = 40;
		byte y= 50;
		int z= x + y;
		//这里计算时,x,y都被转化成了int型,所以是int+int 得出来的结果也是一个int型
		//所以Z的前面只能是int,如果是byte,会报错
		System.out.println(z);//结果是90
		byte s=1+5;//等号右边全是常量,没有变量参与,编译之后得到的字节码文件相当于short result =13;
		System.out.println(s);
	}
}

ASCII编码表

0的ascii值:48

A的ascii值:65

a的ascii值:97

public class HelloWorld {
	public static void main(String[] args) {
		char x ='1';
		System.out.println(x + 0);//X+0是加法运算,可以转变成int类型,由此得ascii值
	}
}
	

编码表是数字和字符的对照关系表:

Ascii是美国信息交换标准代码

unicode是万国码,也是数字和符号的对照关系,开头0-127与ascii玛一样,但是从128开始包含有更多的字符,比如中文,韩文。。

运算符

-算术运算符

加 减 乘 除 取模(取余 %)

注意事项:一旦运算中由不同类型的数据,那么结果将会是数据量类型范围大的那种

运算步骤:int+double---->double+double----->double

加+的三种用法:

1、对于数值来说:加法

2、对于字符char来说,计算之前会被提升成int,再计算,对照关系就是unicode编码表

3、对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作

【任何数据类型和字符串进行连接的时候,结果都会变成字符串】

public class HelloWorld {
	public static void main(String[] args) {
	String x = "java";
	System.out.println(x+20+30);//结果是java2030
	System.out.println(x+(20+30));//java50
	}
}
自增自减:

++num

num++

使用方式:

​ 1、单独使用: 前++和后++没区别,num++和++num没差

public class HelloWorld {
	public static void main(String[] args) {
	int num1 = 10;
	System.out.println(num1);//结果是10
	num1++;
	System.out.println(num1);//11
	++num1;
	System.out.println(num1);//12
	}
}

​ 2、混合使用:

​ A:如果是【前加加】,那么变量【立刻马上+1】,然后拿着结果进行使用 {先加后用}

​ B:如果是【后加加】,那么变量【使用变量本来的数值】,【然后再让变量+1】{先用后加}

public class HelloWorld {
	public static void main(String[] args) {
	int num2=20;
	System.out.println(++num2);//21
	System.out.println(num2);//21
	int num3 =30;
	System.out.println(num3++);//30,这种输出就是混合使用
	System.out.println(num3);//31
	}
}
	

注意:只有变量才能使用 自增自减运算符,常量不能发生改变。

[下例是用char型进行自增自减运算]

public class HelloWorld {
	public static void main(String[] args) {
	char num4='B';
	int result1=--num4;
	System.out.println(result1);//65
	System.out.println(num4);//A
	}
}
-赋值运算符

基本: int a=10;

复合: += -= *= /=

注意:经过复合赋值后,变量类型无变化

public class HelloWorld {
	public static void main(String[] args) {
	byte x=30;
	x+=5;
	//x=x+5
	//byte + int---->int +int--->x=int
	//复合赋值运算里,会隐含强制类型转换: x=(byte)int
	System.out.println(x);
	}
}
-比较运算符

注意事项:

1、比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false

2、如果进行多次判断,不能连着写,程序中不允许【1<x<3】这种写法

-逻辑运算符

与(并且)&&

或(或者)||

非(取反)!

注意事项:

1、 && ||具有短路效果,如果左边已经可以判断得最终效果,那么右边的代码将不再执行

2、逻辑运算符只能用于boolean值

3、与、或两种运算符,如果有多个条件,可以连续写:

如:条件A && 条件B && 条件C

public class HelloWorld {
	public static void main(String[] args) {
	int a=10;
	System.out.println(a<2 && ++a<100);//false
	System.out.println(a);//10,说明++a没有实行
	int b=20;
	System.out.println(b<33 || ++b<100);//true
	System.out.println(b);//20,说明++b没有实行
	}
}
-三元运算符

一元运算符:只需要一个数据就可以进行操作的运算符。如:! ++ –

二元运算符:需要两个数据才可以进行操作的运算符。如:+ =

三元运算符:需要三个数据才可以进行操作的运算符

格式:

数据类型 变量名=条件判断 ? 表达式A :表达式B;

流程:

首先判断条件是否成立:

​ 如果成立true,那么表达式A的值赋值给左侧的变量

​ 如果不成立false,那么将表达式B的值赋值给左侧的变量

注意:

1、必须同时保证表达式A和表达式B都符合左侧数据类型的要求

2、System.out.println(a>b ? a:b);是正确写法,但是【a>b ? a:b;】单独写出来,结果压根不用,是不行的

public class HelloWorld {
	public static void main(String[] args) {
	int a=10;
	int b=20;
	int max = a>b ? a:b;
	System.out.println("最大值是:"+max);//最大值是:20
	}
}

1、必须同时保证表达式A和表达式B都符合左侧数据类型的要求

2、System.out.println(a>b ? a:b);是正确写法,但是【a>b ? a:b;】单独写出来,结果压根不用,是不行的

public class HelloWorld {
	public static void main(String[] args) {
	int a=10;
	int b=20;
	int max = a>b ? a:b;
	System.out.println("最大值是:"+max);//最大值是:20
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值