`
文章列表

锁02

    博客分类:
为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么叫悲 ...
悲观锁:认为在修改数据库数据的这段时间里存在着也想修改此数据的事务! 乐观锁:认为在短暂的时间里不会有事务来修改此数据库的数据! 锁(locking)业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算处理中,我们希望针对某个cut-off时间点的数据进行处理,而不希望在结算进行过程中(可能是几秒种,也可能是几个小时),数据再发生变化。此时,我们就需要通过一些机制来保证这些数据在某个操作过程中不会被外界修改,这样的机制,在这里,也就是所谓的“锁”,即给我们选定的目标数据上锁,使其无法被其他程序修改。Hibernate支持两种锁机制:即通常所说的“悲观锁(Pessimist ...
CurrentThread.map.set(currentThreadLocal, myobject);  myobject =  (MyObject) CurrentThread.map.get(currentThreadLocal); 总之要ThreadLocal正常工作的话,必须要 每个Thread都有自己的myobject,否则还是不能正确实现的!! 和同步完全没有关系啊! 同步从同到尾巴,所有的线程只有一个object做为value ThreadLocal是每个线程都有一个object做为value ThreadUniqueID.Hashmap.put(ThreadLoc ...

ThreadLocal2

public class SequenceNumber { private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer>() { public Integer initialValue() { /* * 对每一个线程来说这里都是new Integer(1000),是不同的对象 * 这样才做到ThreadLocal每个线程保存自己的变量 */ return 1000; // -128 to 127 有缓存的 ...
import java.lang.ThreadLocal.ThreadLocalMap; import java.lang.ThreadLocal.ThreadLocalMap.Entry; import java.util.HashMap; public class ThreadLocalTest2 { public ThreadLocalTest2() { super(); } /** * @param args */ ...

exception

public class TestTrack { /** * @param args */ public static void main(String[] args) { testTrack(); } public static void testTrack() { getMethodName(); } public static String getMethodName() { String calledMethodName = ""; try { //calledMethodName ...
应该是类被载入时开始,一直到类的Class对象被释放,因为在一般的情况下,没有释放这些类的Class对象。但在一些应用中,类是可以被释放了再载入的,一个很好的例子就是JSP被修改后,JSP容器会重新编译成SERVLET类,并重新载入,这样,老的类Class对象就被释放了,并重新载入了编译后的类,构造该JSP的Class对象。老的Class对象被从内存中清除当然他的生命期也就结束了,所以Class对象的生命期是载入到释放这个期间中   现在很多应用服务器都宣称他们可以实现热部署,其根本一点就是要处理好热部署的类Class对象释放和再载入的问题。因为很多与他关联的东西将受到影响,这个是题外话 ...
import java.util.*; public class MultipleArraySort { /* * 多维数组,当作对象来使用 Array [ROW] [COLUMN] * * String [5][10] 有一个对象,包含10个字段 ,当前数组有5个这样的object * * String[1][2] * * 有一个对象,包含2个字段 , 当前数组只有1个这样的object * * String [ROW][COLUMN] !!! * * 现在对这个Array进行排序,也就是对 row 个对 ...
Servlet的Request中和用户请求路径相关的操作有多个,下面一一列举:1.getQueryString(),&之后GET方法的参数部分。2.getServletPath(),web.xml中定义的Servlet访问路径。3.getPathInfo(),Servlet访问路径之后,QueryString之前的中间部分。4.getContextPath(),Context路径前缀(这个应该是最熟悉的啦)。5.getRequestURI(),等于getContextPath() + getServletPath() + getPathInfo()。6.getRequestURL(),等 ...
application/download 让文件下载。任何文件都要下载 ".*"="application/octet-stream" response.setContentType("application/vnd.ms-excel; charset=UTF-8"); <%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %>   h ...
request.getRequestDispatcher(address); -- 服务器解析 response.sendRedirect(url);  -- browser解析   struts <htlm:form action="url">   -- struts (服务器解析) 普通html   <form>  -- browser解析   package a; import java.io.File; import java.io.IOException; public class Test{ public stati ...

反射无意义文章

class类的方法,值得一看   getAnnotations() getClasses() getFields() getMethod()getConstructors() getDeclaredAnnotations() getDeclaredClasses() getDeclaredConstructors() getDeclaredFields() getDeclaredMethod() getModifiers() getFields返回的是某个类里的所有public类型的变量,包括继承父类的 getDeclaredFields返回的是某个类里的所有类型的变量,不包括 ...
JBoss、Geronimo及Tomcat比较分析(组图)   在开源的Java应用服务器领域,像JBoss、Tomcat及Apache的Geronimo,他们不仅仅是商业领域的领跑者,同时是技术领域的先行者。当然,所有的Java EE应用服务器的实现不尽相同,但其很多方面具有 ...
斜杠 “/”—— 撇 反斜杠 “\”—— 捺 先斜杠,后反斜,就是“人” "\"  windows path  ; windows cmd   补充: 1.Google字典 backslash:a mark ( \ ), used in computer commands (计算机符号)反斜线 2.网络路径/  Windows系统路径\ 正斜杠/slash 表示除法,分隔。 在windows系统中通常用来分隔命令行参数,/表示选项等。不能作为文件名。 而在unix系统中,/表示目录。由于web遵循unix命名,所以在网址(URL)中,/表示目录。 反斜杠\backsla ...
  Windows下JAVA用到的环境变量主要有3个,JAVA_HOME、CLASSPATH、PATH。 JAVA_HOME指向的是JDK的安装路径,如C:\JDK_1.4.2,在这路径下你应该能够找到bin、lib等目录。值得一提的是,JDK的安装路径可以选择任意磁盘目录,不过建议你放的目录层次浅一点,如果你放的目录很深,比如C:\XXXXXX\xxxxx\XXXX\xxxx\XXXX\xxxx\XXXX\xxx…… 设置方法: JAVA_HOME=C:\JDK_1.4.2 PATH环境变量原来Windows里面就有,你只需修改一下,使他指向JDK的bin目录,这样你在控制台下面编译 ...
Global site tag (gtag.js) - Google Analytics