- 浏览: 87592 次
- 性别:
- 来自: 成都
最新评论
-
kazy:
挺有意思的
Java 泛型 内部链式存储机制 -
qingchengbuzai:
谢谢分享,但有个问题向请教下,用android:theme=& ...
Android 系统自带样式Android:theme
文章列表
Java 泛型 通用生成器
- 博客分类:
- J2SE
public class BasicGenerator<T> implements Generator<T>{
private Class<T> type;
public BasicGenerator(Class<T> type) {
super();
this.type = type;
}
@Override
public T next() {
try {
return type.newInstance();
} catch (Exception e) {
e.print ...
public class New {
/**
* 这就是类型推断
*/
public static <K, V> Map<K, V> map() {
return new HashMap<K, V>();
}
public static <T> List<T> list() {
return new ArrayList<T>();
}
public static <T> LinkedList<T> lList() {
return new ...
Java 泛型 内部链式存储机制
- 博客分类:
- J2SE
泛型方法:无论何时,只要你能做到,你就应该尽量使用泛型方法。也就是说,如果使用泛型方法可以取代整个类泛型化,那么就应该只使用泛型方法。
public class LinkedStack<T> {
private/* static */class Node<U> {
U item;
Node<U> next;
Node() {
item = null;
next = null;
}
Node(U item, Node<U> next) {
this.item = item;
...
1,泛型类
public class Holder<T> {
private T a ;
public Holder(T a){
this.a = a;
}
public T getA() {
return a;
}
public static void main(String[] args) {
Holder<String> h1 = new Holder<String>("12345678");
System.out.println(h1.getA());
}
}
当你创建H ...
Java volatile的用法
- 博客分类:
- J2SE
Java 理论与实践: 正确使用 Volatile 变量
volatile 变量使用指南
http://www.ibm.com/developerworks/cn/java/j-jtp06197.html
另附 双重检查加锁 单例模式
public class Singleton {
/**
* volatile关键词确保:当uniqueInstance变量被初始化成Singleton实例时,多个线程正确地处理uniqueInstance变量
*/
private volatile static Singleton uniqueInstance;
pri ...
之前做需求需要用java执行压缩(“tar -czvf ***”)并下载文件,于是用java代码直接执行tar命令,最后压缩文件里面是空的,这个问题挂了好几天
今天换个办法解决了
把脚本卸载服务器上 然后执行这个脚本
/**
* 运行shell
*
* @param shStr
* 需要执行的shell命令
* @return 回显
* @throws IOException
*/
public static List<String> runShell(String shStr) throws Except ...
Java 生产者消费者实现方式
- 博客分类:
- ThinkInJava
1,使用 同步队列 解决任务协调
2,使用 常规Lock,Condition解析任务协调
3,使用synchronized加锁机制
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
public class ProducerAndConsum ...
Java 垃圾回收算法
- 博客分类:
- JVM
1、引用计数(reference counting)
原理:此对象有一个引用,则+1;删除一个引用,则-1。只用收集计数为0的对象。
缺点:无法处理循环引用的问题。如:
对象A和B分别有字段b、a,令A.b=B和B.a=A,除此之外这2个对象再无任何引用,那实际上这2个对象已经不可能再被访问,但是引用计数算法却无法回收他们。
2、复制(copying)
原理:把内存空间划分为2个相等的区域,每次只使用一个区域。垃圾回收时,遍历当前使用区域,把正在使用的对象复制到另外一个区域。
优点:不会出现碎片问题。
缺点:1、暂停整个应用。2、需要2倍的内存空间。 ...
Java中的内存管理概念
- 博客分类:
- JVM
悬摆指针 (dangling references ):程序猿可能释放一个对象占用的内存空间,即使这个对象还在被其他对象引用。如果一个对象引用另一个被不小心释放的对象,这个释放对象的内存空间可能被重新分配新的对象占用。
内存泄露 (menory leaks ):泄露经常是对象占用的内存空间不再被任何其他对象引用,但是这个对象没有被回收。例如,如果你打算回收一个列表的空间,但是不小心只释放了列表的第一个元素,这个列表的其他元素将一直持有内存空间,因为这个列表引用已经不存在了,其他元素占用的空间得不到释放,造成了泄露。久而久之,类似的泄露累计,将会填满内存空间,导致没有足够的内存分配给其他的新对象 ...
java 共享资源
- 博客分类:
- ThinkInJava
防止任务在共享资源上产生冲突除了加锁的第二种方式是 根除对变量的共享。线程本地存储是一种自动化机制,可以为使用相同变量的每个不同线程都创建不懂的存储。
public class ThreadLocalVariableHolder {
private static ThreadLocal<Integer> value = new ThreadLocal<Integer>() {
private Random rand = new Random(47);
protected synchronized Integer initialValue() {
...
网页中HTML正则表达式
- 博客分类:
- ThinkInJava
exp_1=href\=["']?([a-z0-9/\\.\:?&;\=\\-_'+% \\(\\)]{1,})["']?
exp_2=src\=["']?([a-z0-9/\\.\:?&;\=\\-_'+% \\(\\)]{1,})["']?
search.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View source) {
// 定义两个List来封装系统的联系人信息、指定联系人的电话号码、Email等详情
final ArrayList<String> names = new ArrayList<String>();
final ArrayList<ArrayList<String>> details = new ArrayL ...