Chapter 3 Operators

Using Java operators

1.Almost all operators work only with primitives.
2.The exceptions are ‘=‘, ‘==‘ and ‘!=‘, which work with all objects (and are a point of confusion for objects).
3.In addition, the String class supports ‘+’ and ‘+’

Assignment

Assignment is performed with the operator =. It means “Take the value of the right-hand side (often called the rvalue) and copy it into the left-hand side (often called the lvalue)”

Aliasing

this kind of code may occur aliasing:

Tank t1 = new Tank(); Tank t2 = new Tank(); 
t1.level = 9; 
t2.level = 47;
t1 = t2;
t1.level = 27

t2 will be changed to 27 too, cause t1 and t2 both contain the same reference which is point to the same object.

if you don't want aliasing in your project, just say

t1.level = t2.level

This retains the two separate objects instead of discarding one and tying t1 and t2 to the same object.

Auto increment and decrement

Prefix Versions:
For pre-increment and pre-decrement (i.e., ++a or --a),the operation is performed and the value is produced.

postfix Version:
For post-increment and post-decrement (i.e., a++ or a--), the value is produced, then the operation is performed.

Relation Operators

== and !=

The operators == and != compare object references, not the values.

equal()

The default behavior of equals( ) is to compare references. So unless you override equals( ) in your new class you won’t get the desired behavior. But most of the Java library classes implement equals( ) so that it compares the contents of objects instead of their references.

Logical Operators

You can apply AND, OR, or NOT to boolean values only. You can’t use a non-boolean as if it were a boolean in a logical expression like

print("(i < 10) || (j < 10) is " + ((i < 10) || (j < 10)) );

Exponential notation

e would mean “ten to the power” in Java

Bitewise operator

Bitwise operators can be combined with the = sign to unite the operation and assignment: &=, |= and ^= are all legitimate. (Since ~ is a unary operator, it cannot be combined with
the = sign.)

The boolean type is treated as a one-bit value, so it is somewhat different. You can perform a bitwise AND, OR, and XOR, but you can’t perform a bitwise NOT (presumably to prevent confusion with the logical NOT).

Ternary if-else operator

The expression is of the form:

boolean-exp ? value0 : value1

If boolean-exp evaluates to true, value0 is evaluated,and its result becomes the value produced by the operator. If boolean-exp is false, value1 is evaluated and its result becomes
the value produced by the operator.

String Operator + and +=

The + and += operators can be used to concatenate strings.

If an expression begins with a String, then all operands that follow must be Strings (remember that the compiler automatically turns a double-quoted sequence of characters into a String):

When you want to use + to connect the string, be sure that the first element is a string or a sequence of characters being double-quoted.

Casting operators

In narrowing conversion (that is, when you go from a data type that can hold more information to one that doesn’t hold as much), you run the risk of losing information.

In widening conversion the new type will more than hold the information from the old type so that no information is ever lost.

Any primitive type can be casted to any other primitive type except boolean which doesn’t allow any casting at all. Class types do not allow casting. To convert one to the other, there must be special methods.

Truncation and rounding

Casting from a float or double to an integral value always truncates the number.
If instead you want the result to be rounded, use the round( ) methods in
java.lang.Math:

just like:

double above = 0.7; 
float fabove = 0.7f; 
print("Math.round(above): " + Math.round(above)); 
print("Math.round(fabove): " + Math.round(fabove));

Java has no "sizeof"

Java does not need a sizeof( ) operator because all the data types are the same size on all machines. You do not need to think about portability on this level—it is designed into the language.

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

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,317评论 0 10
  • 1 意外养了猫,左眼不停地跳 在此之前我遇到的缘份可能只是缘到了,而份量不够。试问: 你们谁有过左眼跳3天的经历?...
    媛缘圆阅读 383评论 0 3
  • 这场冷空气还真是突然,今天出门的时候看到对门邻居都穿上了羽绒服。昨天还穿短袖啊…… 上午的时候贾先生带妈妈去医...
    薇薇安_b57f阅读 272评论 0 0
  • 批判性思维的定义是什么? 批判性思维就是在充分理解的基础上,积极主动地以高严的标准来自觉清晰地审查和监控我思维的诸...
    毛小五阅读 251评论 0 1
  • 6月2号张秀宝日精进:因为家里的原因没有赶上月会,今天去医院检查,太差了,挂完号没有引导去哪检查,询问之后给支的团...
    京心达张秀宝阅读 221评论 0 0