- 浏览: 46268 次
- 性别:
- 来自: 上海
最新评论
文章列表
String t1 = "1";
String t2 = "1";
String t3 = new String("1");
String t4 = new String("1");
--
虽然t1,t2,t3,t4互相之间equals都是为true,但是在做锁操作的时候,t1,t2属于同一个对象,锁上可以实现互斥,t3,t4由于是通过new String构造,分别为不同的对象,与通过常量“1”构造的不同,另外t3,t4也是不同对象。
1.java原子类。volatile关键字
2.线程池
创建固定大小的线程池
创建缓存线程池//线程数可随需求变化
创建单一线程池
关闭线程池
shutdown与shutdownNow的比较
用线程池启动定时器
调用ScheduledExecutorService的schedule方法,返回的ScheduleFuture对象可以取消任务。
支持间隔重复任务的定时方式,不直接支持绝对定时方式,需要转换成相对时间方式。
3.callable和future(不常用)
4.Lock锁类似synchronized,更加灵活,还分为读锁,写锁,读写锁,写锁 ...
1.定义线程的两种传统方式。
package thread;
public class TradionalThreadTest
{
public static void main(String[] args)
{
//线程创建方法1:new thread的子类
new Thread(){
@Override
public void run()
{
while(true){
System.out.println("current thread(子类) is " + Thread.currentT ...
现象与该文类似:http://www.cnblogs.com/fangwenyu/archive/2011/08/01/2123929.html
上文的解释没有问题
DBSequence*allocationSize<= IDs < (DBSequence+1)*allocationSize
只有当id到达下个序列值*allocationSize时,序列值才会自增1。
当然上述公式是在sequence没有cache的情况下,如果cache=20,
上述公式左右两边还要分别乘以cache的值,因为序列会预存到cache中。
测试了下web项目和非web项目,当 ...
先上代码
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException
{
Enumeration e = req.getParameterNames();
String attributeName;
String attributeValues[];
output(req);
while (e.hasMoreElements()) {
attrib ...
long count = ((Number) (sessionFactory.getCurrentSession().createQuery(
hql).setDate("accessTime", minTime)
.setString("valid", "1").setString("operatorType", operType)
.setString("govCompUserFlag", govCom).uniqueResult()))
.lo ...
看shiro的官方文档,其中对操作者(currentUser)Remembered 与Authenticated的两种状态的解释非常的详细。其实说穿了就是某天你在淘宝上购物了,但是由于有事临时走开了,没有执行登出,当你第二天再上淘宝的时候你的会话如果还保留着就可以登录进去,此时Remembered状态为true,但是如果你此时要进行购物由于对于淘宝来说你未必就是操作者,所以要进行登录,因为此时的Authenticated的状态为false,只有当你输入用户名密码成功登录以后Authenticated状态才为true。
从官方文档来看,在会话正常的情况下这两种状态 ...
【转】http://bbs.csdn.net/topics/370103016
Canvas是HTML5新增加的元素, 可以方便的画图. Firefox, safari, chrome, opera的最近版本以及IE9都支持. IE8及以下不支持HTML5, 但是ExplorerCanvas库(http://excanvas.sourceforge.net/)调用IE内部功能提供了几乎相同的API. ExplorerCanvas不支持字体, 所以为了使用文字, 还需要使用canvas-text库(http://code.google.com/p/canvas-text/).使用Expl ...
记录日志是应用开发的一个重要部分。比较普通的工具是log4j,前一阵子了解了下log4j 1.x,发现现在流行的是另一个强大的日志框架logback。
官方网站:http://logback.qos.ch/
日志工具的三个主要的元素Logger,Appender,Layout.
Logger是用来记录日志的。Appender是输出地点,Layout是输出格式。
可以通过如下方式去获取logger对象:
Logger rootLogger = LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME) ...
初学log4j的配置
- 博客分类:
- log4j
转:http://www.cnblogs.com/alipayhutu/archive/2012/06/21/2558249.html
【1】从零开始
a). 新建Java Project>>新建package>>新建java类;
b). import jar包(一个就够),这里我用的是log4j-1.2.14.jar,
c). 新建log4j.properties,置于project根目录下;
碰到一个问题。csdn上查了下看到个类似的,就转摘过来了。
问题如下:
一直没用过 增强for循环, 现在 我用用看, 但是我要判断是否有下一个元素存在, 目的是打印词组 , 没到最后一个的时候 中间打印逗号 , 是最后一个元素的话 就不用打印逗号了 , 请问怎么判断呢?for(HotkeyBean hb:keyal ){ out.print(hb.getKeyword()); }
有人是这样回答的,个人感觉很巧妙啊
String sp = "";
for(HotkeyBean hb:ke ...
最近上班遇到两个问题,在此mark下。
1.img src为空导致session被清的问题,src为空不只是字符串为空还包括路径地址404,会导致session被清。
2.springmvc 乱码问题,如果本地正常,测试服务器上不正常,可能的原因是出在tomcat上,要在server.xml配置 URIEncoding="UTF-8"。
前言 关于SpringMVC初始化ContextLoader中的XMLWebApplicationContext,以及DispatcherServlet初始化等等,这样的原理 已经有N多的前辈和牛人总结过了, 我就不在这里重复轮子了。~ 废话 Spring源码还是层次十分分明的,只要了解原理,相信看起来也不会很困难, 但是它的精髓还有其中使用到的设计模式, “架构”少不了模式, Spring正是因为采用大量的模式而使其易于用户扩展。 正文 找到DispatcherServlet类中的doDispatch体,我们可以看到,它的作用是相当于在Serv ...
最近发现个神奇的问题,点击链接发现在线客服的访问记录数据没入库,后来发现是由于浏览器缓存导致的问题,解决方法是参数后面加一个时间戳就可以解决。避免用户点击链接后访问的是自己的缓存,而不做任何请求。
SpringMVC学习笔记(1)
- 博客分类:
- SpringMVC
最近在看开涛的springmvc的教程,写的很清楚,以前只会盲目的使用,现在要从原理上学学。
springmvc是个优秀的控制层框架,核心是controller,下图是核心,附件主要是ServletForwardingController,SimpleFormController,CancellableFormController,AbstractCommandController的demo实现及springmvc基础框架配置文件的搭建
相关链接:http://jinnianshilongnian.iteye.com/blog/1752171
---itey ...