一、 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程序运算符优先级图表: