object

Java实现动态代理的两种方式

大城市里の小女人 提交于 2020-02-12 03:05:20
一般而言,动态代理分为两种,一种是JDK反射机制提供的代理,另一种是CGLIB代理。在JDK代理,必须提供接口,而CGLIB则不需要提供接口,在Mybatis里两种动态代理技术都已经使用了,在Mybatis中通常在延迟加载的时候才会用到CGLIB动态代理。 1.JDK动态代理: public interface Rent { public void rent(); } public class Landlord implements Rent{ @Override public void rent() { System.out.println("房东要出租房子了!"); } } import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class Intermediary implements InvocationHandler{ private Object post; Intermediary(Object post){ this.post = post; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object

javascript functions and objects using keyword 'this' does not work

情到浓时终转凉″ 提交于 2020-02-12 02:39:50
问题 my question here is about functions and objects in javascript. I have three questions that stems from one to other. In the below example, I try to access the value of 'a' in test, but I get undefined. but I create a new object of test, then I am able to access the 'a' value and change it. //create a function called test var test=function() { this.a=2 this.b=3 }; test.a//undefined //create a object called test1 using 'new' test1 = new test(); test1.a//2 //change the value of a in test1 test1.a

PropertyGrid使用总结3 Descriptor

北战南征 提交于 2020-02-12 00:55:37
Descriptor是实现当前对象描述的一个重要的类,其主要有以下几个类,这些类主要是进行。 1、 TypeDescriptor 用于描述一个类型的信息,其是Type的一个扩充和补充,也可以用于类型转换等,这个类是一个最终类,无法继承此类。提供有关组件特征的信息,如组件的特性、属性和事件。 System.Reflection 命名空间中提供的反射 API 和 TypeDescriptor 类。 反射是适用于所有类型的常规机制,因为它的基础是在根 Object 类的 GetType 方法中建立的。 它为类型返回的信息不是可扩展的,因为它不能在编译目标类型之后修改。 有关详细信息,请参阅反射中的主题。 与此相反,TypeDescriptor 是一种可扩展的组件检查机制:实现 IComponent 接口的类。 不同于反射,它不检查方法。 可以通过目标组件的 Site提供的多个服务对 TypeDescriptor 进行动态扩展。 属性 ComNativeDescriptorHandler 获取或设置用于目标组件的组件对象模型 (COM) 类型信息的提供程序。Gets or sets the provider for the Component Object Model (COM) type information for the target component.

JavaSE学习笔记(8)---常用类

北城以北 提交于 2020-02-11 22:38:01
JavaSE学习笔记(8)---常用类 1、Object类 java.lang.Object 类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。 如果一个类没有特别指定父类,那么默认则继承自Object类。例如: public class MyClass /*extends Object*/ { // ... } 根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。最常用的是其中的2个: public String toString() :返回该对象的字符串表示。 public boolean equals(Object obj) :指示其他某个对象是否与此对象“相等”。 toString方法 public String toString() :返回该对象的字符串表示。 toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。 由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。 覆盖重写 如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。例如自定义的Person类: public class Person { private String name

java学习笔记之反射—Class类实例化和对象的反射实例化

两盒软妹~` 提交于 2020-02-11 20:19:18
反射之中所有的核心操作都是通过Class类对象展开的,可以说Class类是反射操作的根源所在,但是这个类的实例化对象, 可以采用三种方式完成。 java.lang.Class类的定义: public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement, TypeDescriptor.OfField<Class<?>>, Constable 1.Object类支持: Object类可以根据实例化对象获取Class对象:public final Class<?> getClass() 这种方式有一个缺点:如果现在只是想获得Class类对象,则必须产生指定类对象后才可以获得,会造成一个无用的对象产生 代码: Person per = new Person();//已经存在有指定类的实例化对象 Class<? extends Person> cls = per.getClass(); 2.JVM直接支持: 采用“类.class”的形式实例化 代码: Class<? extends Person> cls2 = Person.class; 3.Class类支持: 在Class类里面提供有一个static方法: 加载类:public

HTML进阶

不想你离开。 提交于 2020-02-11 15:59:21
HTML教程进阶:iframe元素+页面使用flash+表单元素(元素+表单分组)+ iframe元素: 内联框架:https://www.w3school.com.cn/html/html_iframe.asp。通常用于在一个页面嵌入一个页面。 属性 :可替换元素 1:通常行盒。即display:inline 2:通常显示的内容取决于元素的属性。 3:css不能完全控制其中的样式。 4:具有行快盒的特点。 使用 :常用于页面跳转、视频链接 效果显示 :区别于a标签,iframe标签将把页面直接搬过来。如果给a标签一个target将把iframe的内联样式给a标签。 在页面使用flash: flash插件:Ctrl+F百度搜索MIME在其找到自己资源类型。 学习链接:https://www.w3school.com.cn/html/html_audio.asp 属性: 1:object:对象。可替换元素,默认行盒。 2:embed:嵌入。可替换元素,默认行盒。 object使用实例: object效果显示: embed使用实例: 如下,兼容问题中蓝色框!!区别于object就是写法不一样。。。 效果显示 object与embed区别: 。浏览器不同版本识别会有问题。 兼容写法: 表单元素 1:form元素:https://www.w3school.com.cn/html/html

设计模式:代理模式

馋奶兔 提交于 2020-02-11 14:21:40
   代理模式:为另一个对象提供一个替身或占位符以访问这个对象。   在我们学习代理模式之前,我们先了解下代理模式中的三个角色。 抽象角色:声明真实对象和代理对象的共同接口。      代理角色:代理对象角色内部含有真实对象的引用,从而可以操作真实对象。 同时代理对象提供与真实对象相同的接口,以便任何时刻都能替代真实对象。并且代理对象可以在执行真实对象操作时,附加自己的操作。 真实角色:代理角色所代表的的真实角色,使我们最终要引用的对象,也是代理对象内部引入的对象。   其中代理分为静态代理和动态代理,什么是静态代理什么是动态代理呢,下面我们通过例子来看看   在我们刚开学学习jdbc操作数据库的时候,业务每个方法都需要进行三步:1.打开数据库连接 2.执行我们想要的操作 3.关闭数据库连接,其实我们主要是在第二步,而每次都需要执行重复的第一步第二步就显得很麻烦不够纯粹了,这时候我们就可以利用代理,把这件事情交给代理来做。看下代码的实现 //一个业务层的接口,里面我们就定义一个方法 public interface UserService { public void saveUser(); } //业务层实现类 public class UserServiceImpl implements UserService{ @Override public void saveUser()

java反射机制

↘锁芯ラ 提交于 2020-02-11 13:57:32
Java反射机制 一、反射机制综述 在java中,反射是一个功能强大且复杂的机制,许多框架的底层技术和原理都与反射技术有关。因此使用反射技术的主要人员是工具构造者,而不是应用程序员。利用反射机制,我们可以用来: 1.在运行时查看对象 2.在运行时分析类的能力 3.实现通用的数组操作对象 4.利用Method对象,实现类似于C/C++中函数指针的功能 二、通过反射获取对象 在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。这个信息更踪着每个对象所属的类,保存这些信息的类称为Class(就是一个类名,没有其它特殊的含义),Object类中的getClass()方法可以返回一个Class类型的实例。下面我们通过一个例子来进一步理解: 1.创建雇员类 首先定义雇员类,员工信息包括姓名、薪水和雇用日期,包含get方法和提升工资方法 public class Employee { private String name; //姓名 private double salary; //薪水 private LocalDate hireDay; //雇用日期 public Employee(String name, double salary, int year, int month, int day) { this.name = name; this.salary

NSNotificationCenter 传递带参数的通知

前提是你 提交于 2020-02-11 05:26:30
NSNotificationCenter 在 init里面注册这个通知, NSString* const str = @"FuckMe"; [[ NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (on:) name : str object : nil ]; 在dealloc里面移除这个通知的注册: [[ NSNotificationCenter defaultCenter ] removeObserver : self name : str object : nil ]; 以上为不带参数的通知 一般在使用NSNotificationCenter的时候不使用参数,但是有些时候需要使用参数。 传递参数 [[NSNotificationCenter defaultCenter ] postNotificationName :@"test"  object : searchFriendArray ]; 接收参数并获取传递的参数 postNotificationName :通知的名字,也是通知的唯一标示,编译器就通过这个找到通知的。 object :传递的参数 - ( void ) test:( NSNotification *) notification {

NSNotificationCenter 的使用详解

坚强是说给别人听的谎言 提交于 2020-02-11 04:45:20
转载自 http://unmi.cc/nsnotificationcenter-usage ,作者“隔叶黄莺” 通常我们在 iOS 中发生什么事件时该做什么是由 Delegate 实现的,例如 View 加载完后会触发 viewDidLoad。Apple 还为我们提供了另一种通知响应方式,那就是 NSNotification,系统中(UIKeyboardDidShowNotification 等) 以及某些第三方组件(例如 ASIHTTPRequest 的 kReachabilityChangedNotification 等)。 NSNotificationCenter 较之于 Delegate 可以实现更大的跨度的通信机制,可以为两个无引用关系的两个对象进行通信。NSNotificationCenter 的通信原理使用了观察者模式: 1. NSNotificationCenter 注册观察者对某个事件(以字符串命名)感兴趣,及该事件触发时该执行的 Selector 或 Block 2. NSNotificationCenter 在某个时机激发事件(以字符串命名) 3. 观察者在收到感兴趣的事件时,执行相应的 Selector 或 Block 使用 NSNotificationCenter 的步骤示例代码: 1. 定义一个事件到来时该执行的方法: 1 - (void)execute