程序员人生 网站导航

从头认识java-2.1 操作符

栏目:php教程时间:2016-05-04 15:52:37

这1章节我们来讨论1下操作符。

这里面讨论的操作符不是基础只是,而是1些操作符需要注意的点。

1.几近所有的操作符都是操作基础数据类型,=、==和!=例外,还有+=和+可以是用在String上面。下面是3个例子

package com.ray.ch01;


public class Test { public static void main(String[] args) { int a = 1 + 1; System.out.println(a); double b = 1.2 / 1.0; System.out.println(b); } }

package com.ray.ch01; public class Test { public static void main(String[] args) { A a = new A(); A a1 = new A(); System.out.println(a == a1); System.out.println(a == null); System.out.println(a != null); } } class A { { System.out.println("class A"); } }

package com.ray.ch01; public class Test { public static void main(String[] args) { String str = "abc"; System.out.println(str + "d"); str += 1; System.out.println(str); } }


对上面的str+=1,这里面的1是整形,但是它会先转成字符型,然后再进行字符相加。


2.优先级

对复杂的公式,虽然java已为我们规定好操作符的优先级,但是在使用当中常常忘掉,因此最好使用小括号括起来,这样不管优先级怎样,都可以依照原来的计算进行。


package com.ray.ch01; public class Test { public static void main(String[] args) { int a = 1, b = 2, c = 3; int d = a + b / 2 + c * 3; int e = (a + b) / (2 + c) * 3; System.out.println(d); System.out.println(e); } }

大家可以看到,上面的e和d明显是不同的数值,如果我们进行更加复杂的运算,公式加入更多的操作符,这个时候小括号就是必须的。



3.赋值

使用右侧的值赋给左侧的值,右侧的值可以是常量、变量或表达式,左侧的值是明确的已命名的变量,不能够是常量或表达式。

例如:

a=4是没有问题,但是4=a就是异常。

对基础类型,赋值就像上面的1样简单。

对对象的赋值,就是操作对象的援用,把援用赋给某个变量,当1个对象不被援用,他将会被垃圾回收器清除。


package com.ray.ch01; public class Test { public static void main(String[] args) { A a1 = new A(); System.out.println(a1); a1.id = 1; System.out.println(a1.id); A a2 = new A(); System.out.println(a2); a2.id = 2; System.out.println(a2.id); a2 = a1; System.out.println(a1); System.out.println(a1.id); System.out.println(a2); System.out.println(a2.id); } } class A { int id; }

输出:


com.ray.ch01.A@1fb8ee3
1
com.ray.ch01.A@61de33
2
com.ray.ch01.A@1fb8ee3
1
com.ray.ch01.A@1fb8ee3
1

从输出结果可以看出,a2原来所对应的对象在a2=a1以后就已消除,a2指向另外一个对象。

上面的代码引伸出1个问题,就是如果操纵对象的域,会引发混乱,这1点需要大家注意。


这1章节主要讨论操作符的1般的特性,下面将会对各种操作符进行展开。


这1章节就到这里,谢谢。

-----------------------------------

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐