- 浏览: 468354 次
- 性别:
- 来自: 杭州
最新评论
-
chxiaowu:
nice!
Quartz实现固定执行次数 -
zxjlwt:
学习了。http://surenpi.com
自定义ClassLoader -
kadlly:
public static final Logger log ...
Hessian 权限认证 -
spring_springmvc:
java程序语言学习教程 地址http://www.zuida ...
Java-Final -
liushuiwuyan:
[img][/img]
设计模式-单例
文章列表
Eclipse 插件能干什么, 可以拉一些新闻,天气,自己感兴趣的东西,当然还能自动开始抢号程序等等。
现在就开发一个天气预报程序吧, 不用每天看天气都要去网站看,多麻烦。
当然比如你对足球感兴趣,那么可以把足球资讯拉过来, 还有更多东西都可以在一个页面里完成。
界面很简单,展示了最佳一个星期的天气, 这是从yahoo拉过来的网页, 和通过网页访问时一样的。
原理也简单,每次访问都会去判断是否今天访问过了,如果访问过了就取本地数据,如果没有访问过,那么就从网站拉数据到本地。
敢兴趣的可以从附件下载, 因为没有采用UI,所以支持所有eclipse版本.
曾记得有一款eclipse插件叫Easy Explorer, 但是我已经找不到了,就算有也下不到,每次打开文件都要到Windows目录下一个一个找,最近闲来无事,就自己开发了一个, 基于OSGI的开发,你会感觉非常轻松,需要其他组件直接应用下就O ...
Java 字符串分词
- 博客分类:
- JDK
在Java的世界里有个类型叫String,中文名就字符串。
很多时候我们需要使用它来存储, 出了基本的8个类型外,还有Date和String这两个特殊的“基本”类型.
对于字符串,我们接触的多,处理的多,却很少去总结, 比如我们经常把 ...
we usually export datas with *.cvs file to custom.
we usually import datas with *.cvs file from custom.
so we should have a good library to read and write cvs file.
高内聚,低耦合,可扩展,使用方便.
i choose Google Code [JCSV]
use annotation to assign which column should be apply to Java Ojbect field.
publ ...
Spring 擅长对组件的封装和集成, Spring-context对JDK的并发包做了功能增强。
<bean id="asyncTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10" />
<property name="maxPoo ...
不知道写什么, 先mark一下。
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
// start the thread
}
public void contextDe ...
- 2014-11-10 15:04
- 浏览 813
- 评论(0)
我们可能会定义一些拦截器,但是他在容器中是怎么工作的呢,什么时候初始化,什么时候执行,什么时候销毁.
比如做权限验证
<filter>
<filter-name>Auth</filter-name>
<filter-class>UrlFilter</filter-class>
<init-param>
<param-name>fail</param-name>
...
Servlet 的生命周期
- 博客分类:
- web
以前只知道继承HttpServlet,然后Servlet容器就会自动调用doGet/doPost方法来提供service服务, 却不知道为什么,知道HttpServlet有生命周期init==>service==>destroy,生命周期由Servlet容器管理,却不知道怎么管理的,闲来无事就选择Tomcat作为研究对象。
其实以我做Java十几年的经验, 看源码似乎已成习惯:
1. Servlet init.
其实并不是所有的Servlet都是Servlet容器初始化就加载的,而是Servlet被第一次调用的时候加载.
web 2.4 configration
< ...
性能都是相对的,如果调用量不是很大的话,可以忽略,毕竟使用为主。groovy支持的语法还是很多的,灰常推荐,我这只是小实验罢了
代码执行如下:
/**
* @param args
* @throws ScriptException
*/
public static void main(String[] args) throws ScriptException {
// TODO Auto-generated method stub
ScriptEngineManager sem = new ScriptEngineManager();
//se ...
Fake Code easy implements
- 博客分类:
- JDK
package org.miniframe.modules.utils;
import java.util.HashMap;
import java.util.Map;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class FakeCod ...
JDK regex 用法及用途
- 博客分类:
- JDK
查找 Boolean flag = pattern.matcher("fda").find();
分割 String[] mm = pattern2.split(“say:”);
格式化 String format= pattern1.matcher(String.valueOf(vv)).group()
替换 String format= pattern3.matcher(ss1) .replaceAll("A")
匹配 String format= pattern5.matcher(email).matches()
public c ...
需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓库可以存放10个产品。 第一批产品需要生产20个产品,并消费完毕。
这次不使用独占锁,使用CPU原语CAS.
CAS 简单来说就是由CPU比较内存位置的值是否为当前值,如是则将其设置为next,如否则返回false.因此上面的代码片段要在一个无限循环中执行,这样可以保证并发时id的顺序.
基于CAS操作可以认为是无阻塞的,并且由于CAS操作是CPU原语,因此其性能会好于之前同步锁得方式。
package ycl.learn.effective.java.thread.pc;
import java.util.co ...
需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓库可以存放10个产品。 第一批产品需要生产20个产品,并消费完毕。
这里使用JDK5中的并发包中的类Lock.
package ycl.learn.effective.java.thread.pc;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* 公共资源类
*/
p ...
需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓库可以存放10个产品。 第一批产品需要生产20个产品,并消费完毕。
其实使用wait/notify模式实现差不多,只是使用的时候要注意防止“死锁”。
blockingQueue的实现与notify的实现效率差不多.
package ycl.learn.effective.java.thread.pc;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util. ...
生产者消费者模式(一)
- 博客分类:
- JDK
需求: 多个生产者不断的生产产品,多个消费者不断的消费产品,仓库可以存放10个产品。 第一批产品需要生产20个产品,并消费完毕。
结论: 当使用一个生产者,一个消费者是,需要4610,使用7个生产者,7个消费者时,只需要900,可见当N个任务耗时长,使用多线程可以充分发挥多核CPU的优点.
package ycl.learn.effective.java.thread.pc;
/**
* 公共资源类
*/
public class PublicResource {
private int number = 0;
private int index = ...