Java数据类型和运算符

数据类型

 

基本数据类型
名称大小 (字节)大小默认值
字节型 byte1-2^7~2^7-10
短整型 short2-2^15~2^15-10
整型 int 4-2^31~2^31-10
长整型 long8-2^63~2^63-10
单精度浮点型 float4-2^31~2^31-10.0
双精度浮点型 double8-2^63~2^63-10.0
字符型 char20~2^16-1'\u0000'
布尔型 boolean不确定---false

注意:

1.byte取值范围是-128-127,初始化是不能超出其范围

2.short和char都是两个字节,赋值时都需要强制类型转换。(取值范围不同)!!

3.声明(所有类型)是一定要赋初值,否则会报错的

4.long初始化时给数字后面加L

5.float初始化时给数字后面加L,否则也会报错

6.double类型和整型在底层组织数据方式不一样,可能造成精度丢失。Java中的double类型的内存布局遵守IEEE 754标准,尝试用使用有限的内存空间表示可能无限的小数,势必会存在一定的精度误差。

7.char两个字节,并且没有负数,只能表示字符

8.boolean只有两种取值true和false,默认为false

-----------------------------分割线

1.int作为局部变量没有初始化的,无法进行编译。这也体现了Java的安全性。

2.计算机中的字符本质是一个整数,在C语言中使用ASCLL表示字符,而Java中使用Unicode表示字符,因此一个字符占用两个字节,表示的字符种类更多,包括中文。

3.转义字符:

转义字符解释
\n换行
\t水平制表符
\'单引号
\''双引号
\\反斜杠

4. 还有一种特殊的符号‘+’,表示字符串的拼接。当一个‘+’表达式中存在字符串的时候,都是执行字符串的拼接行为,拼接下来必定是字符串。

5.变量的命名规则:只能包含数字、字符、下划线、$,而且不以数字开头

6.常量不能在程序运行时发生改变,final修饰的变量可以在定义时不赋初值,但是赋值后不能进行二次赋值。

7.关于强制类型转换:小类型赋给大类型会发生隐式转换;大类型若要赋给小类型必须进行强制类型转换。并且boolean类型不能和其他类型进行转换。

8.算数转换:小类型和大类型之间运算,小类型会整形提升为大类型进行运算,结果仍是大类型。

        byte a = 10;
        byte b = 20;
        //  byte c = a + b; //编译报错
        byte c = (byte)(a+b); 

两个byte类型进行运算结果不是byte类型吗??是因为计算的时候会将a和b都提升为int类型,在进行运算,得到的结果也是int。结果赋值给c会报错。 为什么要提升为int??这是因为CPU通过以4个字节为单位从内存中读取数据,为了硬件上实现方便,会进行整形提升。

9. char和short都是两个字节,但是他们不能进行相互赋值,因为他们的取值范围不同

        short s = 10;
        char c = (char)s; //报错
        System.out.println(c == s); //报错

运算符

位运算符分为以上几种:

1.算数运算符:+ - * / %
  a.首先,众所周知0不能作为除数,否则会抛出数据异常
  b.%表示取余数,不仅可以对int求余,还可以对double类型数据取余数
  c.+= -= *= /= %=    明白 a += 1 相当于 a = a+1即可
  d.自增自减运算符++、--
      a++;++a;在没有赋值的操作中效果是一样的,都是+1的效果。而在赋值的式子中就要注意啦:
      eg:

	        int a = 10;
		int b = a++;
		System.out.println(b);
		int c = ++a;
		System.out.println(c);

这个代码运行出来b是10,c是11。由此可以得出结轮:a++是先赋值后++,++a是先++后赋值。

2.关系运算符:==   !=  <  >  <=  >=
a.关系运算符返回值的都是boolean类型

3.逻辑运算符: && ||  !
a.逻辑运算符的操作数返回值都是boolean类型
b.短路原则:即对于&&,如果左侧表达式为false,则结果为false
                         对于||,如果左侧的表达式为true,则结果为true

4.位运算符:& |  ~ ^
a.表示按二进制位运算
b.& | 当操作数为boolean类型时,表示布尔运算,但是不支持短路操作,所以用&& || 还是比较好的

5.移位运算符:<<   >>  >>>
a.<<表示左移,最右侧补0;左移N位,相当于给原数字乘以2的N次方
b.>>表示右移,最左侧补符号位;右移N位,相当于给原数字除以2的N次方

6.条件运算符:表达式1 ? 表达式2:表达式3
a.若表达式1成立,执行表达式2,不成立则执行表达式3
b.即表达式1必须为boolean类型
  。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值