- 浏览: 58316 次
- 性别:
- 来自: 成都
最新评论
文章列表
关于java内部类,这篇文章写的非常好。尊重作者的劳动成果:
http://www.cnblogs.com/dolphin0520/p/3811445.html
现在写点我自己在作者基础上的一点总结:
这里有一个问题,接口到底能不能new,一般的答案都是不可以。但是事实上却是可以的,什么时候可以?当他作为一个匿名内部类的时候。
内部类主要的用途就是匿名内部类,用于某些回调,以及一些事件的调用。
内部类访问外部类的局部变量为什么局部变量必须是final的? 因为java采用复制的方法将局部变量的值拷贝复制,这样如果在内部类中修改该变量就会导致局部变量和内部类中的变量不 ...
static关键字的设计初衷,套用thinking in java中的解释即:
1、只想用一个存储区域来保存一个特定的数据,无论要创建多少个对象,甚至不创建对象。(即,可以在不创建对象的情况下保存数据,且这些数据为该类共享(与类绑定))。
2、创建一个特殊的方法,该方法没有与对象进行绑定,可以通过类名直接调用。(即可以在不创建对象的情况下调用某个方法)。
通过上面这两条设计初衷导致的结果是:静态变量不可以访问非静态变量,因为非静态变量与具体对象进行绑定,但是非静态变量却可以访问静态变量。因为静态变量的值为所有类对象所共享。注意:static关键字不能修饰局部变量。
static关键字的常见 ...
最近用到了jackson转json。看了下TypeReference的源码,记录下。便于以后自己可以用来做一些针对泛型反射简单的封装。
public abstract class TypeReference<T> implements Comparable<TypeReference<T>>
{
protected final Type _type;
protected TypeReference()
{
Type superClass = getClass().getGenericSuperclass();/ ...
在linux下 tab键的使用
他主要可以补全命令。可以命令补全和档案补全。
tab接在一串指令的第一串字符后面则为命令补全。接在第二串字符后面则为档案补全。
ctrl+c:中断当前命令。
ctrl+d:相当于exit,中断当前的输入。
要查询一个命令都有哪些参数的时候,直接用man。例如:man date就是查询date命令的信息。
main -k write:查询文件中有write字符串的文件。查询文件非常方便。可用apropos替代。
改变一个文件的权限可以用:
chown:改变该文件的拥有者。
chgrp:改变该文件的组权限。
chmod:改变该文件的读写执行权限 ...
mybatis分页插件pageHelper原理
- 博客分类:
- 数据库
看了下pageHelper的源码简单记录下原理:
其原理为首先利用ThreadLocal获得分页信息(当前页,总页数等)
然后执行PageHelper拦截器获取其中的sql,将分页信息拼装到sql中,
最后执行sql完成分页。
一个基于spring aop实现的日志系统
- 博客分类:
- spring
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4 ...
java到底是按照值传递还是引用传递
- 博客分类:
- java
public class Transfer {
public static void main(String[] args) {
/*
* 传递基本类型的参数效果很明显,是传递的内存地址值的拷贝.
* 原值不改变
* 基本数据类型的变量在赋值之后传递的是变量的值.
* */
int i = 1;
change(i);
System.out.println(i);
/*
* 不改变builder对象内存地址值的指向,发现原对象已经发生改变。
* */
StringBuilder builder = ...
一个非常简单的java缓存管理类
- 博客分类:
- java缓存
这个真的很牛。几十行代码实现了java的缓存全部采用jdk的类。
package com.test.cache;
import java.util.Map;
import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public final class SimpleCacheMy<K,V> {
private ...
spring静态注入
- 博客分类:
- spring
spring注解是不支持静态注入的。貌似spring也不支持这种方式。
不过可以用配置文件的方式注入静态属性的变量例:
private static EntityManagerFactory entityManagerFactory;
public EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}
public static void setEntityManagerFactory(EntityManagerFactory entityManagerFactor ...