关闭

Java-CGLib动态代理

导读 问题 CGLib动态代理和JDK动态代理的区别 CGLib概述 改造导读Spring-AOP基础知识Java-JDK动态代理Java-CGLib动态代理问题另一篇博文中的问题性能监视横切逻辑代码CGLib动态代理和JDK动态代理的区别我们知道使用JDK创建代理时只能为接口创建代理实例。我们从Proxy的newProxyInstance方法中可以看出 @CallerSensitive...
阅读(198) 评论(0)

Java-JDK动态代理

问题 概述 改造 其他相关接口类问题另一篇博文中的问题性能监视横切逻辑代码概述Java1.3以后,JAVA提供了动态代理技术,允许开发者在运行期创建接口的代理实例。 JDK的动态代理主要涉及java.lang.reflect包中的两个类:Proxy和InvocationHandler.InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑并通过反射机制调用目标类的代码,动态的将...
阅读(108) 评论(0)

Log4j2-Log4j 2介绍及使用

Log4j 2 官网https://logging.apache.org/log4j/2.x/Log4j 2简介Log4j的1.x版本已经被广泛使用于很多应用程序中。然而,它这些年的发展已经放缓。它变得越来越难以维护,因为它需要严格遵循很老的Java版本,并在2015年8月寿终正寝。它的替代品,SLF4J和Logback对框架做了很多必要的改进。那么为什么还要费心去做Log4j 2呢?几个原因如下:...
阅读(300) 评论(0)

Java-利用Spring提供的Resource/ResourceLoader接口操作资源文件

背景JDK提供的访问资源的类(如java.net.URL、File等)并不能很好地满足各种底层资源的访问需求,比如缺少从类路径或者Web容器上下文中获取资源的操作类。Spring提供了Resource接口,为应用提供了更强的底层资源访问能力,该接口拥有对应不同资源类型的实现类。 资源访问接口主要方法 boolean exists() 资源是否存在 boolean isOpen() 资源是否打开 UR...
阅读(462) 评论(0)

Java-查看JVM从哪个JAR包中加载指定类

背景有的时候,我们经常会碰到java.lang.NoSuchMethodError的错误信息。 究其根源,是由于JVM的 全盘负责委托机制导致的。 关于 全盘负责委托机制 ,请查看另一篇博文 全盘负责委托机制特别是对于一些web项目,jar包很多,如何精确的查找呢?方式一将下面的JSP文件,放到web容器的根路径下,启动web容器,通过 http://ip:port/projectname/...
阅读(464) 评论(0)

Java-Java反射

Java反射概述Java语言允许通过程序化的方式间接对Class进行操作。Class文件由类装载器装载后,在JVM中形成一份描述Class结构的元信息对象,通过该元对象可以获知Class的结构信息,如构造函数、属性和方法等。Java允许用户借由这个与Class相关的元信息对象间接调用Class对象的功能, 这就为使用程序化方式操作Class对象开辟了途径。 使用反射不同于常规的Java编程,其中它与...
阅读(379) 评论(0)

基础三:控制执行流程

概述在Java中,涉及的关键字包括:if-else , while , do-while, for, return, break和switch.Java并不支持goto语句。true和false所有条件语句都利用条件表达式的真或假来决定执行的路径。Java不允许我们将一个数字作为布尔值使用,虽然在C和C++中是允许的。 比如if(a)中,那么首先必须用一个条件表达式将其转换成布尔值,例如if(a...
阅读(1066) 评论(0)

基础二:操作符

使用Java操作符操作符接受一个或者多个参数,并生成一个新值。操作符用于操作数,生成一个新值。 另外有些操作符可能会改变操作数自身的值,这被称为“副作用”。这些能改变操作数的操作符最普遍的作用就是产生副作用。几乎所有的操作符都只能操作“基本类型”。 例外的操作符是 = == 和 != 。这些操作符能操作所有的对象。 除此之外,String类支持 + 和 +=.优先级当一个表达式中存在多个操作符时,...
阅读(2603) 评论(0)

基础一:一切都是对象

概述OOP-面向对象编程(Object Oriented Programming),在Java中(几乎)一切都是对象。用引用操作对象在Java中一切都是被看作为对象,因此可以采用单一固定的语法。尽管一切都看做对象,但操作的标示符实际上仅仅是对象的一个“引用”(reference)。如果想操作一个字符串,则可以创建一个String 引用:String s ;但是这里创建的仅仅是引用,而不是对象。因此如...
阅读(817) 评论(0)

Java-并发入门

概述 线程的生命周期 线程优先级 创建线程的两种方式 通过实现Runnable接口创建一个线程 通过扩展Thread类创建一个线程 线程的主要操作 Threadstop废弃原因 Threadsuspendresume废弃原因 线程间通信 主要方法 实例 并发同步 并发死锁概述多线程程序包含两个或多个可同时运行的部分,每个部分可以同时处理不同的任务,从而能更好地利用可用资源,特别是当计算机有多个CPU...
阅读(645) 评论(0)

Java多线程:Semaphore

自从5.0开始,jdk在java.util.concurrent包里提供了Semaphore 的官方实现。 Java 5.0里新加了4个协调线程间进程的同步装置,它们分别是: Semaphore, CountDownLatch, CyclicBarrier和Exchanger. Semaphore为并发包中提供用于控制某资源同时可以被几个线程访问的类。Semaphore当前在多线程环境下被扩放使用...
阅读(616) 评论(0)
    个人资料
    • 访问:424025次
    • 积分:8892
    • 等级:
    • 排名:第2137名
    • 原创:360篇
    • 转载:0篇
    • 译文:0篇
    • 评论:41条
    博客专栏