`
jaesonchen
  • 浏览: 319652 次
  • 来自: ...
社区版块
存档分类
最新评论

java运算符

 
阅读更多
public class TypeCast {

	public static void main(String[] args) {
		short i1 = 10;
		short i2 = 20;
		i1 = (short) (i1 + i2);	//必须显式cast 回short,否则编译错误
		i1 = (short) (i1 >> 2);
		i1 += i2;		//+=运算符会自动将运算结果cast为 运算符左边的类型,所以不需要显式cast
		int i3 = 100;
		i3 = (int) (i3 + 100L);	//当运算数类型比int大时,运算结果转换为较大的类型
		
        	System.out.println(new Integer(1) == 1);
        	System.out.println(new Integer(1) != 1);
        	System.out.println(new Integer(1) != 2);
        	System.out.println(new Integer(1) > 1);
        	System.out.println(new Integer(1) >= 1);
        	System.out.println(new Integer(1) < 1);
        	System.out.println(new Integer(1) <= 1);
        
        	System.out.println("=======================");
        	Integer obj = new Integer(1);
        	System.out.println(obj == new Integer(1));
        	System.out.println(obj != new Integer(1));
        
        	System.out.println(obj > new Integer(1));
        	System.out.println(obj >= new Integer(1));
        	System.out.println(obj < new Integer(1));
        	System.out.println(obj <= new Integer(1));
        
        	System.out.println("=======================");
        	System.out.println(new Boolean(null));
        	System.out.println(new Boolean(""));
        	System.out.println(new Boolean("obj"));
        	System.out.println(new Boolean("false"));
        	System.out.println(new Boolean("true"));
        	System.out.println(new Boolean("TRUE"));

        	System.out.println("=======================");
        	Integer obj1 = 1; //相当于Integer.valueOf(1)
        	Integer obj2 = Integer.valueOf(1);
        
        	System.out.println(obj1 == obj2);
        	System.out.println(obj1 != obj2);
        	System.out.println(obj1 == new Integer(1));
        
        	System.out.println(obj1 > new Integer(1));
        	System.out.println(obj1 >= new Integer(1));
        
        	System.out.println(obj1 < new Integer(1));
        	System.out.println(obj1 <= new Integer(1));
        
        	//常量赋值相当于使用Integer.valueOf(int),该方法会缓存对象实例,
        	//相同常量的多次调用返回的是同一个封箱对象。
        	//This method will always cache values in the range -128 to 127
        	Integer obj3 = 1024;
        	Integer obj4 = 1024;
        	System.out.println(obj3 == obj4);

        	System.out.println("=======================");
        	String str = null
        	System.out.println(str instanceof String);
        	//编译错误:
        	//System.out.println(new TypeCast() instanceof String);
        	//编译通过,但运行期会抛出异常ClassCastException
        	TypeCast tc = (TypeCast) new Object();
	}
}

 输出为:

true
false
true
false
true
false
true
=======================
false
true
false
true
false
true
=======================
false
false
false
false
true
true

 =======================
true
false
false
false
true
false
true
false

 =======================

false

 

     Java语言规范规定,复合赋值(E1 op= E2)等价于简单赋值(E1 = (T) ((E1) op (E2))),其中T是E1的类型。

    * 假若对基本数据类型执行任何算术或按位运算,只要它们“比int 小”(即char,byte 或者short),
      那么在正式执行运算之前,那些值会自动转换成int。这样一来,最终生成的值就是int 类型。
      当把一个int类型运算结果赋回较小的类型,就必须使用“造型”。
      此外,由于是将值赋回给较小的类型,所以可能出现信息丢失的情况。
    * 通常,表达式中最大的数据类型是决定了表达式最终结果大小的那个类型。
    * 若将一个float 值与一个double 值相乘,结果就是double;如将一个int 和一个long 值相加,则结果

       为long。

 

    * 逻辑运算符:== != 和 >  >=  <  <=
    * (1) 在其中一个运算项是基本数据类型时,自动拆箱。
    * (2) 运算项都是封箱对象时,==  != 比较对象引用, > >= < <= 会自动拆箱。

 

    * Java 的判等操作符(==和!=)在作用于对象引用时,执行的是引用ID 的比较,而不是值的比较。

       这是为了兼容5.0以前版本。
    * 判等操作符在其两个操作数中只有一个是被包装的数字类型,而另一个是原始类型时,执行的确实是

      数值比较。这种比较在5.0以前是非法的,所以不会出现不兼容。

 

    * 常量赋值相当于使用Integer.valueOf(int),该方法会缓存对象实例,相同常量的多次调用返回的是

      同一个封箱对象。  


    * Boolean的构造函数Boolean(String name)  return (name != null) && name.equalsIgnoreCase("true")

 

    * instanceof运算符:

      尽管null 对于每一个引用类型来说都是其子类型,但是instanceof 操作符被定义为在其左操作数为null

      时返回false。这被证明是实践中非常有用的行为。如果instanceof 告诉你一个对象引用是某个特定类

      型的实例,那么你就可以将其转型为该类型,并调用该类型的方法,而不用担心会抛出

      ClassCastException 或NullPointerException 异常。

      instanceof 操作符有这样的要求:如果两个操作数的类型都是类,其中一个必须是另一个的子类型。

      所以,new TypeCast() instanceof String是非法的。

 

分享到:
评论

相关推荐

    java运算符小程序

    Java运算符是编程语言中用于执行特定操作的关键符号,它们在Java程序中起着至关重要的作用,帮助我们处理数据和控制程序流程。在这个"java运算符小程序"中,我们可以探索和学习Java中的各种运算符及其用法。 1. **...

    java运算符优先级表

    非常详细的java运算符优先级表,帮助记住优先级顺序

    28.java运算符.zip

    28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符.zip28.java运算符...

    Java运算符介绍.pptx.pptx

    Java运算符是编程语言中不可或缺的部分,它们帮助程序员执行各种计算和逻辑判断。在Java中,运算符主要分为四大类:算术运算符、关系运算符、逻辑运算符和位运算符。 1. **算术运算符** - 加法运算符 (+):将两个...

    04-JAVA运算符思维导图

    JAVA运算符思维导图,便捷整理思路,算数运算符、连接运算符、赋值运算符、扩展赋值运算符、三目运算符、逻辑运算符、关系运算符

    javaJava运算符+(优先级、目数)

    Java运算符+(优先级、目数)

    java运算符与优先级

    java运算符与优先级,完善版本。 谢谢,

    Java运算符+(优先级、目数)+.doc

    Java运算符是编程中至关重要的组成部分,它们用于执行各种计算和逻辑操作。了解运算符的优先级和目数对于编写高效、准确的代码至关重要。在Java中,运算符按照其功能分为不同的类别,并且有不同的结合性和目数。 1....

    java运算符大全

    Java运算符是编程语言中用于执行特定计算或操作的符号。了解这些运算符对于编写高效、清晰的Java代码至关重要。以下是对Java运算符及其优先级的详细解释: 1. **点运算符** (.): 用于访问类的成员,如属性和方法。...

    Java运算符

    ### Java运算符详解 在Java编程语言中,运算符是一种特殊的符号,用于执行特定的计算或操作。根据给定文件中的信息,我们将深入探讨运算符的优先级、类型、转义字符、Math函数以及数据类型转换等内容。 #### ...

    Java运算符优先级

    ### Java运算符优先级详解 在Java编程语言中,了解并正确使用运算符优先级对于构建高效、可读性强的程序至关重要。虽然建议在实际开发过程中通过使用括号来明确表达式的计算顺序,而非依赖于复杂的优先级规则,但...

    Java运算符的使用

    Java运算符是编程中不可或缺的部分,它们用于执行各种计算和逻辑操作。Java提供了四大类运算符:算术运算符、位运算符、关系运算符和逻辑运算符。 1. **算术运算符**: - `+`:加法运算,可用于整数、浮点数的相加...

    java 运算符学习笔记 java 运算符学习笔记

    java 运算符学习笔记

    JAVA 运算符的基本了解与使用

    Java 运算符可以分为以下几类:算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符、三元运算符等。 1. 算术运算符 算术运算符是最基本的运算符,包括加法 (+)、减法 (-)、乘法 (*)、除法 (/)、取余 (% )...

    java运算符优先级.doc

    Java 运算符优先级和异常处理 Java 是一种面向对象的编程语言,它提供了丰富的运算符和异常处理机制,以帮助开发者更好地编写程序。在本文中,我们将详细介绍 Java 运算符的优先级和常见的异常类型,以及它们的解决...

    Java 运算符 动力节点Java学院整理

    Java运算符是编程语言中不可或缺的部分,它们用于执行各种计算、比较和逻辑操作。在Java中,运算符主要分为四大类:算数运算符、关系运算符、逻辑运算符和位运算符。 **算数运算符** 包括加(+), 减(-), 乘(*), 除(/...

    JAVA运算符.pdf

    JAVA运算符是Java编程语言中用于执行各种计算的特殊符号和字符。运算符可以是单一的符号,如加号(+),也可以是关键字,如`instanceof`。Java语言支持多种类型的运算符,主要可以分为以下几类: 1. 算术运算符:...

    java运算符优先级[整理].pdf

    Java 运算符优先级 Java 运算符优先级是指 Java 语言中各种运算符的执行优先级顺序。正确理解运算符优先级对于编写正确的 Java 程序至关重要。 以下是 Java 运算符优先级的详细说明: 1. 点运算符(.) 点运算符...

    java运算符流程控制数组基础题目

    在Java编程语言中,运算符、流程控制和数组是核心概念,它们构成了程序的基本结构。...通过解决相关的题目,开发者可以更好地掌握Java运算符、流程控制和数组的使用,从而编写出更高效、更清晰的代码。

Global site tag (gtag.js) - Google Analytics