- 浏览: 17369 次
- 性别:
- 来自: 北京
最新评论
-
85977328:
另外不太清楚portlet是啥东西
spring bean的四种常用作用域的测试 -
85977328:
文章写的太好了。转载了~~~
spring bean的四种常用作用域的测试
文章列表
JAVA多线程计数器的问题
- 博客分类:
- JAVA语言 并发
现在web程序的计数器的应用场景比较多,分布式计数器可以使用redis,但是作为java程序员就会考虑怎么使用单节点多线程实现一个计数器。
计数器有两个层次的要求
1,多个线程访问不会造成计数器数值丢失
2,是否对计数器返回的值有要求,比如打印,比如用这个值做些事情
如果要满足2的话,那只有一种方式就是加锁,把相应的代码块加锁
如果要满足1的话,有两种思路,一个使用Java的并发包里面的atomic类型,一种是使用volatile变量然后使用sychronized变量。
因此有了如下两个程序
程序1
package com.fb.concurrency; ...
spring bean的四种常用作用域的测试
- 博客分类:
- spring
Spring的 bean有5种作用域分别是:singleton、prototype、request、session和globalSession
简单介绍:
spring 起初的版本只有singleton,也就是是否是单例模式。
作用域包括:
singleton
全局只有一个实例
prototype
每次调用产生一个新的实例
在web使用的时候还有三个作用域,但是必须在web.xml中注册一个RequestContextListener , 目的是为了设置每次请求开始和结束都可以使spring得到相应的事件。
request
每次请求产生一个bean
session
...
听说Redis已经很长时间,大多数时候都是按照memcache的缓存的方式使用它。
但是听说几种场景用redis实现比较好。
目前需要掌握的场景:
1,分布式锁(比如核心资源的竞争和分布式的同步)
2,分布式计数器(比如秒杀) ...
这段时间因为做一个应用的需要,重新捡起ibatis+spring做web开发。
用ibatis的原因是速度,hibernate的执行速度和执行过程中产生的海量的类文件加载卸载的垃圾太多了,需要设置很大的Permgen的大小,才能保证运行正常。
但是重新使用Ibatis的时候,发现Ibatis好多的方法都被@Deprecated的,看样子升级到mybatis势在必行。
升级过程主要包括几个方面
1,jar包升级。
需要引入mybatis的包,同时 引入mybatis和spring集成的包。还包括数据库的包,连接池的包,另外mybatis估计使用的是动态代理机制,所以需要引入cg ...
面试的时候遇到一个问题,继承关系的静态方法是否可以覆写。
根据对JAVA语言的了解,静态方法是和类绑定的,因此不存在覆写,在运行时,继承关系应该是针对对象的,而不是类的。
具体的方式参考http://phl.iteye.com/blog/2029729
在这儿写一下多线程访问的时候锁定的状况。
public class child extends father {
public synchronized static String call() throws InterruptedException {
System.out.println("thi ...