`
文章列表
Passing Objects Here's an example of how you can assign an object to another variable and then make a change to the copy. As a result, the original object is also changed: >>> var original = {howmany: 1}; >>> var copy = original; >>> copy.howmany 1 >>> copy.ho ...
JavaScript 变量名称的规则: ----变量对大小写敏感(y 和 Y 是两个不同的变量) ----变量必须以字母或下划线开始 插入特殊字符 反斜杠用来在文本字符串中插入省略号、换行符、引号和其他特殊字符。 请看下面的 JavaScript 代码: var txt="We are the so-called "Vikings" from the north." document.write(txt) 空格 JavaScript 会忽略多余的空格。所以您可以在代码中添加适当的空格,使得代码的可读性更强。下面的两行是等效的: name=" ...
使用JAVA中的动态代理实现数据库连接池 http://www.oschina.net/question/12_4528
代理模式的一种常见的实现方案是,定义一个接口或抽象类,并派生出目标子类,和代理子类。我们要操作的是目标子类里的方法,而很多时候,我们需要为目录子类中的方法增加额外的处理, 如果[b]增加日志功能、条件判断[/b]等,这时候,就很有必要用到代理类。 /** * 代理子类和目标子类的公共接口 * @author rongxinhua * */ public interface MyInterface { public void doOperation(); } /** * 目标子类 * @author rongxinhua * */ ...

AOP在Spring的实现

AOP一般用来做权限判断: 思考问题方法叫做:横切性关注点 1.拦截所有方法 2.判断用户是否有权限,有权限就允许执行业务方法,否者不执行。 假如不使用AOP框架,可以利用“代理模式”来解决 user-------代理对象---------目标对象 代理对象的创建: 1.静态代理(企业应用,很少用) 2.动态代理 前提是目标对象是面向接口 首先写一个接口: public interface PersonService { public void save(String name); public void update(String name, Integer perso ...

Spring 注释

先说一下@Repository、@Service 和 @Controller。 在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些 ...
1.使用构造器 private PersonDao personDao; private String name; public PersonServiceImpl(PersonDao personDao,String name){ this.personDao = personDao; this.name = name; } <constructor-arg index="0" type="com.hx.springdemo01.dao.PersonDao" ref="personDao" ...
[b]GOF《设计模式》一书对Adapter模式是这样描述的:    将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。     这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求: 1) 为都有“显示”(display)行为的点、线、正方形分别创建类。 2) 客户对象不必知道自己到底拥有点、线、还是正方形。它只需知道拥有这些形状中的一个。 也就是说,我们要用一个更高层次的概念将这些具体形状都涵盖进去,这个高层概念可以称为:“可显示的形状”。因此,我们需要创建一个接口Sh ...

JVM常见配置汇总

    博客分类:
  • JAVA
从这个图中可以看到,JVM是运行在操作系统之上的,它与硬件没有直接的交互。我们再来看下JVM有哪些组成部分,如下图所示: 整个JVM分为四部分: Class Loader 类加载器 类加载器的作用是加载类文件到内存,比如编写一个Hel ...
详解java中的抽象类和接口的区别     在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面 ...
Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。 1.AbstractMap抽象类和SortedMap接口 AbstractMap抽象类:覆盖了equals()和hashCode()方法以确保两个相等映射返回相同的哈希码。如果两个映射大小相等、包含同样的键且每个键在这两个映射中对应的值都相同,则这两个映射相等。映射的哈希码是映射元素哈希码的总 ...

表死锁问题

设table1(A,B,C) A         B         C a1       b1       c1 a2       b2       c2 a3       b3       c3 1)排它锁 新建两个连接 在第一个连接中执行以下语句 begin tran update table1 set A= 'aa ' wher ...
前天俺们谈到了加锁,但是在使用加锁的同时又会带来一个问题,就是死锁。 什么叫死锁? 所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。    那么为什么会产生死锁呢? 1.因为系统资源不足。 2.进程运行推进的顺序不合适。   3.资源分配不当。             学过操作系统的朋友都知道:产生死锁的条件有四个: 1.互斥条件:所谓互斥就是进程在某一时间内独占资源。 2.请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 3.不剥夺条件:进程已获得资源,在末使用完之前,不能强行剥夺。 4.循环 ...
String、StringBuffer与StringBuilder之间区别   最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下。 关于这三个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下   1.三者在执行速度方面的比较:StringBuilder >  StringBuffer  >  String   2.String <(StringBuffer,StringBuilder)的原因     String:字 ...
数据类型     Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。 基本类型的变量保存原始值,即:他代表的值就是数值本身; 而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身, ...
Global site tag (gtag.js) - Google Analytics