day02

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为移动位数)。

位移运算符在处理位操作、优化性能和实现某些算法时非常有用。

posted @   先瞄准再开枪  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示