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,java数据类型,java运算符)