Day2_数据类型与运算符

来源:互联网 发布:linux php5.6编译参数 编辑:程序博客网 时间:2024/05/01 07:08

Day2_数据类型与运算符

Java是一种强制类型语言,必须声明其类型

1、       基本数据类型 包含8个基本数据类型,是:

(类:bigdecimal)

数值型整数型(byte、short、int、long)

浮点型(float、doubole)

字符型(Char)

布尔型( Boolean)

2、       引用数据类型。

数组、类、接口、枚举(先创建后使用)

3、       数据转型规则 

带有小数点的数字变量默认都为double型。定义float型必须进行强制类型转换。 Floatf=11.2f;

所占字节数小赋值给所占字节数比它大的类型时,自动转型。 

int型变量赋值给char型变量时,JVM会以int型变量值到ASCII码表中查找出所对应的字符,再赋值给char型变量。反之也是。

Byte char --shortchar之间没有可比性,之间转换的话,需要强制转换

初始化简单数据类型时要注意赋值的范围,超出则会产生编译错误。   

基本数据类型默认初始值 boolean false ,byte 0 ,char 0 ,short 0, int 0, float 0.0, double 0.0, long 0

4、       类型提升

相同类型的变量、常数运算,结果还是原类型。bytecharshort之间的运算会提升为int类型)

不同类型的变量、常数运算,结果的类型为参与运算的类型中精度最高者。bytecharshort之间的运算结果为int类型)

5、       整型之间的除法,结果依然为整型(结果向0取整)例如:7/10不等于0.7,而是等于0-5/2不等于-2,5,而是等于-2

6、       浮点只是一个大概的值,得不到一个精确的值

7、       转义字符

\b              退格符                \n            换行符

\r               回车符               \t             制表符

\           单引号’            \f             换页符

\           双引号”            \\            反斜扛\

8、       运算符

除法,正数,0不能做除数,负数的时候0可以,结果无限大。

取余的结果与被除数的符号相同 -10/-3=结果为负数

移位需要扩展为int进行移位运算

<<左移运算符  1010 1010-----0101 0100

>>右移运算符  1010 1010-----1101  0101,补位的是符号位。

>>> 无符号右移运算符 补位的是0 --- 0101  0101

逻辑:

与(&)、非(~)、或(|)、异或(^)

1.与运算符: “&”

两个都为1,结果才为1,否则结果为0

逻辑与 &&  并且,只有全部为真

int a=129;

int b=128;

System.out.println("a 和b 与的结果是:"+(a&b));

运行结果:a 和b 与的结果是:128

下面分析这个程序:

“a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。

 

2.或运算符 :符号“|”

逻辑或  ||               只要有一个为真就为真

只有一个符号,不会短路

两个位只要有一个为1,那么结果就是1,否则就为0

int a=129;

int b=128;

System.out.println("a 和b 或的结果是:"+(a|b));

运行结果:a 和b 或的结果是:129

 

3.非运算符:符号“-”

如果位为0,结果是1,如果位为1,结果是0

int a=2;

System.out.println("a 非的结果是:"+(-a));

 

4.异或运算符:“^”

两个操作数的位中,相同为0,不同为1

int a=15;

int b=2;

System.out.println("a与 b 异或的结果是:"+(a^b));

运行结果:a 与 b 异或的结果是:13

分析上面的程序段:a 的值是15,转换成二进制为1111,而b 的值是2,转换成二进制为0010,根据异或的运算规律,可以得出其结果为1101 即13。

 

 

5、复合赋值运算符能够自动将运算结果转换为左侧操作数的类型。

 +=               x+=y----x=(XXX)x+y  XXX是类型转换,XXX是x的类型。

 -=                     x-=y–---x=(XXX)x-y

 *=                     x○=y –---x=(XXX)x○y   /=  %=

 &=  ^=  |=   <<=  >>=   >>>=

 

1)  使用异或交换变量:

         a= a ^ b;

    b = a ^ b;

    a = a ^ b;

2) 算术运算

      简单来说,就是通过普通的+和-运算来实现。代码如下:

      int a,b;

      a=10;b=12;

      a=b-a; //a=2;b=12

      b=b-a; //a=2;b=10

      a=b+a; //a=10;b=10

0 0
原创粉丝点击