`
文章列表
Callable是java.util.concurrent包中一个接口,Callable 接口类似于Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是Runnable 不会返回结果,并且无法抛出经过检查的异常。此接口中就声明了一个方法call(),这个方 ...
目录(?)[-] 一概念 二jdk的静态代理 一jdk动态代理 一cglib 动态代理 五 jdk动态和cglib动态代理比较 六 面向切面编程 几个应用 面向切面的概念 使用aspectj实现aop编程
目录(?)[-] 一概念 二jdk的静态代理 一jdk动态代理 一cglib 动态代理 五 jdk动态和cglib动态代理比较 六 面向切面编程 几个应用 面向切面的概念 使用aspectj实现aop编程
在How to do in java网站看到很多不错的好文章,《Creating Threads Usingjava.util.concurrent.ThreadFactory》就是其中一篇,它简单介绍了如何使用ThreadFactory来创建线程,最重要的是这中做的好处,为什么有时候要用它创建,下面就让我们看看这篇文章吧。 工厂设计模式是一种最常用的设计模式在java中。这是一个创建型模式需求,可以用来开发一个对象的一个或多个类。
今天客户提出一个问题,能否在产品中2个子系统中的实现所有的excel导入功能过滤掉已有的数据。 我思考了一番,想到了3种大概的解决思路: 1、在插入每条数据的时候,查到对应的表找出是否存在对应的数据,如存 ...
装饰者模式是动态地将责任附加上对象上。想要扩展功能,装饰者提供有别于继承的另一种选择,它利用组合和委托在运行时动态地给 组件(被装饰者)加上新的行为,很好的遵循了开放-关闭(对扩展开放,对修改关闭)这 ...
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。 为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和equals 方法。 Hashtable 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量。注意,哈希表的状态为open:在发生“哈希冲突”的情况下,单个桶会存储多个条目,这些条目必须按顺序搜索。加载因子 是对哈希表在其容量自动增加之前可以达到多满的一个尺度。初始容量和加载因子这两个参数只是对该实现的提示。关于何时以及是否调用 rehash 方法的具体细节则 ...
LinkedList就传说中的双向循环链表了。是List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法。这些操作允许将链接列表用作堆栈、队列或双端队列。 链表操作优点:1.因为每个结点记录下个结点的引用,则在进行插入和删除操作时,只需要改变对应下标下结点的引用即可 缺点:1.要得到某个下标的数据,不能通过下标直接得到,需要遍历整个链表。 但是在3,4W条数据下,JDK中的ArrayLis ...
基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此 ...
HashMap在Java开发中有着非常重要的角色地位,每一个Java程序员都应该了解HashMap。 主要从源码角度来解析HashMap的设计思路,并且详细地阐述HashMap中的几个概念,并深入探讨HashMap的内部结构和实现细节,讨论HashMap的性能问题。 1. HashMap设计思路以及内部结构组成 HashMap设计思路 Map<K,V>是一种以键值对存储数据的容器,而HashMap则是借助了键值Key的hashcode值来组织存储,使得可以非常快速和高效地地根据键值key进行数据的存取。 对于键值对<Key,Value>,HashMap内部 ...
表函数可接受查询语句或游标作为输入参数,并可输出多行数据。该函数可以平行执行,并可持续输出数据流,被称作管道式输出。应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表。 <wbr></wbr> 1. 用游标传递数据利用游标 REF CURSOR 可将数据集(多行记录)传递到PL/SQL函数:SELECT *<wbr>FROM TABLE (myfunction (CURSOR (SELECT *<br><wbr><wbr><wbr><wbr><wbr><w ...
目录(?)[+] 触发器类型 DML触发器 替代触发器 系统触发器 编写触发器时需要注意以下几点 创建触发器 触发器触发次序 创建DML触发器 创建替代INSTEAD OF触发器 创建系统事件触发器 系统触发器事件属性
一、过程 (存储过程) 过程是一个能执行某个特定操作的子程序。使用CREATE OR REPLACE创建或者替换保存在数据库中的一个子程序。 示例1:声明存储过程,该过程返回dept表行数 DECLARE PROCEDURE getDeptCount AS deptCount INT; BEGIN SELECT COUNT(*) INTO deptCount FROM DEPT; DBMS_OUTPUT.PUT_LINE('DEPT表的共有记录数:'||deptCount); END getDeptCount; BEGIN getDeptCount[() ...
在SQL语句优化过程中,经常会用到hint,以下是在SQL优化过程中常见Oracle中"HINT"的30个用法 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO, ...
Oracle在执行一个SQL之前,首先要分析一下语句的执行计划,然后再按执行计划去执行。分析语句的执行计划的工作是由优化器(Optimizer)来完成的。不同的情况,一条SQL可能有多种执行计划,但在某一时点,一定只有一种执行计划是最优的,花费时间是最少的。 相信你一定会用Pl/sqlDeveloper、Toad等工具去看一个语句的执行计划,不过你可能对Rule、Choose、Firstrows、Allrows这几项有疑问,因为我当初也是这样的,那时我也疑惑为什么选了以上的不同的项,执行计划就变了? 1、优化器的优化方式 Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Ru ...
Global site tag (gtag.js) - Google Analytics