5.7-5.8内容消化总结

本文深入解析Java中的变量类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符及位运算符,重点讲解了变量定义规则、强转与自动转换实例,并通过面试题和练习题来巩固理解。

比较重要

  • 变量的转换类型
  • 算术运算符
  • 赋值运算符

特别重要

  • 关系运算符
  • 逻辑运算符
  • 位运算符
  • 三元(三目运算符)


变量相关

定义变量的注意事项

  1. java语言不能重复定义同一变量

    例如:int a = 3;

            int a = 4;

            这样的语法是错误的

  2. 代码书写要规范,定义完变量写了分号,立马另起一行重新定义变量或者继续代码
    (有的面试题是可以的)
  3. 目前定义的变量都在main当中,方法中定义的变量都称作"局部变量"
    局部变量在使用前必须初始化,必须要有初始化值!!

       

 强转以及自动转换

/*
面试题:
		第一题:
		byte b1=10,b2=20,b;
		b=b1+b2;
		b=10+20;
		哪句是编译失败的呢?为什么呢?
		
		
	考点:
		1)Java隐式类型转换
		2)Java强转类型转换
		3)变量相加和常量相加的区别
		
		变量相加:要考虑这个两个变量的数据类型,
		b =b1 +b2 ; b1和b2都是byte类型,当前参与运算,b1和b2先提升为int,结果应该int类型
		而b是byte类型,无法接收int类型的结果,必须强制类型转换
		
		常量相加:先相加,然后看计算结果是否在固定的类型范围内,在范围内就直接赋值了!
	
*/

在上述的案例中,b1以及b2都是byte 类型,占用一个字节,参与运算时,自动提升为int类型

b = b1 + b2;

上述代码右边进行运算之后,结果需要被byte类型的变量接手,会造成数据损失,长字节变成短字节,所以要进行强转,也就是显式转换

应当更改为

b = (byte )(b1 + b2);

常量相加的逻辑:先相加,看运算结果是否在类型的范围之内,如果未超范围,直接赋值,不会报错.

作业题

byte  x = 129; 是否编译通过,结果是多少,计算过程;

byte x = 129 ,编译不正确,超出了类型的取值范围

强制转换后赋值,计算方法如下:

byte x = (byte)129;

第一步,先写出129的二进制值

(00000000    00000000    00000000 )   100000001      原码

正数原码反码补码相

第二步,进行数据截取,红色部分丢弃

   截取后的补码:              100000001

                                      最高符号位                     数值位

                                             1                            0000001

反码                                      1                            0000000

原码                                      1                            1111111


结果                         -                                      64+32+16+8+4+2+1

最终得到的结果是-127

练习题

请输出x的值,写计算过程

byte x = (byte)300;

写出300的二进制数

  00000000            00000000            00000001        00101100

原码,反码,补码相同,截取补码进行计算

  (00000000            00000000            00000001)        00101100

截取后补码:          00101100

最高符号位                           数值位

     0                                     0101100              补码

     0                                     0101100              反码

      0                                    0101100              原码


计算结果:         32+8+4=44           

class Change3{
	
	public static void main(String[] args){
		
		
		
		byte x = (byte)300;
		System.out.println(x) ;
	}
}

输出结果:   

算数运算符

  1.  基本算术运算符:+,-,*,/,%(模),求余数
  2.   扩展的算术运算符:++或者--

注意事项:/:在Java语言中默认取整,

比如

        int a = 3 ;
        int b = 4 ;  

System.out.println(a/b) ;

其结果是 0  ,默认取整.

但是,如果参与数据计算有小数.提升double类型

赋值运算符

基本赋值运算符 =

        将等号右边的值赋值给=左边的变量

        扩展的赋值运算符:

       +=        ,-=,        *=,        /=,        %=

举例:%=

class Number{
	
	public static void main(String[] args){
		
		int a = 100 ;
		a %= 30 ;  //都是int类型 等价于 int a = a%200 ;
		System.out.println("a:"+a) ;
	}
}

结果输出:a为10

关系运算符(比较运算符)

注意,关系运算符输出结果是 ture  or  false

    <,  <=,         >,      >=,          ==,    !=(非等于,真变假,假变真)

步骤:

  1. 定义变量
  2. 直接输出结果      或者      使用布尔类型变量接受结果

逻辑运算符

项目逻辑运算符扩展的逻辑运算符
与 &逻辑单与&(并列关系(交集),有false,则false)逻辑双与&&(有false,则false,有短路效果)
或 |逻辑单或|(或的关系(并集),有true,则true)逻辑双或||(有true,则true!有短路效果)
异或^逻辑异或^(相同则为false,不同则为true)/
非!逻辑非!(非true,则false;非false,则true;)/

位运算符(比较记忆)

注意:

逻辑运算符用于连接布尔型表达式

位运算是直接对二进制进行运算。

左移,右移,无符号右移

  <<   相当于乘以2的多少次幂。

 >>   相当于除以2的多少次幂。

 >>>被移位二进制最高位无论是0或者是1,空缺位都用0补。

当遇到 `ncurses-libs-5.7-4.20090207.el6.i686` 安装时因 `ncurses-base` 版本不匹配(需要 5.7 - 4.20090207.el6,已安装 5.9 - 14.20130511.el7_4)的问题,可以考虑以下几种解决方法: ### 手动安装匹配版本的 ncurses-base 在官方的 CentOS 6 软件源或者其他可靠的镜像源中找到 `ncurses-base-5.7-4.20090207.el6` 这个版本的软件包,然后进行手动安装。可以使用以下命令(假设软件包文件名为 `ncurses-base-5.7-4.20090207.el6.i686.rpm`): ```bash rpm -ivh ncurses-base-5.7-4.20090207.el6.i686.rpm ``` 之后再尝试安装 `ncurses-libs-5.7-4.20090207.el6.i686`。 ### 使用 --nodeps 选项强制安装 如果确定不安装匹配版本的 `ncurses-base` 不会对系统造成严重影响,可以使用 `--nodeps` 选项强制安装 `ncurses-libs-5.7-4.20090207.el6.i686`。但这种方法存在风险,因为可能会导致软件运行异常。命令如下: ```bash rpm -ivh --nodeps ncurses-libs-5.7-4.20090207.el6.i686.rpm ``` ### 创建本地源并使用 yum 安装 将匹配版本的 `ncurses-base` 和 `ncurses-libs` 软件包放到一个目录中,创建本地 yum 源。然后使用 yum 进行安装,yum 会自动处理依赖关系。以下是简单的步骤: 1. 创建一个目录用于存放软件包: ```bash mkdir /localrepo cp ncurses-base-5.7-4.20090207.el6.i686.rpm ncurses-libs-5.7-4.20090207.el6.i686.rpm /localrepo ``` 2. 安装 `createrepo` 工具: ```bash yum install createrepo ``` 3. 创建本地源的元数据: ```bash createrepo /localrepo ``` 4. 创建一个新的 yum 源配置文件,例如 `/etc/yum.repos.d/local.repo`,内容如下: ```ini [local] name=Local Repository baseurl=file:///localrepo enabled=1 gpgcheck=0 ``` 5. 使用 yum 安装软件包: ```bash yum install ncurses-libs-5.7-4.20090207.el6.i686 ``` ### 使用容器或虚拟机 如果上述方法都不可行,可以考虑在一个运行 CentOS 6 的容器或者虚拟机中安装 `ncurses-libs-5.7-4.20090207.el6.i686`,这样可以避免版本不兼容的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值