java虚拟机逻辑运算处理机制

public static void main(String[] args) 
	{
		SocketChannel sc=null;
		try {
			sc=SocketChannel.open(new InetSocketAddress("localhost", 8080));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
		}
		
		// ||
		System.out.println(!(sc==null ||  sc.isConnected()));
		System.out.println(!(sc.isConnected() ||  sc==null));
		
		System.out.println(sc!=null &&  sc.isConnected());
		System.out.println(!(sc.isConnected() ||  sc==null));
		
		//System.out.println(   sc.isConnected());
	}

这可你可以搜搜网上关于&&与& ||与|的区别

 

 

如果使用|则会在前一行抛空指针

 

| & 这个肯定会抛

 

这个是算术运算,不是逻辑运算

 

 

位运算

 

&& ||  虚拟机肯定处理了

 

&&  按顺序找  false

||  按顺序    true

 

那么后面的,就不处理了

 

有了这个总结就清晰了

你可能感兴趣的:(JAVA虚拟机)