操作符 柔光的暖阳◎ 2022-08-21 04:49 211阅读 0赞 ## 赋值 ## Data a = new Data(); Data b = new Data(); b = a; > 这里的赋值是把**a的引用赋给b**,a没有了引用会被垃圾回收器自动清理。 ### 1.方法调用中的别名问题 ### 把除基本类型(int, double, float…)外的对象(包括数组)传递给方法,**则方法可以修改该对象**,因为传递给方法的是这个对象的**引用**。但是基本类型的话不行。 ## 测试对象的等价性 ## Integer n1 = new Integer(1); Integer n2 = new Integer(1); n1 == n2 ? //false n1 != n2 ? //true > n1,n2是两个对象的引用。如果要比较的话,应该用n1.equals(n2);**但是这个equals方法并不适用于基本类型** class MyData{ int a; } MyData data1 = new Mydata(); data1.a = 1; MyData data2 = new Mydata(); data2.a = 1; data1.equals(data2); //false 因为equals(object类的方法)方法默认的是**比较引用**,除非在自己的新类中重写equals方法,才能比较值。 ## 移位运算符 ## * **原码** * **反码** 除符号位以外,各位取反 * **补码** 反码+1 * **移码** 对补码的符号位取反 * **阶码** 在机器中表示一个浮点数时需要给出指数,这个指数用整数形式表示,这个整数叫做阶码,阶码指明了小数点在数据中的位置。 #### 计算机中浮点数的表示: #### IEEE754标准 ![摘自《计算机组成原理》][20160316141120853] 32位浮点数中,S是符号位,占1位,S=0表示正数,S=1表示负数。M是尾数,占23位。E是阶码,占8位,阶符采用隐含方式,即采用移码方法来表示正负指数。采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127; > 一个规格化的32位浮点数x的真值为: x = (-1)^S \* (1.M) \* 2^(E-127) 64位浮点数中符号位1位,阶码域11位,尾数域52位,指数偏移值是1023。 > 一个规格化的64位浮点数x的真值为: x = (-1)^S \* (1.M) \* 2^(E-1023) 其中尾数域所表示的值是1.M。由于规格化的浮点数的尾数域最左位(最高有效位)总是1,故这一位经常不予存储。于是23位字段可以存储24位有效数。 移位运算符只能操作整数。 在java中(c/c++也是)如int等存的是数据的**补码**形式。 “<<”左移运算,能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0)。 “>>”有符号的右移运算: 1. 符号为正,则在最高位插入0 2. 符号为负,则在最高位插入1 “>>>”无符号的右移运算:无论正负,都在最高位插入0;(c/c++中没有) 在c/c++中 true的值是1,false的值是0,if/while等的执行条件是非0,但是在java中boolean类型无法转换为int类型,if/while的条件必须是boolean类型的值。所以不会出现像if(a=1)这样的错误。 ## 类型转换操作符 ## #### 1.截尾与舍入 #### 在java中,如果将浮点数,转换为整数,如 int a = (int)2.5; 总会截尾,只留下整数部分。若想用四舍五入的话,需要用到Math.round()方法。 [20160316141120853]: /images/20220731/46dca1037f4b4fd4a0ecd220e97db717.png
相关 in 操作符 IN 操作符 IN 操作符允许我们在 WHERE 子句中规定多个值。 SQL IN 语法 SELECT column_name(s) FROM t 桃扇骨/ 2022年12月31日 15:26/ 0 赞/ 141 阅读
相关 操作符 赋值 Data a = new Data(); Data b = new Data(); b = a; > 这里的赋值是把a的引用赋给b,a没有 柔光的暖阳◎/ 2022年08月21日 04:49/ 0 赞/ 212 阅读
相关 移位操作符 移位操作符 人家总结挺好: 位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对 今天药忘吃喽~/ 2022年08月07日 05:46/ 0 赞/ 220 阅读
相关 new操作符 1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。 2、属性和方法被加入到 this 引用的对象中。 3、新创建 男娘i/ 2022年07月15日 09:22/ 0 赞/ 224 阅读
相关 位操作符 \-------------------用异或操作符实现两个整数数值的交换 int a = 1; int b = 2; a ^= b ^= a ^= b;//该 男娘i/ 2022年06月14日 10:06/ 0 赞/ 212 阅读
相关 Java操作符 几乎所有操作符都只能操作基本类型,例外的操作符是=、==和!=,这几个操作符能操作所有对象。另外String支持+和+=。 将一个对象引用赋值给另一个对象引用 拼搏现实的明天。/ 2021年12月16日 16:43/ 0 赞/ 285 阅读
相关 管道操作符 > 本质上来说,管道操作符是函数链式调用的语法糖。 语法 expression |> function 一般用法 // 传统语法 约定不等于承诺〃/ 2021年09月18日 23:32/ 0 赞/ 438 阅读
相关 Java 操作符 重新再来看(总感觉第一次看)《java编程思想》的话,还是有很多的收获,比如这篇Java 操作符。 一、算术操作符 ①、Random public sta 落日映苍穹つ/ 2021年09月10日 16:58/ 0 赞/ 426 阅读
相关 位运算操作符、位操作符详解 文章目录 一、二进制位 二、移位操作符 1.左移操作符 << 2.右移操作符 >> (1)算术右移 柔情只为你懂/ 2021年09月07日 06:05/ 0 赞/ 565 阅读
还没有评论,来说两句吧...