重温经典《Thinking in java》第四版之第三章 操作符(十五)

简介: 重温经典《Thinking in java》第四版之第三章 操作符(十五)

下面3.2 使用Java操作符讲到了几个操作符,一般应用于基本类型,有些可以应用于字符串类型。比如+(加号/正号)、-(减号/负号)、*(乘号)、/(除号)、=(赋值号)、==(等于)、!=(不等于)、+=(加等)、-=(减等)等等。把上面的操作符作用于操作数,就可以生成新的值。

当超过一个操作符作用域操作数时,就涉及到顺序问题,这就是3.3 优先级要讲的内容。最简单的就是数学上的四则运算,先乘除后加减。如果想按照自己的顺序意愿执行操作符,最好的方式就是加括号,括号里的先执行。

publicstaticvoidmain(String[] args) { 
intx=1, y=2, z=3; 
inta=x+y-2/2+z; // (1) intb=x+ (y-2)/(2+z); // (2) System.out.println("a = "+a+" b = "+b); 
} 

/* Output:

a = 5 b = 1

*/

下面重点讲解一下+应用于字符串的情况,如果两个字符串之间用+,表示把两个字符串拼在一起;如果将一个基本类型和一个字符串用+表示把基本类型转换成字符串然后跟字符串拼接在一起。

System.out.println("Hello, it’s: "+"asasa");
System.out.println(5+"a");
System.out.println("b"+6);b"+

/*Hello, it’s: asasa

5a

b6*/

3.4 赋值之前讲到对象的时候提到过,他的意思是“取右边的值,把它复制给左边”,右边可以使任何常数、变量或者表达式;左边是一个明确的变量名。例如:

int a = 4;

基本类型的赋值很好理解,下面重点技能一下对象引用的赋值,简单的描述一下就是如果有两个相同类型的对象,把其中一个对象赋值给另一个对象,那就变成了一个对象了。怎么理解呢?看例子:

importstaticnet.mindview.util.Print.*; 
classTank { 
intlevel; 
} 
publicclassAssignment { 
publicstaticvoidmain(String[] args) { 
Tankt1=newTank(); 
Tankt2=newTank(); 
t1.level=9; 
t2.level=47; 
print("1: t1.level: "+t1.level+", t2.level: "+t2.level); 
t1=t2; 
print("2: t1.level: "+t1.level+", t2.level: "+t2.level); 
t1.level=27; 
print("3: t1.level: "+t1.level+", t2.level: "+t2.level); 
    } 
}

/* Output:

1: t1.level: 9, t2.level: 47

2: t1.level: 47, t2.level: 47

3: t1.level: 27, t2.level: 27

*///:~

刚开始创建了两个不同的对象t1和t2,本来对他们的字段level赋值了不一样的值,在把t2赋值给t1以后,t1和t2就变成了同一个对象,不管对谁的level做修改,他们都是保持一致的。同一个对象是指t1和t2两个对象的引用覆盖成t1的了,执行t1=t2以后,t2没了,你还可以理解为t2的内存不在了。如果想保持独立怎么办呢?你就针对具体的字段赋值:

t1.level = t2.level;

这就让t1和t2两个对象独立了,这点需要大家格外的留心。

目录
相关文章
|
2月前
|
Java 编译器
Java“操作符 ... 不能应用于 x”解决
当Java编译器报错“操作符 ... 不能应用于 x”时,通常是因为你尝试对不支持该操作符的数据类型执行了操作。解决方法包括:确保数据类型兼容、使用正确的类型转换或选择合适的方法。检查代码中的变量类型和操作符使用是否正确。
47 4
|
7月前
|
设计模式 Java 数据库连接
【重温设计模式】代理模式及其Java示例
【重温设计模式】代理模式及其Java示例
|
7月前
|
设计模式 Java 数据库连接
【重温设计模式】代理模式及其Java示例
【重温设计模式】代理模式及其Java示例
63 2
|
6月前
|
缓存 并行计算 Java
重温JAVA线程池精髓:Executor、ExecutorService及Executors的源码剖析与应用指南
重温JAVA线程池精髓:Executor、ExecutorService及Executors的源码剖析与应用指南
|
7月前
|
存储 Java 编译器
Java基础教程(4)-Java中的操作符
【4月更文挑战第4天】Java中的String是常用类,字符串是不可变对象,用双引号表示。String对象在编译期长度受限于65535,运行期不超过Int范围。字符串方法如length()、substring()、replace()、equals()等提供了多种操作。可变字符串可使用StringBuffer或StringBuilder。String对象通过字符串池优化内存,池中已有相同内容字符串则返回其引用。
|
7月前
|
设计模式 算法 Java
重温经典《Thinking in java》第四版之第九章 接口(四十七)
重温经典《Thinking in java》第四版之第九章 接口(四十七)
53 0
|
7月前
|
安全 Java 程序员
重温经典《Thinking in java》第四版之第八章 多态(四十五)
重温经典《Thinking in java》第四版之第八章 多态(四十五)
56 1
|
7月前
|
存储 设计模式 缓存
Java instanceof操作符:类型检查的必备工具
Java instanceof操作符:类型检查的必备工具
97 0
|
7月前
|
Java 编译器 C++
重温经典《Thinking in java》第四版之第九章 接口(四十六)
重温经典《Thinking in java》第四版之第九章 接口(四十六)
43 0