第三章 操作符(java操作符)

在最底层,java中的数据是通过使用操作符来操作的

3.1更简单的打印语句

这篇简单介绍了下静态导入的概念

import static net.mindView.util.Print.*

import+static

3.12 使用java操作符

几乎所有的操作符都只能操作“基本类型”   =     ==  != 可以操作所有对象     String类支持 +   +=

3.13 优先级

先乘除后加减  要经常使用 ()   来表明优先级

String类型 +  非String类型     但编译器看到后 会强制将非String转化为String类型

3.14 赋值

=    表示 将右边的值,把他赋值给左边

对于基本数据类型 a = b  那么b的内容就复制给a了     如果修改a  b 并不受影响

但是对于对象赋值来说  是将 b引用复制给 a     a 与 b 同时指向 同一个堆内的对象  对a b 操作会相互影响

3.4.1 二进制算法  


十进制转二进制  注意求的是余数


二进制转十进制 8*1+4*1+2*0+1*1=13



二进制小数转十进制 0.以后为负幂 0.5*1+0.25*1=0.75


3.14.2  按位运算 

1.^(亦或运算) ,针对二进制,相同的为0,不同的为1

2  ---> 0010

3  ----> 0011

结果--->0001     --->1

2.&(与运算) 针对二进制,只要有一个为0,就为0

2  ---> 0010

3  ----> 0011

结果--->0010    ----> 2

3.~(非运算)   针对二进制  一元运算符 0转1  1转0

2  ---> 0010

~  

结果--->1101   具体多少位 要看 os 系统是多少位的 32 位   2 为 0000 0000 0000 0010

                                                                                         取反为 1111  1111  1111  1101

3.14.3  移位操作符    移位方向看箭头

1.<<(向左位移)   针对二进制,转换成二进制后向左移动n位,后面用0补齐 

2  ---> 0010       2<<3   2向左移动三位(后面补三个0)

结果 --->    0010000   --->2^4 = 16

2.>>(向右位移) 针对二进制,转换成二进制后向右移动3位

2 --->0010          2>>3  2向右一定3位

结果-->0000         结果为0

这里需要注意  >>   右移 是有符号移动  若为正数 需要在最高位补0 若为负数要在最高位补1

3.>>>(无符号右移) 移动方式和 >> 一致  但是属于无符右移,最高位不管正负都只在高位补0

注意:对 char byte short 进行移位处理  在移位进行前,他们就转化成int 类型了  

并以int类型的值返回结果。只有数值的低5五位才有用。这样可以防止我们位移超过int类型的所有的位数

3.4.1 使用操作符时常犯的错

while(x=y){ // 除非 x 和 y 都是boolean 类型 否则不可能是正确的

}

3.15.1 类型转化操作符

窄转换:窄转换是指 我们将精度高(数据的位数较高)的基本类型转化为精准度低的基本类型 这样做会造成数据信息的丢失 所以java要求 进行强制转换(显示转换)    int k = 5 ;  short  f = (short)k;//显示 

扩展转换:扩展转换是指 我们将精度低(数据的位数较低)的基本类型转化为精度较高的基本类型 这样不会造成数据的丢失 所以可以使用隐式转换      int k = 5 ; long f = k;  //隐士

java允许我们将任何基本类型转换成 别的基本数据类型  boolean 除外

3.15.2 截尾和舍入

folat double 转为 int 类型时 常常会产生 截尾问题   即  4.5 --》4     4.9---》4  

这是可以使用 Math.round() 方法

Math.round(4.6)---》 5

3.15.3 提升 

当低   精度数据类型 * 高精度数据类型 会自动转化为高精度数据类型

比如 5*0.1   = 0.5   int * float = float 类型

3.16 java没有sizeof

c c++ 中 通过 sizeof() 操作可以获得 数据项被分配了多少字节数 

不同数据类型在不通机器上可能大小不一样 比如32 位的计算机 比 16位的能够保存更大的整数

所有移植对c c++程序猿颇为头疼

java不需要这些 因为 所以基本数据类型的大小是固定的

并不全 有些地方进行了省略

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355