摘要: 原子类:java.util.concurrent.atomic线程锁:java.util.concurrent.locks对付死锁:boolean acquired = lock.tryLock(wait,TimeUtils.MILLISECONDS);CountDownLatch锁存器:让线程在同... 阅读全文
posted @ 2015-07-08 23:54 Uncle_Nucky 阅读(759) 评论(0) 推荐(0)
摘要: Sting类保存字符串只是保存所有单单的字符串;而char[]字符数组会在最后自动加上'\n';所以B:t.equals(c)会返回fasle;所以答案B=========================================================================... 阅读全文
posted @ 2015-07-08 23:52 Uncle_Nucky 阅读(236) 评论(0) 推荐(0)
摘要: 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性... 阅读全文
posted @ 2015-07-08 23:51 Uncle_Nucky 阅读(242) 评论(0) 推荐(0)
摘要: 重载(Overloading)(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。(2)Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调... 阅读全文
posted @ 2015-07-08 23:50 Uncle_Nucky 阅读(176) 评论(0) 推荐(0)
摘要: 与synchronized相同并发性和内存语义。【新增特性】锁投票。定时锁等候。可中断锁等候。更少时间调度线程。【用法注意点】Lock必须在finally块中释放。Lock lock = new ReentrankLock();lock.lock();try{ ... } finally { loc... 阅读全文
posted @ 2015-07-08 23:49 Uncle_Nucky 阅读(154) 评论(0) 推荐(0)
摘要: 【CountDownLatch、CyclicBarrier和Semaphore】http://www.cnblogs.com/dolphin0520/p/3920397.html【CountDownLatch同步工具类】http://www.importnew.com/15731.htmlCount... 阅读全文
posted @ 2015-07-08 23:48 Uncle_Nucky 阅读(2752) 评论(0) 推荐(1)
摘要: ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。 当使用ThreadLocal维护变量时,ThreadLocal为每个使... 阅读全文
posted @ 2015-07-08 23:47 Uncle_Nucky 阅读(187) 评论(0) 推荐(0)
摘要: http://my.oschina.net/20076678/blog/173165一、在JDK文档中关于读写锁的相关说明ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有 writer,读取锁可以由多个 reader 线程同时保持。写入锁是独占的。所有 ... 阅读全文
posted @ 2015-07-08 23:44 Uncle_Nucky 阅读(521) 评论(0) 推荐(0)
摘要: 重点:线程安全类,concurrent包的并发构建基础模块,Java内存模型,Java线程的实现,线程池。并发控制。同步机制。——《Java编程思想》中并发——第5章 基础构建模块:线程安全的容器类,协调线程控制流的同步工具类。——第16章 内存模型。《Java并发编程实战》从 并发性和线程安全性的... 阅读全文
posted @ 2015-07-08 23:43 Uncle_Nucky 阅读(179) 评论(0) 推荐(0)
摘要: 2)在Java中Lock接口比synchronized块的优势是什么?你需要实现一个高效的缓存,它允许多个用户读,但只允许一个用户写,以此来保持它的完整性,你会怎样去实现它?lock接口在多线程和并发编程中最大的优势是它们为读和写分别提供了锁,它能满足你写像ConcurrentHashMap这样的高... 阅读全文
posted @ 2015-07-08 23:39 Uncle_Nucky 阅读(629) 评论(0) 推荐(0)
摘要: 【ScheduledThreadPoolExecutor】利用ScheduledThreadPoolExecutor定时执行任务。【Java线程池使用说明】【http://www.oschina.net/question/565065_86540】【源代码】【ThreadPoolExecutor.j... 阅读全文
posted @ 2015-07-08 23:38 Uncle_Nucky 阅读(145) 评论(0) 推荐(0)
摘要: 【JVM锁优化:http://www.importnew.com/15340.html】【自旋锁】互斥同步对性能最大的影响是阻塞的实现,挂起线程和恢复线程的操作都需要转入内核态中完成,这些操作给系统的并发性能带来了很大的压力。而在很多应用上, 共享数据的锁定状态只会持续很短的一段时间。若实体机上有多... 阅读全文
posted @ 2015-07-08 23:37 Uncle_Nucky 阅读(197) 评论(0) 推荐(0)
摘要: 集合IO:API,NIO2,Netty,序列化泛型反射设计模式并发JVM其他:XML,RMI,JMS,WebService,RPC 阅读全文
posted @ 2015-07-08 23:33 Uncle_Nucky 阅读(451) 评论(0) 推荐(0)
摘要: 不等值关系select a.ename,a.sal,b.grade from emp a, salgrade bwhere a.sal between b.losal and b.hisal等值连接:平时用最多外连接:outer-joinselect a.ename, a.sal, a.job, ... 阅读全文
posted @ 2015-07-08 23:32 Uncle_Nucky 阅读(158) 评论(0) 推荐(0)
摘要: selectname,max(IF(subject='chinese',score,0))as'chinese',max(IF(subject='math',score,0))as'math',max(IF(subject='english',score,0))as'english',sum(sco... 阅读全文
posted @ 2015-07-08 23:31 Uncle_Nucky 阅读(156) 评论(0) 推荐(0)
摘要: 【group by】对结果集进行分组,常与汇总函数一起使用。SELECT column,SUM(column) FROM table GROUP BY columnHAVING 通常与 GROUP BY 子句同时使用。不使用 GROUP BY 时, HAVING 则与 WHERE 子句功能相似。Co... 阅读全文
posted @ 2015-07-08 23:30 Uncle_Nucky 阅读(3271) 评论(0) 推荐(0)
摘要: SHOWDATABASES;CREATEDATABASEMYSQLDATA;USEMYSQLDATA;SHOWTABLES;CREATETABLEMYTABLE(nameVARCHAR(20),sexCHAR(1));显示表的结构:DESCRIBEMYTABLE;往表中加入记录:insertinto... 阅读全文
posted @ 2015-07-08 23:26 Uncle_Nucky 阅读(122) 评论(0) 推荐(0)
摘要: InnoDB引擎的行锁是通过加在什么上完成(或称实现)的?为什么是这样子的通过 行多版本控制 MyISAM Innodb事物支持 : 不支持 支持锁的粒度: table Row存储容量: 没有上限 6... 阅读全文
posted @ 2015-07-08 23:25 Uncle_Nucky 阅读(523) 评论(0) 推荐(0)
摘要: 题目: 数据库事务,银行转账的例子。 a和b不在同一个数据库里(跨数据库)的事务设计。如何保证两个或多个数据库之间转账事务的执行和回滚。 MySQL怎么做。自己写代码怎么实现。【如何实现跨库的事务操作】(跨数据库怎样保证事务执行和回滚)【两段式提交】两个事务,在保证一个"中心"事务... 阅读全文
posted @ 2015-07-08 23:24 Uncle_Nucky 阅读(1325) 评论(0) 推荐(0)
摘要: /*银行取款机数据库*/usemastergoifexists(select*fromsysdatabaseswherename='bankDB')dropdatabasebankDBgocreatedatabasebankDB--建立数据库bankDBgousebankDBgoifexists(s... 阅读全文
posted @ 2015-07-08 23:23 Uncle_Nucky 阅读(677) 评论(0) 推荐(0)
摘要: 【使用 JAVA 中的动态代理实现数据库连接池】【http://www.ibm.com/developerworks/cn/java/l-connpoolproxy/】缓冲池技术很多的连接池都要求用户通过其规定的方法获取数据库的连接,这一点我们可以理解,毕竟目前所有的应用服务器取数据库连接的方式都是... 阅读全文
posted @ 2015-07-08 23:21 Uncle_Nucky 阅读(328) 评论(0) 推荐(0)
摘要: 1、连接池模型本文讨论的连接池包括一个连接池类(DBConnectionPool)和一个连接池管理类 (DBConnetionPoolManager)。——连接池类是连接的“缓冲池”:①从连接池获取或创建可用连接;② 使用完毕之后,把连接返还给连接池;③在系统关闭前,断开所有连接并释放连接占用的系统... 阅读全文
posted @ 2015-07-08 23:20 Uncle_Nucky 阅读(189) 评论(0) 推荐(0)
摘要: 【http://shift-alt-ctrl.iteye.com/blog/1967020】关于JDBC中关于Connection的两个疑问:1.Connection实例是线程安全的吗? 即一个connection实例,在多线程环境中是否可以确保数据操作是安全的?private static Co... 阅读全文
posted @ 2015-07-08 23:18 Uncle_Nucky 阅读(619) 评论(0) 推荐(0)
摘要: Spring提供了几个关于事务处理的类: TransactionDefinition //事务属性定义 TranscationStatus //代表了当前的事务,可以提交,回滚。 PlatformTransactionManager这个是spring提供的用于管理事务的基础接口,其... 阅读全文
posted @ 2015-07-08 22:30 Uncle_Nucky 阅读(156) 评论(0) 推荐(0)
摘要: 在context中定义DataSource,创建SessionFactoy,设置参数;DAO类继承HibernateDaoSupport,实现具体接口,从中获得HibernateTemplate进行具体操作。在使用中如果遇到OpenSessionInView的问题,可以添加OpenSessionIn... 阅读全文
posted @ 2015-07-08 22:29 Uncle_Nucky 阅读(188) 评论(0) 推荐(0)
摘要: 两种依赖注入的类型是什么?两种依赖注入的类型分别是setter注入和构造方法注入。setter注入: 一般情况下所有的java bean,我们都会使用setter方法和getter方法去设置和获取属性的值,示例如下:public class namebean { String name; publi... 阅读全文
posted @ 2015-07-08 22:25 Uncle_Nucky 阅读(162) 评论(0) 推荐(0)
摘要: *使用spring有什么好处?◆Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题,。◆Spring能消除在许多工程上对Singleton的过多使用。根据我的经... 阅读全文
posted @ 2015-07-08 22:24 Uncle_Nucky 阅读(289) 评论(0) 推荐(0)
摘要: 【Spring中的设计模式】 http://www.uml.org.cn/j2ee/201301074.asp 【详解设计模式在Spring中的应用】【http://www.geek521.com/?p=6883】【http://blog.csdn.net/fg2006/article/detail... 阅读全文
posted @ 2015-07-08 22:23 Uncle_Nucky 阅读(851) 评论(0) 推荐(1)
摘要: 【SpringMVC类图】《Spring实战》中:《Spring3.0就这么简单》中:【http://blog.csdn.net/gstormspire/article/details/8239182】=================================================... 阅读全文
posted @ 2015-07-08 22:22 Uncle_Nucky 阅读(1989) 评论(0) 推荐(0)
摘要: 问题【如何将jsp中传递到HttpServletRequest的参数,自动装配到Java对象中】【成功】public void setUsernAme(String username)【成功】public void setUsernAme(String username)【成功】public voi... 阅读全文
posted @ 2015-07-08 22:21 Uncle_Nucky 阅读(445) 评论(0) 推荐(0)
摘要: ======================================================================代理类生成之后再调用目标方法时就会调用invoke方法public Object invoke(Object proxy, Method method, Obj... 阅读全文
posted @ 2015-07-08 22:20 Uncle_Nucky 阅读(350) 评论(0) 推荐(0)
摘要: JdkDynamicAopProxy是通过接口实现动态代理类,主要方法是getProxy(ClassLoader classLoader), 代理类生成之后再调用目标方法时就会调用invoke方法。package org.springframework.aop.framework;import ja... 阅读全文
posted @ 2015-07-08 22:19 Uncle_Nucky 阅读(428) 评论(0) 推荐(0)
摘要: AOP基于动态代理实现:返回代理对象java.lang.reflect 包Proxy 类,构造代理类。newProxyInstance()就是创建代理对象的方法。Proxy.newProxyInstanceClassLoader,用于加载代理类的 Loader 类,通常这个 Loader 和被代理的... 阅读全文
posted @ 2015-07-08 22:17 Uncle_Nucky 阅读(459) 评论(0) 推荐(0)
摘要: 什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入... 阅读全文
posted @ 2015-07-08 22:16 Uncle_Nucky 阅读(209) 评论(0) 推荐(0)
摘要: BeanFactory和ApplicationContext的作用和区别作用:1. BeanFactory负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期。2. ApplicationContext除了提供上述BeanFactory所能提供的功... 阅读全文
posted @ 2015-07-08 22:15 Uncle_Nucky 阅读(237) 评论(0) 推荐(0)
摘要: 【spring的InitializingBean的 afterPropertiesSet 方法 和 init-method配置的 区别联系】InitializingBean Spring的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一... 阅读全文
posted @ 2015-07-08 22:13 Uncle_Nucky 阅读(447) 评论(0) 推荐(0)
摘要: 1.Bean的建立:BeanFactory容器寻找Bean的定义信息,读取Bean定义文件,并将其实例化,生成各个Bean实例。2.属性注入:使用依赖注入,Spring按照Bean定义信息配置Bean所有属性。3.BeanNameAware的setBeanName():传递Bean的ID。4.Bea... 阅读全文
posted @ 2015-07-08 22:11 Uncle_Nucky 阅读(208) 评论(0) 推荐(0)
摘要: 高性能服务端漫谈:http://www.codeceo.com/article/high-performance-server.html 简述负载均衡&CDN技术:http://www.admin10000.com/document/6186.html 5个强大的Java分布式缓存框架推荐: 阅读全文
posted @ 2015-07-08 21:47 Uncle_Nucky 阅读(145) 评论(0) 推荐(0)
摘要: 方法区永久代,共享。类信息,常量,static变量,JIT编译后的代码。运行时常量池:字面量,符号引用。堆所有对象(新生代,老年代)虚拟机栈线程私有。表示方法执行的内存模型。【局部变量表】本地方法栈程序计数器字节码行号。线程私有。【Objectobj=newObject();】——Objectobj... 阅读全文
posted @ 2015-07-08 20:45 Uncle_Nucky 阅读(189) 评论(0) 推荐(0)
摘要: 【虚拟机栈】一: java栈在java虚拟机结构中的位置java虚拟机体系结构中包括:类装载子系统、运行时数据区、执行引擎。其中类装载子系统负责查找并装载class文件。执行引擎处于JVM的核心位置,运行Java的每一个线程都是一个独立的虚拟机执行引擎的实例,从线程生命周期的开始到结束,他要么在执行... 阅读全文
posted @ 2015-07-08 20:44 Uncle_Nucky 阅读(196) 评论(0) 推荐(0)
摘要: Java堆存储对象实例,我们只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,就会在对象达到最大堆容量限制后产生内存溢出异常。java.lang.OutOfMemoryError:Java heap space.原因分析:确认内存中对象是否是必要的。也就是... 阅读全文
posted @ 2015-07-08 20:43 Uncle_Nucky 阅读(565) 评论(0) 推荐(0)
摘要: 【收集算法的选择】 新生代,由于只有少量的对象能存活下来,所以选用“复制算法”,只需要付出少量存活对象的复制成本。 老年代,由于对象的存活率高,没有额外的空间分担,就必须使用“标记-清除”或“标记-整理”算法。 那么老年代也使用标记-复制策略吧?当然不行!老年代中的对象可不像新生代中的,每次回... 阅读全文
posted @ 2015-07-08 20:39 Uncle_Nucky 阅读(314) 评论(0) 推荐(0)
摘要: 【根搜索算法】这个算法的基本思路是:对任何“活”的对象,一定能最终追溯到其存活在堆栈或静态存储区之中的引用。可以作为根的对象-虚拟机栈(栈桢中的本地变量表)中的引用的对象。-方法区中的类静态属性引用的对象。-方法区中的常量引用的对象。-本地方法栈中JNI的引用的对象。方法区是jvm的一块内存区域,用... 阅读全文
posted @ 2015-07-08 20:29 Uncle_Nucky 阅读(204) 评论(0) 推荐(0)
摘要: 调用类方法,基于对象引用的类型(通常在编译时可知)来选择所调用的方法。调用实例方法,它会基于对象实际的类型(只能在运行时得知)来选择所调用的方法。【JAVA对象模型】 JAVA对象中包含的基本数据由它所属的类及其所有超类声明的实例变量组成。只要有一个对象引用,虚拟机就必须能够快速地定位对象实例的数... 阅读全文
posted @ 2015-07-08 20:15 Uncle_Nucky 阅读(254) 评论(0) 推荐(0)