java技术圈 为您找到相关结果 11

spring AOP 动态代理 jkd动态代理和cglib动态代理 hibernate使用cglib延迟加载

spring 的AOP 实现 可以使用jdk的动态代理,也可以使用cglib的动态代理 先说下两者区别: 静态代理:代理之前就已经知道了代理者和被代理者 动态代理:代理之前并不清楚,在运行时使用反射机制动态生成代理类的字节码 无需我们手动编写它的源代码 jdk动态代理:java.lang.reflect 包中的Proxy类,InvocationHandler 接口提供了生成动态代理类的能力。它必须有被代理对象的接口和实现类,ciglib不需要接口,简单的说 jkd动态代理针对接口,而cglib动态代理针对的是类 比JDK快,但加载cglib的时间比jdk反射的时间长,开发的过程中,如果是反复动态生成新的代理类推荐用 JDK 自身的反射,反之用 cglib。 spring AOP的实现 既可以...阅读全文

博文 2019-04-04 09:45:05 www.allocmem.com

你分得清楚Maven的聚合和继承吗? - 陈树义

用了 Maven 好几年了,许多人还是只懂得简单的依赖坐标。对于 Maven 的聚合和继承还是一知半解,甚至很多人以为是同一个东西。但其实聚合是用于快速构建项目,是表示项目与子项目之间的关系。而继承则是为消除重复的配置。下面通过一个例子深入聊聊这两者的关系。 聚合 Maven 的聚合其实就是项目与子项目的表示,其存在的意义在于快速构建项目。例如我们有一个淘宝商城项目,这个项目有账号子项目和邮件子项目。在这个时候我们需要在 Maven 中表达这种项目归属关系,那么我们就可以用 Maven 的聚合来进行配置。 我们首先创建一个 taobao-aggregator 项目,表示是一个聚合项目。之后再创建两个子项目,分别为:com.chenshuyi.mail 和 com.chenshuyi.acco...阅读全文

博文 2020-05-22 12:45:31 博客园

JDWP 协议及实现 – IBM Developer

byte 1 byte byte 值。 boolean 1 byte 布尔值,0 表示假,非零表示真。 int 4 byte 4 字节有符号整数。 long 8 byte 8 字节有符号整数。 objectID 依据 target Java 虚拟机而定,最大 8 byte Target Java 虚拟机中对象(object)的唯一 ID。这个值在整个 JDWP 的会话中不会被重用,始终指向同一个对象,即使该对象已经被 GC 回收(引用被回收的对象将返回 INVALID_OBJECT 错误。 Tagged-objectID objectID 的长度加 1 第一个 byte 表示对象的类型,比如,整型,字符串,类等等。紧接着是一个 objectID。 threadID 同 objectID 的长...阅读全文

博文 2020-08-13 06:42:57 developer.ibm.com

hbase的split策略和预分区 - Syui啦

split hbase是通过regionServer管理table的,一个table对应一个或多个region,hmaster将这些region根据集群负载分配给regionServer进行管理。若一个table没有进行预分区,那么只有一个region,初始化表时数据的读写都命中同一个regionServer,会造成热点问题,且region进行split时集群是不可用的,频繁的split也会造成大量的集群I/O,性能很低。 1、pre-splitting 在创建table时指定pre-splitting,预先生成多个region,结合合适的rowkey,这样可以很大程度上避免读写热点,每个region内部再按照一定的split-policy进行自动切分。 hbase提供了两种pre-spli...阅读全文

博文 2024-01-11 20:07:48 博客园

线程池之ThreadPool与ForkJoinPool_threadpoolexecutor fork/join

网上对Java线程池都有很多非常具体的解析,我概念性进行总结下,如有错误,可与我联系修改。 一、 ThreadPool Executor 一个线程池包括以下四个基本组成部分: 1、线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务; 2、工作线程(PoolWorker):线程池中线程,在没有任务时处于等待状态,可以循环的执行任务; 3、任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完后的收尾工作,任务的执行状态等; 4、任务队列(taskQueue):用于存放没有处理的任务。提供一种缓冲机制。 工作方式: 线程池有一个工作队列,队列中包含了要分配给各线程的工作。当线程空闲时,就会从队...阅读全文

博文 2023-12-01 10:40:55 CSDN博客

看动画,轻松学习23种C++设计模式完结无密

看动画,轻松学习23种C++设计模式完结无密​获课:看动画,轻松学习23种C++设计模式完结无密获取ZY↑↑方打开链接↑↑C++设计模式C++设计模式是软件开发中常用的一系列解决方案,旨在提高代码的可重用性、可读性和可维护性。C++设计模式主要分为三大类:创建型模式、结构型模式和行为型模式。以下是对这些模式的简要介绍:创建型模式创建型模式关注对象的创建过程,旨在通过隐藏创建逻辑来提高代码的灵活性和可维护性。单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。适用于需要全局访问的资源,如配置文件或数据库连接池。工厂方法模式(Factory Method):定义一个创建对象的接口,但由子类决定实例化哪一个类。适用于需要灵活创建对象的场景。抽象工厂模式(Abstract ...阅读全文

2024黑马Java新版V14.5线下就业班

​​​​​​​获课:jzit.top/13973/Java中继承的特点Java中继承是面向对象编程(OOP)的核心概念之一,它允许一个类继承另一个类的属性和方法,从而实现代码的复用和功能的扩展。继承在Java中有以下几个特点:1.子类继承父类的属性和方法属性:子类可以继承父类的所有成员变量(字段),除了被声明为private的字段。方法:子类可以继承父类的所有公共(public)和受保护(protected)方法,无法继承父类的private方法。2.单继承Java是一种单继承语言,一个子类只能继承一个父类。也就是说,一个类不能同时继承多个类。这是为了避免多重继承可能带来的问题,比如方法冲突等。然而,Java可以通过接口实现多重继承,即一个类可以实现多个接口,从而获得多个类的行为。3.sup...阅读全文

博文 2025-03-09 11:03:31 lkjhgf

2024黑马Java新版V14.5线下就业班

https://97it.top/13855/ 摘要 继承是面向对象编程(OOP)的核心概念之一,它允许一个类(子类)继承另一个类(父类)的属性和方法。成员方法作为类的重要组成部分,在继承过程中表现出独特的特点和行为。本文深入探讨了继承中成员方法的特点,包括方法的继承、覆盖、重载以及多态性等。通过分析这些特点在不同编程语言中的表现,本文揭示了成员方法在继承体系中的作用机制,并讨论了其在软件设计中的应用和优化策略。 1. 引言 面向对象编程(OOP)通过类和对象的概念,为软件开发提供了一种结构化和模块化的方法。继承作为OOP的重要特性,允许开发者通过扩展已有的类来创建新的类,从而提高代码复用性和开发效率。成员方法作为类的行为表示,在继承过程中表现出继承、覆盖、重载和多态等特性。这些特性不仅影响...阅读全文

博文 2025-03-06 19:36:40 92834L

SPI JDNI与双亲委派模型

--- ### **一、双亲委派模型的核心逻辑** 双亲委派模型是 Java 类加载器(ClassLoader)的默认工作流程,其核心规则为: 1. **加载优先级**:子类加载器(如 `AppClassLoader`)在加载类时,优先委派父类加载器(如 `ExtClassLoader`)处理。 2. **避免重复加载**:父类加载器无法加载的类,才由子类加载器自行加载。 3. **安全隔离**:核心类(如 `java.lang` 包)由启动类加载器(`BootstrapClassLoader`)加载,防止恶意代码篡改。 #### **类加载器层级**: | **类加载器** | **加载路径** | **责任** | |--------------------------|--------...阅读全文

博文 2025-03-21 00:48:04 dalang