Java
文章平均质量分 74
程序媛征男友
这个作者很懒,什么都没留下…
展开
-
三十四、JSON转换小细节
今天遇到一个非典型性的需求,要写一个新的方法,其方法实现与已经实现了的一个老方法是一模一样的,但两个方法的入参和返回值都是相同的只是名称不同而已。要求必须写成两个方法,并携带各自的入参和返回值。那要怎么做呢?有几种方法?最简单的是,首先将新方法的入参和返回值转成和老方法一样的再在新方法中调用老方法。老方法如下:public QueryFeedCommentsResponse queryFe原创 2014-02-26 18:13:00 · 677 阅读 · 0 评论 -
三十五、字符集到底是怎么回事呀
public static void main(String[] args){String dir = "C:/Users/tao/config/nvshen-sensitive-words.properties";File file = new File(dir);InputStream is = null;try {is = new FileInputStream(file);System.o原创 2014-04-25 11:40:59 · 654 阅读 · 2 评论 -
三十七、多线程的两种模式
下面用多线程的两种模式:原创 2014-07-22 18:16:51 · 519 阅读 · 0 评论 -
三十六、sigar配置那些事
Sigar全称是SystemInformation Gatherer And Reporter,中文名是系统信息收集和报表工具。要想使用sigarSigar.jar包是通过本地方法来调用操作系统API来获取系统相关数据。原创 2014-07-04 09:55:11 · 850 阅读 · 0 评论 -
三十九、如何单独发布jar包
想实现一种功能,任何需要的 在服务器上运行,原创 2014-08-01 10:22:44 · 810 阅读 · 0 评论 -
三十八、多线程实例
有下面两种实现:private static void searchFile(final File f) throws InterruptedException { if (f != null) { if (f.isDirectory()) { File[] fir = f.listFiles(); if (fir != null) { for (int i原创 2014-08-01 10:04:19 · 571 阅读 · 0 评论 -
四十、线程池
根据线程池的原理,自己实现个线程池。/* * 线程池管理器:用于创建并管理线程池,包括: 创建线程池,销毁线程池,添加新任务 * 客户端等待一个可用线程、将任务传递给该线程以便执行、然后在任务完成时将线程归还给池 */public class ThreadPool { private static ThreadPool instance = null; private Li原创 2014-08-22 16:47:23 · 593 阅读 · 0 评论 -
三十一、反射的应用之一
遇到这样一个业务场景:要使用的类有个私有的变量,并且要使用的该类中一个方法需要用到这个变量。要求在运行时对这个变量进行更改后,使用这个方法,就是要使用这个方法中已经动态改变了的变量。结合下面的代码,就是在InvokerForDaughter中调用Father的execute()方法,此方法中用到的privateKey是个private的,没有set方法对其进行改变,只有个可利用的构造函数可将其原创 2013-09-30 21:13:10 · 607 阅读 · 0 评论 -
二十七、权限控制的自定义注解实现方式
目的:将账号的操作权限通过数据库进行配置,程序限制只有当拥有某权限时才能调用相应方法。首先在注解类里定义权限(包括读、写、审核权限)。@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface AuthAnnotation { public enum AuthLevel{read原创 2013-01-25 16:15:06 · 839 阅读 · 0 评论 -
七、Java多线程与并发
JAVA平台为程序员提供了并发编程所需的功能强大的API,呵呵,就像一块奶油蛋糕般刺激你的味蕾同时又挑战你将体重控制在某个水平的信念,该篇及后续文章展示Java 多线程与并发编程的诱人之处,帮助理解Java并发编程的模式,以及如何更精确地使用线程模型。Java 线程基础一、锁 锁提供两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。原创 2011-12-11 22:36:04 · 1109 阅读 · 0 评论 -
二十二、应用双重锁定检查于单例模式中的问题
之前在很多单例类中看到双重锁定检查(DCL),也听到过两种声音:第一种声音是希望只在第一次创建实例时进行同步,于是才有两次判断instance是否为null的判断;另一种声音是双重锁定检查用在这里根本起不到预想的作用。今天终于知道后一种说法的原因了。public class SingletonPattern { private static SingletonPattern instanc原创 2012-08-27 16:18:13 · 506 阅读 · 0 评论 -
十一、多线程的应用场景
我们有时貌似熟悉异步、多线程、任务和并行,但有时又不一定特别清楚它们之前的本质区别,甚至在很多复杂的场景下乱用一气。下面我就结合场景来说明在什么情况下该采用什么。同时,还讲解下如何优雅地控制线程,处理任务和并行中的异常。 一、在什么场景可以使用多线程想要同时处理多件事:单线程处理不了的,必须使用多线程。(类似于分身术)多个线程分解大任务:用单线程可以做,但是使用多线程可以更快。(原创 2012-01-04 16:28:53 · 7837 阅读 · 1 评论 -
十二、多线程的同步
在一个应用程序中使用多线程,一般情况下,这多个线程之间是要互相通信并共享结果的。让多个线程共享结果的最简单方法是使用共享变量,线程与同一个进程中的其他线程共享相同的进程上下文,包括内存,因此只要访问共享变量(静态或实例字段),线程就可以互相交换数据。要保证这些共享变量值从一个线程正确传播到另一个线程,保证一个线程在更新一些相关数据时其他线程看到一致的中间结果,要使用同步。即通过使用同步来保护对共享原创 2012-01-06 09:14:57 · 845 阅读 · 0 评论 -
二十一、自定义注解实例
示例:用自定义注解实现对权限的控制。如果只有读权限就只可见页面上查询部分,如果有写权限或全部权限就不但能操作查询部分还能操作修改部分。(查询部分和修改部分用文字代替,但只要在页面可见就表示可以操作) 首先是定义注解类和使用这个自定义注解的类:import java.lang.annotation.ElementType;import java.lang.annotation.Ret原创 2012-07-26 17:25:21 · 482 阅读 · 0 评论 -
二十三、自定义并解析Xml文件
第一步,定义Xml文件。随便定义一个xml,例如:1 10000 第二步,获取Xml数据。(Xml文件读入在页面上一般会用个弹出框或者浮层的展现形式,但从实现上一般来说都会是一个异步ajax请求。)首先从request中取xml描述信息,比如String xmlDesc = rundata.getRequest.getParamet原创 2012-09-10 11:39:38 · 1205 阅读 · 1 评论 -
十三、Java线程基础
本篇介绍线程的基础知识,包括:线程是什么、线程为什么有用处、怎样开始编写使用线程的程序、如何控制线程、如何在线程之间交换数据以及线程如何互相通信。一、线程是什么 进程是在某种程度上相互隔离的、独立运行的程序。线程也称作轻量级进程,就像进程一样,线程在程序中是独立的、并发的执行,每个线程有自己的堆栈、程序计数器和局部变量。但是与进程想比,进程中的线程之间的隔离程度要小,线程共享内原创 2012-01-06 09:20:45 · 686 阅读 · 0 评论 -
十八、设计模式 之 组合模式
目标:用组合模式实现规则的校验。首先设计一个规则表,包括member_level、rule_type、condition_key、condition_value等字段。然后用树形结构来拼装规则,根节点是道具规格版本的id,第一层树枝节点是member_level,第二层是rule_type,第三层就是叶节点了,叶节点存储的是个map,map的key是condition_key,value是co原创 2012-04-28 17:10:46 · 444 阅读 · 0 评论 -
十九、一套规则限制的校验
首先在spring容器启动时加载所有规则校验类。在SpringObjectCheckManagerFactory类的afterPropertiesSet()方法中进行加载。所有规则校验类都实现自ObjectCheck接口。 package com.taobao.member.prop.ao.check;import com.alibaba.common.logging.Lo原创 2012-05-31 19:37:47 · 492 阅读 · 0 评论 -
四十一、页面爬取处理
一、页面的爬取如何获取网页内容,不明觉厉呀,原来就是一个HttpClient搞定。 比如下面获取聚划算首页的例子,简洁完整地展示了HttpClient的使用过程。import java.io.IOException;import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.method原创 2014-10-11 17:19:45 · 705 阅读 · 0 评论