自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Runnable, Callable, Future, ListenableFuture与FutureTask,例程

Runnable,Callable,Future和FutureTask都是java为实现多线程编程设计的类。1. 例程二话不说,先上例程。1. 实现Runnable接口,无返回值(Thread,线程池)//直接new Runnable接口,实现全部抽象方法即可(匿名类)//如果此类需要复用,可以单独定义类,实现Runnable接口Runnable myProcess...

2017-03-31 19:20:00 711

原创 java关键字:transient

transient是控制序列化字段的关键字。 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。但有时,某个Serilizable类中某些字段我们不愿意序列化,就可以加上transient关键字,这个字段的

2017-03-30 21:29:10 493

原创 guava使用实例:Lists.transform

使用Lists.transform可以轻松完成从一种类型的list到另一种类型list的转换。 代码:result.addAll(Lists.transform(authInfoList, new Function<AuthResultModel.AuthModel, String>() { @Override public String apply(AuthResultModel

2017-03-30 21:05:35 7618

原创 Jackson整合及最佳实践

Jackson是一款流行的JSON序列化/反序列化工具。 官方主页:https://github.com/FasterXML/jackson,其中包含各个子模块介绍等。 当前更新的是2.x系列,稳定版为2.8.6, released 12-Jan-2017。1. 接入Jackson系列分为三个组件: jackson-core:jacksonFactory的定义包,并提供最基础的序列化反序列化...

2017-03-17 21:08:54 2893

原创 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)

第1章 引言 随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。 水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失;

2017-03-17 19:53:29 498

原创 测试初探

我的实践: junit测试:【常用】 1. 通过@Test标记方法,可以单独执行该方法进行测试。 2. 新建ApplicationContext对象,传入spring上下文.xml文件名。 3. 调用getBean方法可以在Test类中获得需要@Autowired的服务。如IUserService userServiceImpl = (IUserSe

2017-03-17 19:53:26 322

原创 测试工具(junit, mockito)

在业务测试时,有时需要加载spring容器进行业务测试,通过@Autowired加载服务,@Test执行测试用例可以实现大多公开方法的测试。 但是加载Spring容器过程较长。如果不想加载整个Spring容器,可以用mock方式加载若干依赖的对象。 此外,使用mock方式可以测试类的私有方法。还可以动态改变对象中任何域的值(包括私有域)。 接入方式如下:

2017-03-17 19:53:16 540

原创 EhCache

ehcache是springframework中提供的缓存解决方案。用EhCache可以轻松实现对某些资源的内存缓存,并进行定时更新及手动更新。 Spring与EhCache结合,通过注解的方式即可简单实现某个方法返回值的缓存。在获取数据库数据或者其他IO成本高的数据时,缓存很有必要。 EhCache的接入过程如下: 1. pom中添加依赖:

2017-03-17 19:53:06 335

原创 枚举类

枚举类是java在jdk5.0加入的语法,通常用于描述 仅包含有限种类型的 变量。 使用enum关键字声明,格式如下。可以在枚举类中自定义内部变量,抽象方法,在枚举值的声明中要实现此抽象方法。(枚举值就是对枚举类的匿名继承) 粗浅理解: 枚举类是父类,声明了抽象方法会自动变更抽象父类。 枚举值是枚举类的匿名实现类,必须实现父类的抽象方法,并继承父类声

2017-03-17 19:52:56 279

原创 java类中变量的初始化

普通变量的初始化过程: 1. 默认值(0,false,null)。其中,char也会被作为数值,赋值为0,但不是'0’。 2. 按照在类中声明的顺序,执行初始化语句(赋值语句)和初始化块。(也即这两种初始化方法是并列的) 3. 执行构造方法。 静态变量的初始化过程: 1. 默认值。 2. 按

2017-03-17 19:52:53 863

原创 Tair

tair是淘宝提供的开源key-value服务,单机可承担万级QPS压力。 调用方法分为三类: 单个存取:put,get方法 批量存取:batchPut,batchGet方法 父子key存取:prefixMultiPut, prefixMultiGet方法。 就性能来看,父子key存取反而比批量存取性能要好些

2017-03-17 19:52:50 589

原创 查看文件系统容量

查看硬盘容量状态 df -h  查看文件夹及子系统空间 du {目录}展示此文件夹及所有子文件夹的占用空间 du -k(-m,-g) 用k(M,G)为单位展示空间 du -h 用k,M,G为单位展示人可读的占用空间 du -h --max-depth=1 定义最大的递归深度。

2017-03-17 19:52:47 642

原创 代码优化思路

响应时间优化: 思路:先定位耗时时间(打log,加监控),再针对性优化代码。 手段: 1. 对串行的逻辑,能并行的尽量开线程并行。(比如一个poi下两种goods,可以并行处理获取) 2. 数据量大的IO,尽量分块,并行获取。(比如用一个大list批量读缓存,可以分成100个一组,多线程并行读缓存)

2017-03-17 19:52:37 1432

原创 java运行管理工具jps, jmap, jstack, gc log

在java代码运行时,我们需要了解程序的运行状态,尤其是内存使用状态、是否有内存泄漏等。以下几个内容有助于实时了解java程序的状态。jps: jps用于获取启动的java程序的进程号(pid),可能存在正在运行的多个java进程。用pid可以细查某个进程的状态。jmap: jmap是分析进程内存占用状态的神器,可以查看指定pid的内存使用状态。jmap [opti

2017-03-17 19:52:34 644

原创 static关键字

static是java中的常见关键字,本意为“静态”,是指被static声明的元素,加载类的时候就会申请内存地址,且其内存地址在整个生命周期中是“静态”的,不变的,所以全局共享。 就我理解,它还有共享、无状态的含义。共享是指被static修饰的成员是属于类的,所有成员共享;无状态是指static修饰的域,不能对对象敏感/依赖任何对象的生成,没有状态。无状态的实现方式为:被static修

2017-03-17 19:52:31 246

原创 java常用的线程池

线程池 ThreadPoolTaskExecutor是一种基于Springframework的常用线程池,包含了java.util.concurrent的ThreadPoolExecutor(非继承)。 它有以下几个常用的参数 corePoolSize 核心池数量,即线程池在初始化后,维护的线程数。 queueCapacity

2017-03-17 19:52:28 394

原创 程序结束时执行任务的常用方法

程序结束时执行任务,常用方式:1. @PreDestroy / destroy-method 使用Spring注解@PreDestroy,在容器销毁该bean之前执行操作。由于是销毁之前执行,可以安全访问bean中的全部元素。使用方式为:在类中某个方法上,打@PreDestroy注解,则Spring在销毁此bean之前会调用该方法。以上是Spring框架下,对自动加载的bean

2017-03-17 19:52:25 1682

翻译 欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-03-17 15:05:14 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除