- 浏览: 33944 次
- 性别:
- 来自: 上海
最新评论
-
shwangminggao:
标题党、标题党。
terracotta -
cometzb:
能不再详细一些
dubbo ---- ThreadPoolExecutor.AbortPolicy -
cometzb:
ServiceLoader服务加载
文章列表
BasicStroke的用法【转】
- 博客分类:
- Java
1. 基本概念
在JAVA 2D开发中,BasicStroke用于定义线条的特征,我们可以调用Graphics2D类中的setStroke方法来将新创建的BasicStroke对象设置进去。BasicStroke的构造方法如下所示:
对图形的一些专业名词不熟悉的程序员来说,想要根据API说明文档来理解这个方法的使用,实在有点过于困难了,所以,在这里整理了一下,便于大家理解。
2. 构造方法参数说明
2.1
ConcurrentHashSet简单实现
- 博客分类:
- Java
import java.util.AbstractSet;
import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java.io.Serializable ...
dubbo --- LRUCache简单实现
- 博客分类:
- dubbo
import java.util.LinkedHashMap;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class LRUCache<K, V> extends LinkedHashMap<K, V> {
private static final long serialVersionUID = -5167631809472116969L;
private static final float DE ...
public class AbortPolicyWithReport extends ThreadPoolExecutor.AbortPolicy {
protected static final Logger logger = LoggerFactory.getLogger(AbortPolicyWithReport.class);
private final String threadName;
private final URL url;
public AbortPolicyWithReport( ...
在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,但配置较为复杂或者需要更多丰富控制的时候,会显得非常笨拙。一般的做法会用原生态的方式去解析定义好的xml文件,然后转化为配置对象,这种方式当然可以解决所有问题,但实现起来比较繁琐,特别是是在配置非常复杂的时候,解析工作是一个不得不考虑的负担。Spring提供了可扩展Schema的支持,这是一个不错的折中方案,完成一个自定义配置一般需要以下步骤:
设计配置属性和JavaBean 编写XSD文件 编写NamespaceHandler和BeanDefinitionParser完成解析工作 编写spr ...
ServiceLoader服务加载
- 博客分类:
- dubbo
首先定义一个接口:
package com.peter.sl;
public interface Sl {
public void say();
}
将接口打包成jar文件
新建一个工程,SlImpl实现接口Sl
package com.peter.sl;
public class SlImpl implements Sl {
@Override
public void say() {
System.out.println("this class is loaded by ServiceLoader");
...
JDK5中的一个亮点就是将Doug Lea的并发库引入到Java标准库中。Doug Lea确实是一个牛人,能教书,能出书,能编码,不过这在国外还是比较普遍的,而国内的教授们就相差太远了。
一般的服务器都需要线程池,比如Web、FTP等服务器,不过它们一般都自己实现了线程池,比如以前介绍过的Tomcat、Resin和Jetty等,现在有了JDK5,我们就没有必要重复造车轮了,直接使用就可以,何况使用也很方便,性能也非常高。
[java] view plaincopy
大家都知道Java是不能够声明泛型数组的,诸如以下的语法是不支持的:
List<String>[] ls = new ArrayList<String>[10];
而这样声明却是可以的:
List<String>[] ls = new ArrayList[10]
但是我一直不清楚为什么不能够声明泛型的数组,指定类型可以让编译的时候不会出现类型安全的提示。
直到今天我看到Sun的一篇文档才清楚,里面提到了一种情况:
List<String>[] lsa = new List<String>[10]; // Not really ...