Java第二天
变量与数据类型
Java是一门强类型语言,每种数据都定义了明确的数据类型。不同的数据类型在内存中占用不同大小的空间。
变量:指的是在java程序运行过程中,其值可以发生改变的量
定义一个变量的语句定义格式:
数据类型 变量名 = 初始化值;
数据类型:
基本数据类型:
整数类型: 所占的字节数 可表示的范围
byte 1 -2^7 ~ 2^7-1
short 2 -2^15 ~ 2^15-1
int 4 -2^32 ~ 2^32-1
long 8 -2^63 ~ 2^63-1
小数类型:
float 4
double 8
布尔类型:
boolean 1
字符类型:
char 根据具体的编码来定,不同的编码下,java中一个字符所占的字节数是不同的
引用数据类型:
使用变量的注意事项:
1、变量要进行初始化赋值,才可以进行使用
2、在同一作用域下,变量名不能重复,可以大小写不一样,严格区分大小写的。
3、java中整数默认是int类型,要想定义一个long类型的变量,需要在值的末尾加上L或者l,推荐使用L
4、java中小数默认是double类型,要想定义一个float类型的变量,需要在值的末尾加上F或者f,推荐使用F
在java中,变量参与运算的时候,会先自动提升数据类型
自动数据类型转换:
byte,short,char -> int -> long -> float -> double
强制数据类型转换:
语句定义格式:
目标数据类型 变量名 = (目标数据类型)(要转型的值或表达式)
注意:今后尽量不要用,可能会损失精度。
补码
计算机中的数据都是采用补码进行运算的
ASCII码
注意:
1、+ 号两边若都没有字符串,这个就是最普通的算数加法运算
2、若有字符参与算数运算的话,java虚拟机会将该字符所对应的ASCII码表中的数值进行转换
记住三个特殊的字符对应的ASCII码值:
'0' - 48
'A' - 65
'a' - 97
3、同级别优先级的符号,从左向右进行运算
4、+ 号两边若任意一边是字符串,而是做字符串的左右拼接操作,拼接结束后是一个新的字符串
运算符
Java提供了丰富的运算符,包括算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和三目运算符。
算术运算符
+:加法、正数、字符串连接
-:减法
*:乘法
/:除法,需要注意整数除法只能得到整数结果
%:求余
赋值运算符
=
+=、-=、*=、/=、%=
关系运算符
==、!=:等于、不等于
、<、>=、<=:大于、小于、大于等于、小于等于
逻辑运算符
&、|:逻辑与、逻辑或
&&、||:短路与、短路或
^:逻辑异或
位运算符
<<、>>、>>>:左移、右移、无符号右移
&、|、^:位与、位或、位异或
~:位取反
三目运算符
(条件) ? 表达式1 : 表达式2
条件语句
Java提供了if和switch两种选择结构语句。
if语句
单分支:if (条件)
双分支:if (条件) {} else {}
多分支:if (条件1) {} else if (条件2) {} else {}
switch语句
基于表达式的值进行匹配,可以匹配整数、字符、字符串或枚举。
位运算符
在Java中,位移运算符是用来对整数类型的数据(如byte、short、int、long)进行二进制位操作的。位移运算符包括左移(<<
)、右移(>>
)和无符号右移(>>>
)。下面将分别介绍这三种位移运算符的差异、使用方法和具体案例。
左移(<<
)
差异:左移运算符将操作数的二进制表示向左移动指定的位数,右侧空出的位补0。
使用方法:<<
后面跟的数字表示要向左移动的位数。
案例:
int num = 5; // 二进制表示为 101
int result = num << 2; // 将 num 向左移动 2 位,变为 101000,即 40
System.out.println(result); // 输出:40
右移(>>
)
差异:右移运算符将操作数的二进制表示向右移动指定的位数,左侧空出的位使用符号位填充(即保留符号位)。
使用方法:>>
后面跟的数字表示要向右移动的位数。
案例:
int num = -5; // 二进制表示为 11111111111111111111111111111011(32位补码表示)
int result = num >> 2; // 将 num 向右移动 2 位,变为 11111111111111111111111111111101,即 -2
System.out.println(result); // 输出:-2
无符号右移(>>>
)
差异:无符号右移运算符将操作数的二进制表示向右移动指定的位数,左侧空出的位无论符号位是什么都补0。这种移动方式用于无符号数或正数,对于负数,其效果可能与右移不同。
使用方法:>>>
后面跟的数字表示要向右移动的位数。
案例:
int num = -5; // 同上,二进制表示为 11111111111111111111111111111011
int result = num >>> 2; // 将 num 向右移动 2 位,左侧空位补0,变为 11111111111111111111111111111111,即 1073741821
System.out.println(result); // 输出:1073741821
总结
- 左移(
<<
):向左移动,右侧补0,相当于乘以2的n次方(n为移动位数)。 - 右移(
>>
):向右移动,左侧补符号位,相当于除以2的n次方并向下取整(n为移动位数)。 - 无符号右移(
>>>
):向右移动,左侧补0,适用于无符号数,相当于除以2的n次方(n为移动位数)。
位移运算符在处理位操作、优化性能和实现某些算法时非常有用。
标签:右移,int,day02,数据类型,运算符,num,移动 From: https://www.cnblogs.com/flxf/p/18421422