公共技术点之 Java 注解 Annotation 原文链接:Android 开源项目源码解析 不少开源库都用到了注解的方式来简化代码提高开发效率。 本文简单介绍下 Annotation 示例、概念及作用、分类、自定义、解析,并对几个 Android 开源库 Annotation 原理进行简析。 1. Annotation 示例 Override Annotation @Override publ
系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包,类,字段,方法,方法的参数以及局部变量上 开发中常见注解: @
公共技术点之 Java 反射 Reflection 原文链接:Android 开源项目源码解析 1. 了解 Java 中的反射 1.1 什么是 Java 的反射 Java 反射是可以让我们在运行时获取类的函数、属性、父类、接口等 Class 内部信息的机制。通过反射还可以让我们在运行期实例化对象,调用方法,通过调用 get/set 方法获取变量的值,即使方法或属性是私有的的也可以通过反射的形式调用
Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 反射概述 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java 反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造
内容提要 本章以及接下来的十三章都是介绍了http验证用户身份的一些机制!本章介绍一下基本认证,首先得这是一种简单的认证,并不能用于复杂、保密的业务逻辑环境中,它只能做到一般的保护,比如防止某个好心人查看你的个人信息! 基本认证概述 基本认证描述的就是用户第一次访问服务器的时候,服务器返回401状态码和WWW-Authenticate响应首部,并在首部中描述了密码编码算法和对应要使用密码的安全域,
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。 JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。 CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题: 不能通知final方法,
通常,Hibernate 应用程序的声明式安全机制由会话外观层(session facade)所管理。现在,Hibernate3允许某些特定的行为由 JACC 进行许可管理,由 JAAS 进行授权管理。本功能是一个建立在事件框架之上的可选的功能。 首先,你必须要配置适当的事件监听器(event listener),来激活使用 JAAS 管理授权的功能。 <listener type="pre-d
本文的内容基于 MOSN v0.9.0。 机制 使用过滤器模式来实现扩展是常见的设计模式,MOSN 也是使用了这种方式来构建可扩展性。 MOSN 把过滤器相关的代码放在了 pkg/filter 目录下: ? mosn git:(2c6f58c5) ? ll pkg/filter total 24 drwxr-xr-x 8 mac staff 256 Feb 5 08:52 . drw
Cocos Creator 3D 脚本用于实现用户定义的(游戏)行为。 脚本创建 脚本基础 语言支持 模块 脚本执行顺序 cc 类 访问节点和其他组件 常用节点和组件接口 生命周期回调 创建和销毁节点 加载和切换场景 获取和加载资源 使用计时器 组件 组件执行顺序 属性参数参考 插件脚本 CCClass 进阶参考 添加 Log 废弃API 事件机制 作为引擎中极为常用的系统,我们提供了完整高效的事
内存管理机制 easySwoole启动后内存管理的底层原理与普通PHP-CLI程序一致,与平时常用的FastCGI模式的内存管理略有区别 内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未释放或无法释放,内存占用逐步增加,严重的时候耗尽系统的所有内存导致程序崩溃 局部变量 在事件回调函数返回后,所有局部对象和变量会全部回收,不需要unset。如果变量是一个资源类型,那
上一章内容,主要介绍了ROS通信的实现,内容偏向于粗粒度的通信框架的讲解,没有详细介绍涉及的API,也没有封装代码,鉴于此,本章主要内容如下: ROS常用API介绍; ROS中自定义头文件与源文件的使用。 预期达成的学习目标: 熟练掌握ROS常用API; 掌握ROS中自定义头文件与源文件的配置。
IOStream对socket读写进行了封装,分别提供读、写缓冲区实现对socket的异步读写。当socket被accept之后HTTPServer的_handle_connection会被回调并初始化IOStream对象,进一步通过IOStream提供的功能接口完成socket的读写。文章接下来将关注IOStream实现读写的细节。 IOStream的初始化 IOStream初始化过程中主要完成
接上面一小节,开始看 TCPServer 的 code。 TCPServer的__init__函数很简单,仅保存了参数而已。 唯一要注意的是,它可以接受一个io_loop为参数。实际上io_loop对TCPServer来说并不是可有可无,它是必须的。不过TCPServer提供了多种渠道来与一个io_loop绑定,初始化参数只是其中一种绑定方式而已。 listen 接下来我们看一下listen函数,
上一节是关于应用层的协议 HTTP,它依赖于传输层协议 TCP,例如服务器是如何绑定端口的?HTTP 服务器的 handle_stream 是在什么时候被调用的呢?本节聚焦在 TCP 层次的实现,以便和上节的程序流程衔接起来。 首先是关于 TCP 协议。这是一个面向连接的可靠交付的协议。由于是面向连接,所以在服务器端需要分配内存来记忆客户端连接,同样客户端也需要记录服务器。由于保证可靠交付,所以引
主要内容:1.前言,2.源码分析,3.使用方法,4.总结1.前言 1.1 Mybatis四大对象 org.apache.ibatis.executor.parameter.:处理SQL的参数对象 org.apache.ibatis.executor.resultset.:处理SQL的返回结果集 org.apache.ibatis.executor.statement.:数据库的处理对象,用于执行SQL语句 org.apache.ibatis.execu