第一种:注解配置AOP
java中注解配置AOP(使用
AspectJ 类库实现的),大致分为三步:
1. 使用注解@Aspect来定义一个切面,在切面中定义切入点(@Pointcut),通知类型(@Before, @AfterReturning,@After,@AfterThrowing,@Around).
2. 开发需要被拦截的类。
3. 将切面配置到xml中,当然,我们也...
分类:
编程语言 时间:
2015-05-15 17:55:46
阅读次数:
175
一个面试题
如果让你实现微信的“附近的人”功能,你会怎么做??
初期实现:客户端固定时间发送经纬度(x,y)到服务器s,服务器存储每个登陆的用户的经纬度到表t中,表t按照经纬度分表,将地图分成一个个的小格子。当用户店家“附近的人”时,对用户(x,y)进行计算,最多一次查询其中的4个格子(子表),计算两点间距离获取结果(有点像桶排序)。性能上可以将表t替换为内存结构,容灾即可。从实际的微...
分类:
微信 时间:
2015-05-15 17:54:52
阅读次数:
286
public class Main {
public static class MyCallable implements Callable{
public Integer call() throws Exception {
return 1;
}
}
public static void main(String[] args) {
MyCallable callable...
分类:
编程语言 时间:
2015-05-15 10:46:57
阅读次数:
123
super()与this()的区别?
this()调用当前对象的无参构造函数,super()调用父类的无参构造函数
1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
3)super: 它引用当前对象的直接父类中的成员(用来访...
分类:
编程语言 时间:
2015-05-15 09:05:54
阅读次数:
143
Java中break只能跳出当前循环,要想跳出多重循环可以使label标签:
例:
public class StepoverMultiLoop
{
public static void main(String[]
args) {
int count
= 0;
ok:
for (int i
...
分类:
编程语言 时间:
2015-05-15 09:04:21
阅读次数:
146
原文链接 作者:Jakob
Jenkov 译者:刘晓日 校对:丁一
重入锁死与java中的死锁非常相似。锁和读写锁两篇文章中都有涉及到重入锁死的问题。
当一个线程重新获取锁,读写锁或其他不可重入的同步器时,就可能发生重入锁死。可重入的意思是线程可以重复获得它已经持有的锁。Java的synchronized块是可重入的。因此下面的代码是没问题的:
(译者注:这里提到的锁都是指的...
分类:
编程语言 时间:
2015-05-14 18:51:39
阅读次数:
170
文地址:jenkov 作者:
Jakob Jenkov 译者:长源 校对:方腾飞
java线程池(Thread
Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。
我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程。只要池里有空闲的线程,任务就会分配给一...
分类:
编程语言 时间:
2015-05-14 18:49:14
阅读次数:
150
原文链接 作者:Jakob
Jenkov 译者:申章 校对:丁一
java中的锁像synchronized同步块一样,是一种线程同步机制,但比Java中的synchronized同步块更复杂。因为锁(以及其它更高级的线程同步机制)是由synchronized同步块的方式实现的,所以我们还不能完全摆脱synchronized关键字(译者注:这说的是Java
5之前的情况)。
自J...
分类:
编程语言 时间:
2015-05-14 12:07:41
阅读次数:
179
原文链接
作者:Jakob Jenkov
译者:余绍亮 校对:丁一
嵌套管程锁死类似于死锁,
下面是一个嵌套管程锁死的场景
线程1获得A对象的锁。
线程1获得对象B的锁(同时持有对象A的锁)。
线程1决定等待另一个线程的信号再继续。
线程1调用B.wait(),从而释放了B对象上的锁,但仍然持有对象A的锁。
...
分类:
编程语言 时间:
2015-05-14 10:03:06
阅读次数:
189
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。
1.Java集合框架是什么?说出一些集合框架的优点?
每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安...
分类:
编程语言 时间:
2015-05-14 08:48:37
阅读次数:
196