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

四、逻辑操作符

1.组成

  &&(短路与)   ||(短路或)  (非) &  |

2.应用范围

  与或非只可适用于布尔值,!flag  中flas只能是true或者false,int a=true; 这种表达方式是错误的

原文地址:https://www.cnblogs.com/shyroke/p/6279978.html