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

  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. linux 巨页使用测试以及勘误1

    linux使用hugetlbfs的方式来支持巨页,也成为大页. 网上看到有人说巨页不支持read,和write调用,只支持mmap,但是看3.10内核代码的时候发现: const struct fil ...

  2. PL/SQL FAQ in installation "make sure you have the 32 bits Oracle client installed" and "Database character set(AL32UTF8) and Client character set (GBK) are different"

    requirement : connecting to remote oracle server . now I know  the connectionURL :connectionUrl :jdb ...

  3. CROS跨域请求处理

    1.什么是跨域? 跨域是指从一个域名的网页去请求另一个域名的资源.比如从www.baidu.com 页面去请求 www.google.com 的资源.跨域的严格一点的定义是:只要 协议,域名,端口有任 ...

  4. python_语法糖_装饰器

    什么是高阶函数? -- 把函数名当做参数传给另外一个函数,在另外一个函数中通过参数调用执行 #!/usr/bin/python3 __author__ = 'beimenchuixue' __blog ...

  5. 微信支付JSAPI公众号支付授权目录

    详情 http://yangjunwei.com/a/1815.html

  6. 理解JS中的call、apply、bind方法(*****************************************************************)

    在JavaScript中,call.apply和bind是Function对象自带的三个方法,这三个方法的主要作用是改变函数中的this指向. call.apply.bind方法的共同点和区别:app ...

  7. Calendar使用方法

    Calendar类的静态方法getInstance()可以初始化一个日历对象: Calendar now = Calendar.getInstance(); 可以使用下面三个方法把日历定到任何一个时间 ...

  8. error_reporting

    有关error_reporting()函数: error_reporting() 设置 PHP 的报错级别并返回当前级别. ; 错误报告是按位的,或者将数字加起来得到想要的错误报告等级. ; E_AL ...

  9. python脚本检查TCP端口是否正常

    #!/usr/bin/python import socket import re import sys def check_server(address,port): s = socket.sock ...

  10. mybatis不可忽略的细节

    自我总结,欢迎拍砖! 目的:在需要返回int,long等基础类型数据的情况下,尽量在mybatis的Mapper中用基础类型的包装类. 原因:当查询的字段为空值时,mybatis会返回null,用基础 ...