java
文章平均质量分 73
天义tianyi
软件工程师
展开
-
领域模型系统设计/新零售平台架构
原创 2019-11-30 21:58:56 · 603 阅读 · 0 评论 -
Guava学习笔记之Joiner ,Strings,Splitter 工具实例
Guava一.Strings1.Strings.padEnd方法//padEnd普全右 String a="12345"; String b=Strings.padEnd(a, 10, 'x'); System.out.println(b);结果为:12345xxxxx2.Strings.padStart方法//padStart 普全左 String a="12345原创 2014-12-08 19:08:18 · 2871 阅读 · 1 评论 -
Guava学习笔记之Cache实例
Guava是谷歌的java类库,功能十分强大,下面是本地内存缓存工具类实例,在第一次通过调用get(key)时,会调用load去获取值,当再次调用时,我们发现就直接从缓存中调用了,根据maximumSize设置缓存大小,当大小超过限度的时候,会从缓存中移除最远的数据。实例如下。Guava cahche实例,通过loadingCachepublic class Main {原创 2014-12-08 20:05:15 · 3465 阅读 · 0 评论 -
Maven+jersey快速构建RESTful Web service集成mongodb-短小而精悍-值得拥有
Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service。此外Jersey还提供一些额外的API和扩展机制,所以开发人员能够按照自己的需要对Jersey进行扩展原创 2014-12-03 23:33:37 · 3813 阅读 · 0 评论 -
Map,List,Set类图
注意点:Map不实现Collection, Collections只是工具类。原创 2014-12-17 10:58:58 · 1014 阅读 · 0 评论 -
JAVA绝对干货——List、Set、Map并发数据结构对比实现
在对List、Set、Map并发应用场合,我们可以使用Collections的下面方法将非线程安全List、set、Map转化为线程安全的。但是效率并不是最好的,JDK提供了专门的线程安全List与Set实现类,后面我们将讨论下他们的具体实现。原创 2014-12-01 11:49:33 · 10913 阅读 · 0 评论 -
JAVA多线程并发变量控制方法之volatile修饰工作原理
在JAVA中,每个线程都有一块属于自己的工作内存区,该内存区会保存一份从主内存拷贝过来的公共变量值。不加volatile修身的变量在每个线程中的值修改一般都是独立的。及如下图所示。原创 2014-12-01 14:54:27 · 2442 阅读 · 1 评论 -
并发模式Future ,JAVA内置模块Callable接口实现 实例
package futureCallable;import java.util.concurrent.Callable;public class RealData implements Callable { private String para; public RealData(String para) { this.para = para; } @Override原创 2014-11-25 10:41:06 · 612 阅读 · 0 评论 -
JAVA NIO的BufferByte与Channel DEMO实例
package nio;import java.io.FileInputStream;import java.io.FileOutputStream;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.channels.FileChannel;import java.nio.charset.Cha原创 2014-11-25 11:28:32 · 693 阅读 · 0 评论 -
Struts2+mybatis+Spring+Maven
目录结构如下:原创 2014-11-25 10:53:34 · 1965 阅读 · 0 评论 -
并行JAVA程序设计模式Future模式
package future;public class Client { public Data request(final String queryStr) { final FutureData future = new FutureData(); new Thread() { public void run() { RealData realdata =原创 2014-11-25 10:15:38 · 520 阅读 · 0 评论 -
JAVA与框架开源协议说明
技术与工具是否开源开源协议是否免费Spring Framework是Apache License是Struts2是Apache License是Hibernate是GNU LICENSE 是原创 2014-11-26 15:25:57 · 3354 阅读 · 0 评论 -
BlockingQueue
前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个转载 2014-11-25 14:54:41 · 362 阅读 · 0 评论 -
ExecutorService线程池
1.CachedThreadPool CachedThreadPool首先会按照需要创建足够多的线程来执行任务(Task)。随着程序执行的过程,有的线程执行完了任务,可以被重新循环使用时,才不再创建新的线程来执行任务。我们采用《Thinking In Java》中的例子来分析。 首先,任务定义如下(实现了Runnable接口,并且复写了run方法):转载 2014-11-25 15:12:17 · 587 阅读 · 0 评论 -
JAVA生产者与消费者模式 BlockingQueue与ExecutorService实例
首先创建生产者:package ProducerAndConsumer;import java.util.Random;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;pub原创 2014-11-25 15:14:06 · 2094 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
ava 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要转载 2014-11-25 12:28:56 · 348 阅读 · 0 评论 -
搭建LVS+KeepAlived环境
interval 9 //监控时间 weight 1 //权重值,数值越大权重越高 } 2. track_script { chk_http //执行监控的服务 } 启动keepalived服务 # service keepalived start Startin转载 2014-05-26 09:46:32 · 746 阅读 · 0 评论 -
eclipse安装freemarker插件
eclipse安装freemarker插件最近安装了eclipse,需要安装freemarker插件,用之前链接http://www.freemarker.org/eclipse/update是不可用的。后几经周折再jboss的网站找到相关的方法第一种在http://www.jboss.org/tools/download/stable/3_0_GA.html网页上下载需要的插件,通过转载 2013-04-11 09:56:04 · 570 阅读 · 0 评论 -
Shiro 是 JAVA 世界中新近出现的权限框架
Shiro 是 JAVA 世界中新近出现的权限框架,较之 JAAS 和 Spring Security,Shiro 在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势。本文就带领读者一睹 Shiro 的风采。可能大家早先会见过 J-security,这个是 Shiro 的前身。在 2009 年 3 月初之前,这个安全框架叫做 J-security,由于某些原因,更名为 Shiro(或者转载 2013-04-11 09:11:44 · 787 阅读 · 0 评论