java数据类型和运算符

一、 java 数据类型

Java的数据类型分为两种。 一种是原始数据类型(8种),另外一种是引用数据类型(也就是 类的类型)。

原始数据类型分为8种,每种基本类型又对应有各自的包装类(wrapper class)。即:

byte—Byte short—Short int—Integer long—Long

float—Float double—Double char—Character boolean—Boolean

注意: 每种对应的包装类都有相应的静态常量 包装类都设有将String转换为基本类型的方法;引用数据类型分3种:数组,类,接口

本文主要是对java运算符的描述,java数据类型在上一篇文章有详细描述。


二、 java运算符

1、算数运算符:+ - * / %

2、关系运算符 Java具有完美的关系运算符。这些关系运算符基本上同数学中的关系运算符是一致的。

“>”大于、“<”小于、“>=”大于等于、“<=”小于等于、“==”等于、“!=”不等于。

3、四种逻辑运算符,它们是NOT(非,以符号“!”表示)、AND(与,以符号“&&”、“&”表示、)OR(或,以符号“||”、“|”表示),XOR(异或,^)

4、 移位运算符的面向对象也是二进制的“位”。可以单独用移位运算符来处理int型数据。

它主要包括:左移位运算符(<<)、“有符号”右移位运算符(>>)、“无符号”右移运算符(>>>)

5、 赋值运算符是程序中最常用的运算符了,只要有变量的声明,就要有赋值运算。

如a = 3;这里的a我们都知道是变量名,根据前面对变量的定义,我们可以知道这里的a实际上就是内存空间的一个名字,

它对应的是一段内存空间,一在要在这个空间放入3这个值。这个放入的过程就实现了赋值的过程。

6、条件运算符(三目运算符) expression1?expression2 :expression3 expression1 是一个boolean条件,其值:true或false true:执行 expression2 false:执行 expression3


三、下面是一些应用

1、/:用于求商的值,%:用于求余。这是我们都知道的。

比如求int num=1234求这4位数,个十百千为每位数的数字:

int thousand=num/1000; //千位

int hundred=num/100%10;//百位,这样求也可以的int hundred =num%1000/100;

int ten=num/10%10;//十位, int ten= num%100/10

int bite=num%10;//个位

2、虽然数字的默认类型是int,但是有个特殊的

byte b=56;

char c=55;

System.out.println(“b=”+b+”,c=”+c);//不会报错!

byte b2=300;//这个会报错,超出数值范围

int i=12;

byte b3=i;//这个也会报错,必须强转才能用

3、java整数值有四种表达方式:二进制0b,八进制0,十进制,十六进制0x

比如:

int num1=0b11;//2*1+1=3

int num2=027;//8*2+7=23

int num3=333;//333

int num4=0x4A;//16*4+10=74

System.out.println(“num1=”+num1“,num2=”+num2“,num3=”+num3“, num4=”+num4);

//输出结果:num1=3,num2=23,num3=333,num4=74

4、关于char字符 char c1=’44’; char c2=44; char c2=’\u9999’ 你知道吗?

直接输出的话结果:c1=44, c2=, c3=香

第一个是按照原来的类型数值输出字符型数据

第二个是按照ask||码转义后输出字符型数据 ,范围0到127

第三份是按照Unicode编码值转义后输出字符型数据,使用方法:\u+num;num的值范围是0000到????,反正是四位的数值,可以输入全世界任何语言的符号,和一些特殊符号,需要的话需要自己上网查具体的Unicode码值

5、特殊的记数方法:

科学计数法:float f=5.12e2f;//代表5.12*10的10两次方,输出的话:f=512.0

double也是相同的用法

          6、正无穷大、负无穷大、非数,你们知道吗?

          正无穷大PISITIVE_INFINITY

          负无穷大NEGATIVE_INFINITY

          非数 NaN     Not a Number的缩写

          那到底什么时候会出现呢?我们都知道除数不能为零,但是特殊情况可以为零,这些特殊情况就会出现上面三种情况

直接输出 int num1=5/0; int num2= -5/0; int num3=5%0;任意一个都会报错

输出double num1=5.0/0; doublenum2= -5.0/0; double num3=5.0 %0

结果double num1=Infinity; double num2=- Infinity ; double num3=NaN ;

7、逻辑运算符(||和|)、(&&和&)的区别

通过两个程序,就可以看出它们的区别

程序1

intnum1=3,num2=4,num3=5;

if(num1>num2 && num2>num3++){
空方法

}

System.out.println(“num3=”+num3);

//输出结果为5,num3 的值不变,因为判断第一个表达式为false后,结果肯定是false的,第二个表达式不会判断的

如果把上面的&&改为&

System.out.println(“num3=”+num3);

//输出结果为6,num3 的值加1了,判断第一个表达式为false后,第二个表达式还会判断的

程序2

if(num1>num2 || num2>num3++){
空方法

}

System.out.println(“num3=”+num3);

//输出结果为5,num3 的值不变,因为判断第一个表达式为true后,结果肯定是true的,第二个表达式不会判断的

如果把上面的 || 改为 |

System.out.println(“num3=”+num3);

//输出结果为6,num3 的值加1了,判断第一个表达式为true后,第二个表达式还会判断的

思考题:

int num=10;

if(++num>5){
num+=++num;

System.out.println(“num=”+num++);

}

输出后结果是:?


java程序运算符优先级图表:
java数据类型和运算符

上一篇:2020-12-30


下一篇:键盘录入3个整数,并从小到大排序(if --else嵌套语句)