首页 > 代码库 > java基础之操作符
java基础之操作符
一:赋值
1.对基本数据类型的赋值,int a=b; //把b的值复制给a,如果修改了a的值,b 的值不会受到影响。
2.对引用类型的赋值,
public class Text { public static void main(String[] args) { Person a=new Person(); Person b=a; //System.out.println(b.age); b.age=14; System.out.println(a.age); } } class Person { int age=15; }
输出结果:14
解: 引用a指向一个堆空间,接着b也指向这个空间,ab共用一个堆空间,当b.age=14改变时候,a也跟着改变。(String虽然也是引用,但是)
二:自增自减
- 前缀递增(递减):++i(--i) :先执行递增(递减)操作,再执行语句。
- 后缀递增(递减):i++(i--) :先执行语句,在执行递增(递减)操作。
int i=1; System.out.println(i++); i=2; System.out.println(++i);
结果:1
3
三:关系操作符
- 组成:大于(>) 小于(<) 小于等于(<=) 大于等于(>=) 等于(==) 不等于(!=)
- 结果:生成的是boolean类型的结果。
- 等于(==)和不等于(!=)适用于所有的基本类型,而其他比较符不适用于boolean类型,比如true>false 没有实际意义。
- 等于(==)和不等于(!=)比较的是对象的引用。
- 我们知道==和!=是用于比较对象的引用,但是如果我们想直接比较对象的值呢?这里可以用equlas()方法来比较,但是这个方法不适用与基本数据类型,基本数据类型用==和!=就可以比较。 注意:equals()默认的是比较引用,但是大多数类都覆盖了equals()以便比较对象的内容,如果是我们创建类中,equals()就不能比较对象的内容因为我们没有重新定义并覆盖这个方法。
public class Text { public static void main(String[] args) { String a=new String("abc"); String b=new String("abc"); System.out.println(a.equals(b)); //true a的类String覆盖了equlas()以便比较对象的内容,所以ab相等 Person a1=new Person(); Person b1=new Person(); System.out.println(a1.equals(b1)); //false 自定义类Person中没有覆盖equals(),故还是原来的equals()只能比较地址。 } } class Person { int i=15; }
结果: true
false
java基础之操作符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。