一、获取类的字节码的三种方法:
  

  1.使用Class.class

    Class<?> c1=String.class;

  2.使用实例.getClass()

    String s=new String("1"); Class<?> c2=s.getClass();

  3.使用Class.forName("类全名");

    Class<?> c3 = Class.forName("java.lang.String");

二、判断字节码是不是基本类型

		//判断是不是基本类型
System.out.println(c1.isPrimitive());//false

三、判断是不是数组:

//判断是不是数组 System.out.println(String[].class.isArray());//true

四、判断基本类型的详细类型

// 判断是不是int 基本类型 System.out.println(int.class==Integer.TYPE);

完整代码

 package cn.lonecloud.Test;

 import org.junit.Test;

 public class ClassTest {

     @Test
public void ClassTest() throws ClassNotFoundException{
//获取类的字节码的三种方法:
//1.使用Class.class
Class<?> c1=String.class;
// 2.使用实例.getClass()
String s=new String("1");
Class<?> c2=s.getClass();
// 3.使用Class.forName("类全名");
Class<?> c3 = Class.forName("java.lang.String");
System.out.println(c1==c2);//true
System.out.println(c2==c3);//true
System.out.println(c1==c3);//true
// 获取基本类型的字节码
System.out.println(int.class);//int
//基本类型的字节码和其包装类是不一样的
System.out.println(Integer.class==int.class);//false
//判断是不是基本类型
System.out.println(c1.isPrimitive());//false
//判断是不是数组
System.out.println(String[].class.isArray());//true
// 判断是不是int 基本类型
System.out.println(int.class==Integer.TYPE);
}
}

Java反射获取字节码以及判断类型的更多相关文章

  1. 反射概述和反射获取字节码Class对象的三种方式

    反射:框架设计的灵魂 框架:半成品软件.可以在框架的基础上进行软件开发,简化变法 反射:将类的各个组成部分封装为其他对象,这就是反射机制 好处: 1.可以在程序运行的过程中操作这些对象. 2.可以解耦 ...

  2. java利用反射获取类的属性及类型

    java利用反射获取类的属性及类型. import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map ...

  3. Java虚拟机--虚拟机字节码执行引擎

    Java虚拟机--虚拟机字节码执行引擎 所有的Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果. 运行时栈帧结构 用于支持虚拟机进行方法调用和方 ...

  4. Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别

    Java反射获取对象成员属性,getFields()与getDeclaredFields()方法的区别 ​ 在工作中遇到一个问题,就是你需要去判断某个字符串是不是对象的某个成员属性名,然后根据判断结果 ...

  5. 深入浅出Java探针技术1--基于java agent的字节码增强案例

    Java agent又叫做Java 探针,本文将从以下四个问题出发来深入浅出了解下Java agent 一.什么是java agent? Java agent是在JDK1.5引入的,是一种可以动态修改 ...

  6. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

  7. java编译后字节码解析

    java编译后字节码解析 参考网摘: https://my.oschina.net/indestiny/blog/194260

  8. jbe 可以用来修改Java class的字节码,配合jd-gui 使用

    jbe  可以用来修改Java class的字节码,配合jd-gui 使用

  9. java反射获取类的类名、属性名、属性类型、方法、执行方法、构造函数

    public class Demo02 { @SuppressWarnings("all") public static void main(String[] args) thro ...

随机推荐

  1. Linuxc - gdb调试程序

    指针实现变量交换值 #include <stdio.h> void change(int *a,int *b) { int tmp = *a; *a = *b;// 将指针a所在地址的值, ...

  2. 自定义jstl fn函数fns

    1.引入函数声明: jsp页面需要引入自定义fns函数声明:<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld&q ...

  3. JSTL与EL的区别

    JSTL JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持J ...

  4. Windows 性能搜集【perfmon】

    为方便问题发生后,问题原因的分析排查,我们可以在服务器中事先开启logman功能搜集服务器的性能数据,方便故障发生后,问题原因的分析排查 Windows服务器部署Permon性能搜集器: 1.使用管理 ...

  5. 转-Web Service中三种发送接受协议SOAP、http get、http post

    原文链接:web服务中三种发送接受协议SOAP/HTTP GET/HTTP POST 一.web服务中三种发送接受协议SOAP/HTTP GET/HTTP POST 在web服务中,有三种可供选择的发 ...

  6. ORACLE SQL脚本能否修改字段名称?

    在看到标题时,你先想想:在ORACLE中能否修改一个表的某个字段名呢?如果能的话,你是否还记得SQL脚本如何写的呢,呵呵,写这个的目的是因为在论坛上看见许多信誓旦旦的说ORACLE中不能修改字段名称, ...

  7. java 中的instanceof

    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...

  8. mysql与nagios的结合使用

    一. 对mysql建库建表,并测试数据 基本信息:库名:nh_nagios表名:nagios_alerts [root@nhserver2 ~]# mysql -u root -pEnter pass ...

  9. 【转】国际GNSS服务组织IGS

    国际GNSS服务组织The International GNSS Service,简称IGS,前身为国际GPS服务组织.IGS提供的高质量数据和产品被用于地球科学研究等多个领域. IGS组织由卫星跟踪 ...

  10. Eclipse使用EGit,commit之后仍显示NO HEAD的解决方法

    由于以前做的项目一直用的都是svn,想试一下git尝尝鲜,遇见点问题.记录下来防止以后再出现这种情况,同时希望能帮助到和我一样的初学者. 问题描述: 右键项目-->team-->commi ...