
JavaGeeker
文章平均质量分 84
cywhoyi
这个作者很懒,什么都没留下…
展开
-
支持MapDB的Eventstore
背景:现在微服务大行其道,虽然微服务开山鼻祖是不建议在微服务下做分布式事务,领域驱动设计早已阐明,具有强一致性要求的一组业务概念,属于同一个聚合,不建议拆到不同服务中,从而尽可能避免分布式强事务一致性的处理。但是不可避免我们没有真的按照DDD领域驱动设计,那么微服务如何保持事务一致性呢?我们这里采用的EventStore的方式,有基于memory、jpa、jdbc等方式,我今天采用了Map...2017-04-11 18:15:09 · 450 阅读 · 0 评论 -
结合Comparable接口优化排序,给新员工
如果抛开语言的限制,给你Turbo C的让你写一个排序规则,我估计很多人会开始思考空间、时间复杂度问题,想到一些列的排序算法归并、冒泡、插入、选择等基础的排序规则,但是落实到项目中,我在看公司很多员工方式都是冒泡或者采用默认的JDK自选的算法进行算法,这对于IT人士而言,如同行尸走肉,你写得每一行代码,其实都需要考虑清楚,要对你的代码负责。在本次项目重构过程中,我看到N多冒泡排序,而且是一...2013-09-28 09:35:14 · 117 阅读 · 0 评论 -
String JVM memory internals
有时候也会面试别人,也会被别人面试,问题基本上都会牵扯到String案例,例子都会牵扯到hashcode、equal这些,但是回答的时候基本上是照本宣科的方式应付,今天给大家普及下一些基础String JVM memory internals,以便于大家能够在基础方面有点不一样回答,给面试官留下深刻印象。因为在类的编译中会使用到javap -c -verbose,最好大家能够预先普及下知识...2013-09-27 11:24:31 · 120 阅读 · 0 评论 -
Batching Opertaion
我们常常说Batching(批量增加、批量操作...),那么Batching会增加延迟性,特别针对于本身延迟比较low的系统。但是从我跟人角度来说,如果Batching的算法如果做得好,不仅会带来吞吐量的增加,而且也降低整个系统的延迟性。在我们的网络传输时候,经常采用把messages/even捆绑在一起形成数据包,然后提高网络传输的吞吐量,同样我们也会类似的方式在系统中IOPS来帮助...2013-09-27 10:06:46 · 140 阅读 · 0 评论 -
通过IO和NIO对于文件的copy
ExecutorService是非常好用的并发工具,在并行的环境下我们经常通过ExecutorService去回调执行任务。ExecutorService的任务机制 我现在有一本鸟哥私房菜的Linux书籍大约80M,我想通过3种方式(IO、NIO、NIO buffer),期待是在80ms内完成。Solution 1: Stream Copy public static v...2013-09-26 14:38:11 · 120 阅读 · 0 评论 -
反射的基础知识
Why do we need reflection?检查Object的运行期的class运行期的构造函数检查Object运行期的成员变量和方法调用Object的运行期的方法Example 1: Get class name from objectimport java.lang.reflect.Method;public class ReflectionHello...2013-09-26 10:09:07 · 90 阅读 · 0 评论 -
Core Java Interview Questions Answers in Finance domain Read more: http://javar
1. What is immutable object? Can you write immutable object?Immutable classes are Java classes whose objects can not be modified once created. Any modification in Immutable object result in new o...原创 2013-09-25 14:05:47 · 177 阅读 · 0 评论 -
理解ThreadLocal的涵义
自从碰到N多个性能问题后,看是注意使用ThreadLocal的使用,本章只是体现如何使用ThreadLocal,ThreadLocal在性能方面的提高以及在内存分配方面的优势不再讨论范围内。ThreadLocal的扼要一个线程有它独立的流程的stack,在web的应用容器中都有Thread Pool,因为线程的创建都是重量级的消耗。weblogic、glassfish、jboss都是...2013-09-25 12:57:16 · 101 阅读 · 0 评论 -
Spring Expression Language
接着http://ray-yui.iteye.com/blog/1944582的火热,兄弟也来一把,关于Spring Expression Language 主要是告诉大家如何通过annotion以及XML的方式进行EL表达方式的解析,同样也会告诉大家如何通过ExpressionParser 接口类实现对于EL表达式的解析。工程采用标准的MAVEN,在附件中有提供代码接下来的...2013-09-23 10:17:47 · 111 阅读 · 0 评论 -
Spring Bean Lifecycle Control
本文目的是通过示例告诉大家sprng bean生命周期的控制。主要通过两个接口InitializingBean、DisposableBea,验证bean在容器中初始化以及销毁时候的触发事件。当然也可以通过配置xml的文件,init-method、destroy-method等同于上述两个接口1.InitializingBean and DisposableBean interface...2013-09-22 17:09:28 · 115 阅读 · 0 评论 -
Spring Social之twitter、weibo
Spring Social 500pxSpring Social BitBucketSpring Social DiggSpring Social DropboxSpring Social FlattrSpring Social FlickrSpring Social FoursquareSpring Social GoogleSpring Social Ins...原创 2013-09-22 14:18:06 · 300 阅读 · 0 评论 -
java函数式编程
函数式编程不得不提到Predicate何为Predicate?Predicate是来自于Apache Common Framework,内置后一个方法为evaluate(Object object): boolean后来在Google Guava中又新增很多属性apply(T input): boolean举个简单例子:在一个订单购物中存在订单的日期、关于订单的顾客...2013-09-17 15:19:16 · 117 阅读 · 0 评论 -
Cross Site Scripting (XSS) and prevention
众多的XSS攻击冲击到我们的互联网环境,本篇文章想要通过filter的解决方案处理XSS攻击。先来看下XSS是如何攻击 预防最好的方式是能够清理请求恶意的参数,如果评论如下方式<div>A's Comments</div><div><script><!--This script will get all cooki...2013-09-29 12:07:24 · 155 阅读 · 0 评论 -
Spring Cacheable
缓存已经在我们的系统中成为性能提升最重要的方式,页面级缓存、系统级缓存、数据缓存、数据库内置缓存等等一些列缓存操作,今天要告诉大家spring其实也提供缓存,当然它只支持单点缓存,所以被忽略,局限性比较大,其实N多种框架都是带有缓存。不过最近JavaOne最近一次的大会上,提到如何办到单机下性能最优化,其实包括国内点评网在内的以java为核心技术的互联网公司为了省成本,其实也在最大限度发挥单机的...2013-10-01 21:43:30 · 239 阅读 · 0 评论 -
DDD分布式架构设计的BASE一致性
问题背景: 在DDD的架构设计中最难以解决的就是一致性问题,所以我采纳是BASE的最终一致性的方式,至于最终一致性的概念,不在本博客中阐述,设计理念,不外乎就是弥补的方式。 可用性,无论是传统架构还是CQRS架构,都可以做到高可用,只要我们做到让我们的系统中每个节点都无单点即可。但是,相比之下,我觉得CQRS架构在可用性方面,我们可以有更多的回避余地和选择空间...2016-08-09 16:32:27 · 536 阅读 · 0 评论 -
基于DDD的微服务架构设计
DDD领域驱动设计(DDD:Domain-Driven Design)架构背景: 现有的架构设计实在受不了,业务的反反复复地变化,导致代码圈复杂度之深让人恐惧。之前的微服务架构经验让我更加彻底点,采用DDD领域驱动设计进行整个改变。 随着经过几个月的努力,确实慢慢地体会到ddd的架构设计的优势,聚合根设计能够协助我们整个服务改造,开发起来越来越迅速。 CQRS访...2016-07-20 17:19:43 · 4694 阅读 · 0 评论 -
基于K-Means算法,探索股票趋势的数据可视化
公司举办编程大赛,想到最近股票跌宕起伏,然后无心睡眠,所以跟我叔叔聊聊股市,叔叔操盘经常是选择A股票后,会购买B这只股票,但是A跟B之间单单从业务角度和股权分配都没有任何关系,至少从表面上是这么让人觉得。后来遵从他的劝解,我选择A\B两股,但是万万没想到的是跌得我想死,漫漫长夜,无心睡眠,起来骗点钱,看了些论文,着手把实现完成,主要使用到动态规划、排序和K-means算法结合下,进行归类那些不...2015-07-05 21:44:27 · 1955 阅读 · 0 评论 -
BoneCP+extjs4开源Infographics
使用boneCP已有一段时间,在我还未到现在公司之前,公司采用的是ProxoolDataSource,在使用ProxoolDataSource过程中,碰到的问题异常之多,我开始怀疑这款开源软件质量本身问题,有一个非常显著的问题就是它的主干代码和文档是2007年之后就未动过,后来慢慢看了主流的DS,包括ProxoolDataSource、BoneCP、Druid(阿里温少开源,最崇拜的人)、C3...2013-11-04 16:39:47 · 174 阅读 · 0 评论 -
因为爱,所以eclipse
看着原来越来越多的人抛弃eclipse,去拥抱Intellij IDEA,我挺希望大家能够再坚持使用eclipse,就如同希望java一样,我们可以选择JVM衍生出来其它语种groovy、python、jRuby等,别抛弃他。今天介绍几个eclipse的几个好玩的功能,可能平常大家在学习工作中不经常使用... 第一大块是eclipse带有refactor,也就是代码重构,可以通过e...2013-11-01 12:18:38 · 118 阅读 · 0 评论 -
扩展下Object Pool的设计
首先需要了解些java并发教程,其实java也是可以通过native的本地方法去操作底层api的,比如大家所知道Aomic、CAS等概念性的操作。下面一篇文章是来源于优快云的觉得挺好的讲关于unsafe的[url=http://blog.youkuaiyun.com/aesop_wubo/article/details/7537278]http://blog.youkuaiyun.com/aesop_w...原创 2013-10-30 10:00:42 · 116 阅读 · 0 评论 -
Jersey使用HTTP CACHE
在使用Jersey的restful的过程中,对于Http Cache有一定的基础了解,Cache-Control-private/public : private是并不能呗CDN或者代理接受,但是public可以-no-cache,no-store,max-age 属性值用来给Cache的特性设置 @GET @Path("/map") public Respo...原创 2013-10-24 09:28:34 · 134 阅读 · 0 评论 -
File Serialization的加速度
File读写是我们经常对于File处理经常需要动作,接下来我会用4中方式进行操作,具体在项目中采用哪一种方式,由自己进行判断。最近在Thomas Nagel《What Does It All Mean》,摘录开头一段话:要评估每一种主张,每一条论证和每一套理论,并且尝试着判断它们是否可以被接受,这最终都依赖于每一个人的独立思考,而非听命于权威2B青年方式: private s...2013-10-17 17:10:27 · 115 阅读 · 0 评论 -
Java 8: From PermGen to Metaspace
As you may be aware, the JDK 8 Early Access is now available for download. This allows Java developers to experiment with some of the new language and runtime features of Java 8. One of these feature...原创 2013-10-13 11:19:09 · 181 阅读 · 0 评论 -
Deep diving into Cloning
文章摘自http://idiotechie.com/,Mainak Goswami的blog首先来查看下heap如何分配Object这并非clone,这只是把对象引用共享性质了。 What is cloning?clone就是把自己给复制所有东西倾囊相授,但是又不是它自己,是不同个体。如同黑哥帝国中所有的黑衣人都是独立个体,但是同是具有同一的能力。public cla...2013-10-11 14:07:47 · 143 阅读 · 0 评论 -
轻量级的对象池
Pool在N多环境下碰到,比如连接池、线程池、缓存池...当某一对象从池中取得,那只有等待被用完放回去以后,其它的线程才能再次从池中获取。对象在池中是具有自己生命周期:创建、验证、使用、销毁等等。Pool的方式也许是最好的方式用来管理同一的资源。 运用的场景:高频率的运用同一的资源对象大且很消耗内存(DB连接)需要长时间的初始化IO消耗大对象非线程安全 A...2013-10-10 16:32:57 · 119 阅读 · 0 评论 -
GC基本调优工具介绍
上次提到了spring insight http://cywhoyi.iteye.com/blog/1934992这次需要使用到以下工具 Eclipse Indigo Release Memory Analyzer via IBM Support Assistant 4.1 (HotSpot Heap Dump analysis) Java VM: Windows H...2013-09-16 17:43:05 · 139 阅读 · 0 评论 -
Using slf4j with logback
slf4j是一款非常不错的关于log的开源框架,logback是依托于log4j的api,但是它提供了更多的属性,不管是在性能、内存损耗上,都有显著提高,并且它能够提供自动加载、过滤以及其它的属性特征。第一步,建立pom.xml<properties> <slf4j.version>1.6.4</slf4j.version> <logba...2013-09-12 10:11:03 · 99 阅读 · 0 评论 -
Java Executor Framework
Java 5 introduced Thread pool in Java in form of Executor framework, which allows Java programmer to decouple submission of task to execution of task. If you are doing server side programming in Jav...原创 2013-08-09 12:34:08 · 117 阅读 · 0 评论 -
A Simple Plugin System for Web Applications
We need to make multiple web-based projects with a lot of shared functionality. For that, some sort of a plugin system would be a good option (as an alternative to copy-pasting stuff). Some framewor...原创 2013-08-08 13:57:37 · 102 阅读 · 0 评论 -
Loan pattern in Java
se CaseImplement separation between the code that holds resource from that of accessing it such that the accessing code doesn’t need to manage the resources. The use case mentioned holds true when...原创 2013-08-07 13:47:26 · 178 阅读 · 0 评论 -
Memento Design Pattern
Memento pattern is one of the behavioral design pattern. Memento design pattern is used when we want to save the state of an object so that we can restore later on. Memento pattern is used to implem...原创 2013-08-07 11:29:56 · 200 阅读 · 0 评论 -
Django1.6与extjs4整合
从今日开始,公司的新后台系统,我将全部迁移到python的环境下,主要使用了Django与extjs4、jquery1.7的,数据库mysql5.5,容器是nginx。因为不考虑并发因素,所以在这里没有高深的python的线程处理,只是向刚毕业的大学生,几个框架的整合而已,没啥营养,我也是对于python的掌握,觉得Django这框架做的挺好的,模板处理、model层的映射等都比之前玩java...2013-12-20 17:25:04 · 222 阅读 · 0 评论 -
collection的面试题
Without argument, java collections is one of the most important area where you will be tested in any position whether junior or senior. The scope is so much wide, that its almost impossible to cover...原创 2013-07-25 20:50:50 · 1031 阅读 · 0 评论 -
mybatis框架的设计思路
一直比较喜欢使用这种小的框架,不太喜欢大而复杂的框架,原因比较简单:1.hold住,为己用2.想看下人家的思路,以便以后自己学习而用3.面试时候,忽悠住他人4.代码的优雅都的提炼 mybais是较早引入的开源框架,记得10年刚毕业没多久,SSH很火,我这人就耐不住寂寞,刚好网上推崇一个叫ibatis的框架,那个时候对于ORM已经有较浅的认识,推崇给同事和朋友,但是没人鸟...2013-12-12 15:53:39 · 234 阅读 · 0 评论 -
Ubuntu下安装GIT
1.下载git http://code.google.com/p/git-core/downloads/detail?name=git-1.7.11.2.tar.gz或者使用在线下载wget http://git-core.googlecode.com/files/git-1.7.10.rc4.tar.gzwget http://git-core.googlecode.co...2013-12-01 10:29:51 · 154 阅读 · 0 评论 -
汇聚10个常用调优工具
文章背景:java在N多领域依旧比较活跃,特别著名的一句话“一次编译,运行在任何平台”。接下来展示8个常用的java开发人员在环境调优的工具。 VisualVMJVisualVM是JDK1.6之后推出一款非常卓越的检测工具,包括内存、线程、CPU GCViewer相当于-verbose:gc and -Xloggc:<file>,它能够同时计算垃圾回收所产生...2013-11-21 15:50:58 · 151 阅读 · 0 评论 -
ASM通过动态字节码编织JAVA类
最近再写开源的框架,用到ASM字节码框架编织一个类,刚好再看温少写的fastjson中一个ASM的测试类,就模仿着玩起来,对于抽象树的概念比较模糊,主要还是通过opcode生成JAVA类。先简单的仿写一个package com.alibaba.json.test;public class HelloWorld { public static void main(String[...2013-11-05 16:14:08 · 598 阅读 · 0 评论 -
Kettle第三课
当前两次学习汇总起来以后,kettle的使用有点水到渠成了,多转换任务下作业的使用,其实就是job下1->NTransformations,然后进行一一调度,高深使用不外乎就是日志记录、以及插入\更新、多格式的输入\输出、脚本编写判断等 截图来展示基础效果,以免以后重复性工作,现成的ETL工具使用,确实给我带来比较快速的开发,下一阶段就是必须把已有的东西消化完,进行延展...原创 2012-07-26 19:42:15 · 111 阅读 · 0 评论 -
Java Priority Queue (PriorityQueue) Example
We know that Queue follows First-In-First-Out model but sometimes we need to process the objects in the queue based on the priority. For example, let’s say we have an application that generates stoc...原创 2013-08-09 16:15:31 · 134 阅读 · 0 评论 -
Difference between Comparator and Comparable in Java - Interview Question
During interviews, you can face this question differently, if you are giving telephonic round than it's mostly fact based i.e. you need to mention key points about both interfaces, while in face to fa...原创 2013-08-10 20:03:31 · 113 阅读 · 0 评论