接口: package com.test; public interface Fruit { } 一个实现类: package com.test; public class Apple implements Fruit { } 基本测试类: package com.test; import java.util.ArrayList; import java.util.List; public class TestName { public static void main(String[] arg…
原文链接:http://www.cnblogs.com/signheart/p/922dcf75dd5fe6b418d4475af89c4664.html 使用Thread.currentThread().getName()和使用this.getName()和对象实例.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线…
package classes; class Box { class Inner { } } public class TestGetName { public static void main(String[] args) throws Exception { System.out.println("Box.class.getCanonicalName(): " + Box.class.getCanonicalName()); System.out.println("Box…
getName()返回的是虚拟机里面的class的表示 getCanonicalName()返回的是更容易理解的表示 对于普通类来说,二者没什么区别,只是对于特殊的类型上有点表示差异 比如byte[]类型,前者就是[B,后者就是byte[] 比如byte[][]类型,前者就是[[B,后者就是byte[][]…
** * Java反射 *所谓反射,可以理解为在运行时期获取对象类型信息的操作. *传统的编程方法要求程序员在编译阶段决定使用的类型,但是在反射的帮助下, *编程人员可以动态获取这些信息,从而编写更加具有可移植性的代码. *严格地说,反射并非编程语言的特性,因为在任何一种语言都可以实现反射机制, *但是如果编程语言本身支持反射,那么反射的实现就会方便很多 * * * 实例引用.getClass():获得该对象的类型类 * 实例引用.getClass().getName():获得该类型的全称名称…
首先要明白 this.XXX 的使用场景 使用Thread.currentThread().getName()和使用this.getName()和对象实例.getName(),都可以得到线程的名称,但是使用this调用getName()方法只能在本类中,而不能在其他类中,更不能在Runnable接口中,所以只能使用Thread.currentThread().getName()获取线程的名称,否则会出现编译时异常.     Thread.currentThread().getName()  ,对…
前提 Java反射的API在JavaSE1.7的时候已经基本完善,但是本文编写的时候使用的是Oracle JDK11,因为JDK11对于sun包下的源码也上传了,可以直接通过IDE查看对应的源码和进行Debug. 本文主要介绍反射的基本概念以及核心类Class.Constructor.Method.Field.Parameter的常用方法. 本文极长,请准备一个使自己舒服的姿势阅读. 什么是反射 反射(Reflection)是一种可以在运行时检查和动态调用类.构造.方法.属性等等的编程语言的能力…
本文原创,转载请注明原处! 红色代表的是基本组件:包(Package),修饰符(modifier),类(Class),字段(Field),构造器(Constructor)和方法(Method). 黄色代表的是泛型组件:可定义泛型的元素(GenericDeclaration),类型(Type),泛型(TypeVariable),泛型参数类(ParameterizedType),泛型数组(GenericArrayType),通配符(WildcardType). 蓝色代表的是注解组件:可被注解的元素(…
需要的背景知识:Spring 和Mybatis 实现原理和源码, javaassist字节码增强的使用, java及设计模式的使用 1 读取解析数据库配置文件 DataSourceScanner实现了Spring的BeanDefinitionRegistryPostProcessor和ApplicationContextAware接口. BeanDefinitionRegistryPostProcessor 允许定义bean ApplicationContextAware 可以获取Spring上…
1.可以重载方法进行配置文件的指定 sessionFactory = new AnnotationConfiguration().configure("hibernate.xml").buildSessionFactory(); 这样读取到的就是hibernate.xml 但一般不建议修改 getcurrentsession 指的是上下文如果没有提交 就不会创建新的session opensession 永远打开新的session 用于鉴定事务边界 比如加入日志操作等 事务:要么同时完…