Java instanceof 运算符的使用方法
用法:
(类型变量 instanceof 类|接口)
作用:
instanceof 操作符用于判断前面的对象是否是后面的类,或者其子类、实现类的实例。如果是则返回true 否则就返回false。
注意:
· instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系否则会引发编译错误。
一个简单的例子:
/**
* instanceof 运算符
* @author Administrator
*
*/
public class TestInstanceof {
public static void main(String[] args) {
//声明hello 时使用Object类,则hello的编译类型是Object
//Object类是所有类的父类,但hello的实际类型是String
Object hello = "Hello";
//String是Object的子类可以进行instanceof运算,返回true
System.out.println("字符串是否为object类的实例:"
+ (hello instanceof Object));
//true
System.out.println("字符串是否为String的实例:"
+ (hello instanceof String));
//false
System.out.println("字符串是否为Math类的实例:"
+ (hello instanceof Math));
//String实现了Comparable接口,所以返回true
System.out.println("字符串是否为Comparable类的实例:"
+(hello instanceof Comparable));
/**
* String 既不是Math类,也不是Math类的父类,故下面代码编译错误
*/
//String a = "hello";
//System.out.println("字符串是否为Math类的实例:"
// + (a instanceof Math));
}
}
运行结果:
字符串是否为object类的实例:true
字符串是否为String的实例:true
字符串是否为Math类的实例:false
字符串是否为Comparable类的实例:true
通常在进行强制类型转换之前,先判断前一个对象是不是后一个对象的实例,是否可以成功转换,从而保证代码的健壮性。
相关推荐
-
java中关于移位运算符的demo与总结(推荐)
首先,移位运算符有三种,其操作类型只支持:byte / short / char / int和long五种. << 左移运算符,表示将左边的操作数的二进制数据向左移动*位,移动后空缺位以0填充,多余位舍弃.(等同于乘2的n次方) >> 右移运算符,二进制数据向右移动*位,就在其二进制数据后抹掉几位?(这里还不错定,但个人理解是这样的)(等同于除2的n次方) >>> 无符号右移运算符,不管移动前最高位是0还是1,右移后左侧产生的空位部分都以0来填充. 下面我们借一个
-
java代码之谜运算符篇
从最简单的运算符加号(+)说起,加号(+)是个二元运算符--也就是说,加号只把两个数联接起来,从来不把第三个或者更多的联接起来. 因此,"1加2加3" 在计算机中被表述为: (1 + 2) + 3 // a或者 1 + (2 + 3) // b虽然我们通常写做 1 + 2 + 3,但是并不意味这它和我们数学中的 1+2+3 是等价的. 那么数学中的 1+2+3 到底表示的是 a 呢,还是 b 呢? 如果计算机的求值是左结合的,那么此表达式等价于第一种a: 如果是右结合的,那么此表达式等
-
Java运算符>、>>、>>>三者的区别
>表示大于,如:if(a>b)...结果是boolean类型 >>表示带符号右移,如:int i=15; i>>2的结果是3,移出的部分将被抛弃. 转为二进制的形式可能更好理解,0000 1111(15)右移2位的结果是0000 0011(3),0001 1010(18)右移3位的结果是0000 0011(3). >>>无符号右移: 按二进制形式把所有的数字向右移动对应巍峨位数,低位移出(舍弃),高位的空位补零.对于正数来说和带符号右移相同,对于负数来
-
Java中的位运算符、移位运算详细介绍
一.位运算 Java中有4个位运算,它们的运算规则如下: (1)按位与 (&) :两位全为1,结果为1,否则为0: (2)按位或 (|) :两位有一个为1,结果为1,否则为0: (3)按位取反(~):0 变 1, 1变0: (4)按位异或(^):两位,如果相同,结果为0:如果不同,结果为1: 注意: (1)位运算中的 符号位(最高位)也跟着变; (2)位运算符与逻辑运算符(逻辑与&&.逻辑或||.逻辑非! )有点相似.但是,逻辑运算符只能操作boolean变量 (也就是左右两边的值
-
Java中使用异或运算符实现加密字符串
通过异或运算符号与一个指定的值进行异或运算,从而改变字符串每个字符的值,这样就可以得到加密后的字符串. import java.util.Scanner; public class Encypt { public static void main(String args[]){ Scanner scan = new Scanner(System.in); System.out.println("请输入一个英文字符串或解密字符串:"); String password = scan.ne
-
Java用三元运算符判断奇数和偶数的简单实现
创建一个类,在该类的主方法中创建标准输入流的扫描器对象,提示用户输入一个整数,并通过扫描器的方法来接受这个整数,然后通过三元运算符判断该数字与2的余数,如果余数为0,说明其是偶数,否则是奇数. 复制代码 代码如下: import java.util.Scanner;public class ParityCheck { public static void main(String[] args){ System.out.println("请输入一个整数:");
-
Java 逻辑运算符中&&与&,||与|的区别
在Java的逻辑运算符中,有这么四类:&&(短路与),&,|,||(短路或). &&和&都是表示与,区别是&&只要第一个条件不满足,后面条件就不再判断.而&要对所有的条件都进行判断. 看下面的程序: public static void main(String[] args) { // TODO Auto-generated method stub if((23!=23)&&(100/0==0)){ System.ou
-
Java instanceof 运算符的使用方法
用法: (类型变量 instanceof 类|接口) 作用: instanceof 操作符用于判断前面的对象是否是后面的类,或者其子类.实现类的实例.如果是则返回true 否则就返回false. 注意: · instanceof前面的操作数的编译时类型要么与后面的类相同,要么与后面的类具有父子继承关系否则会引发编译错误. 一个简单的例子: 复制代码 代码如下: /** * instanceof 运算符 * @author Administrator * */ public class TestI
-
Java中==运算符与equals方法的区别及intern方法详解
Java中==运算符与equals方法的区别及intern方法详解 1. ==运算符与equals()方法 2. hashCode()方法的应用 3. intern()方法 /* Come from xixifeng.com Author: 习习风(StellAah) */ public class AboutString2 { public static void main(String[]arsgs) { String myName="xixifeng.com"; String
-
Java的super关键字与instanceof运算符使用方法
Java super关键字 super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类. super 可以用在子类中,通过点号(.)来获取父类的成员变量和方法.super 也可以用在子类的子类中,Java 能自动向上层类追溯. 父类行为被调用,就好象该行为是本类的行为一样,而且调用行为不必发生在父类中,它能自动向上层类追溯. super 关键字的功能: 调用父类中声明为 private 的变量. 点取已经覆盖了的方法. 作为方法名表示父类构造方法. 调用隐藏变
-
详解java==运算符和equals()方法的区别
Java语言程序中判断两个变量是否相等有两种方式:一是运用==运算符,二是运用equals方法. 1. ==运算符 对于==运算符来说,如果两个变量是基本类型的,并且是数值类型,则只要它们的值相等,就会返回true:然而如果是两个引用类型的变量,则分为两种情况:1)它们指向同一个对象,结果返回true:2)它们指向不同的对象,即使对象内容相同,结果还是返回false:下面程序示范了使用==运算符比较两个变量是否相等的结果: public class Test { public static vo
-
实例讲解JavaScript中instanceof运算符的用法
instanceof 运算符简介 在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object".ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题.instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型.与 typeof 方法不同的是,instanceof 方法要求开发者明确地确
-
深入剖析JavaScript instanceof 运算符
instanceof 运算符简介 在 JavaScript 中,判断一个变量的类型尝尝会用 typeof 运算符,在使用 typeof 运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,它都返回 "object".ECMAScript 引入了另一个 Java 运算符 instanceof 来解决这个问题.instanceof 运算符与 typeof 运算符相似,用于识别正在处理的对象的类型.与 typeof 方法不同的是,instanceof 方法要求开发者明确地确
-
基于JSON和java对象的互转方法
先说下我自己的理解,一般而言,JSON字符串要转为java对象需要自己写一个跟JSON一模一样的实体类bean,然后用bean.class作为参数传给对应的方法,实现转化成功. 上述这种方法太麻烦了.其实有一种东西叫jsonObject可以直接不用新建实体类bean,而实现转化,先说org.json.JSONObject这个JSONObject,贴上代码: import java.beans.IntrospectionException; import java.beans.Introspect
-
Java instanceof用法详解及实例代码
Java instanceof用法详解 Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法: result = object instanceof class 参数: Result:布尔类型. Object:必选项.任意对象表达式. Class:必选项.任意已定义的对象类. 说明: 如果 object 是 class 的一个实例,则 instanceof 运
-
JavaScript中instanceof运算符的用法总结
JavaScript中instanceof运算符是返回一个 Boolean 值,指出对象是否是特定类的一个实例. 使用方法:result = object instanceof class其中result是必选项.任意变量.object是必选项.任意对象表达式.class是必选项.任意已定义的对象类. 说明如果 object 是 class 的一个实例,则 instanceof 运算符返回 true.如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false.
-
JavaScript的instanceof运算符学习教程
语法 object instanceof constructor 参数 object: 要检测的对象. constructor: 某个构造函数 描述: instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上. // 定义构造函数 function C(){} function D(){} var o = new C(); // true,因为 Object.getPrototypeOf(o) === C.prototype o
随机推荐
- Lesson01_04 格式标签与文本标签
- VBS教程:函数-FormatDateTime 函数
- 虚拟机安装linux系统无法上网的解决方法
- PHP基于新浪IP库获取IP详细地址的方法
- js代码实现随机颜色的小方块
- MYSQL建立外键失败几种情况记录Can't create table不能创建表
- 优化mysql的limit offset的例子
- PHP打开和关闭文件操作函数总结
- 用JavaScript 判断用户使用的是 IE6 还是 IE7
- 全面了解Java中的内部类和匿名类
- Chkntfs 显示或指定在启动计算机时计划的自动系统检查是否在 FAT、FAT32 或者 NTFS 卷上运行。
- 举例详解JavaScript中Promise的使用
- JQuery调用WebServices的方法和4个实例
- JQuery slideshow的一个小问题(如何发现及解决过程)
- Javascript浅谈之引用类型
- JS表的模拟方法
- Java插入修改删除数据库数据的基本方法
- AndroidStudio 如何使用aar详解
- C#中面向对象编程机制之多态学习笔记
- javascript仿126邮箱TAB切换效果