`
文章列表

oscache

Oscache实现的原理,基于map的扩展,通过jgroup等UDP jar包进行各点间的通信。Oschche没有通知过来后的操作,我们需要重写JavaGroupsBroadcastingListener的增删改和handleClusterNotification方法。                1:关于oscache的不足: a 获取的value不是副本,所以在缓存之外的代码有机会修改oscache里面的value 的属性值,增加了风险。 b 每个点都需要存储一份数据,增加了空间的浪费。 2: 关于oscache的优点:    基于java实现。    
代码1: List<Object> list = new ArrayList<Object>(); System.out.println(list.get(0));  如上的代码抛出 IndexOutOfBoundsException 代码2 :   List<Object> list = new ArrayList<Object>(); list.add(null); System.out.println(list.get(0));  返回null;        ...
1,关于死锁 : E有着A这个锁对象,F拥有着B这个锁对象,同时E需要B这个锁对象,F需要A这个锁对象,两者同时等待对方释放锁,这种等待应该会造成系统的崩溃。 2,关于线程阻塞,E拥有A这个锁对象,如果E的操作需要比较长的时间,而并发数比较多,其他的线程就会因为需要等待E线程释放锁而等待,这就是线程的阻塞。
单向表 package datamemory.link; //单链表 public class ObjectLink { private int size;// 链表长度 private ObjectNode head;// 头节点 public void add(Object obj) { ObjectNode node = new ObjectNode(obj, null); if (head == null) { head = node ...
以前面试的时候遇到一个面试题 :把两个整数的值进行掉换,不用中间数.后来网上查来下,代码如下所示: int i = 123; int j = 125; i = i ^ j; j = i ^ j; i = j ^ i;  今天写了个测试用例,发现效率比平常写的换法慢,想了下虽然少了个中间数的初始化,但其实算法方面需要的时间太多,没多大实际的意义。测试代码如下 @Test public void test1() { System.out.println("- ...

随即轮询

import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Test; /** 随即获取N个数据,并把这些数据拍到数据最前面(假设所有数据都不为空) */ public class RandomRank { public static final int k = 56666; public static final int num = 56665; @Test public void test1() { String[] boo ...

xstream基本用法

<Student Name="张三"> <age>19</age> </Student>     输出如上xml格式:创建一个pojo类-->Student   package mytest; public class Student { /** 姓名 */ private String name; private Integer age; public String getName() { return na ...
package thread; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; public class Daemonromactory implements Runnable { public void run() { try { ...
volatile :含义和用法参考资料 http://www.iteye.com/topic/109150   package thread; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** 优先级的测试类,一般情况下不需要用到优先级 */ public class SimplePriorities implements Runnable { private int countDown = 5; privat ...
package thread.demo; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; /** 演示线程的睡眠时间,并且比较jdk 5与以前版本的不同 */ public class Demo6 { public static void main(String[] args) { Executor ...
package thread; import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; /** Runnable是执行工 ...
runable类: package thread; public class LiftOff implements Runnable { protected int countDown = 10;// default; private static int taskCount = 0; private final int id = taskCount++; public LiftOff() { } public LiftOff(int countDo ...
编译期报错的代码 : import ipad.IpadHttpUtils; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import utils.StringUtil; import view.handler.HandlerClass; public class SendButton extends JButton { private static final long serialVersionU ...
package annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //定义注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface UseCase { pub ...
package stream.demo1; import java.io.FileInputStream; import java.io.FileOutputStream; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.Charset; public class BufferToText { private static final int BSIZE = 1024; public static void ma ...
Global site tag (gtag.js) - Google Analytics