从头认识java-2.1 操作符
2015-10-21 14:50
423 查看
这一章节我们来讨论一下操作符。
这里面讨论的操作符不是基础只是,而是一些操作符需要注意的点。
1.几乎所有的操作符都是操作基础数据类型,=、==和!=例外,还有+=和+可以是用在String上面。下面是三个例子
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);
}
}
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就是异常。
对于基础类型,赋值就像上面的一样简单。
对于对象的赋值,就是操作对象的引用,把引用赋给某个变量,当一个对象不被引用,他将会被垃圾回收器清除。
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.几乎所有的操作符都是操作基础数据类型,=、==和!=例外,还有+=和+可以是用在String上面。下面是三个例子
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就是异常。
对于基础类型,赋值就像上面的一样简单。
对于对象的赋值,就是操作对象的引用,把引用赋给某个变量,当一个对象不被引用,他将会被垃圾回收器清除。
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指向另一个对象。
上面的代码引申出一个问题,就是如果操纵对象的域,会引起混乱,这一点需要大家注意。
这一章节主要讨论操作符的一般的特性,下面将会对各种操作符进行展开。
这一章节就到这里,谢谢。
-----------------------------------
目录
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统