- 浏览: 421024 次
- 性别:
- 来自: 杭州
最新评论
-
u012916287:
请问大神。这个架构是你们公司的产品吗?最近准备搞一个基于spr ...
基于DDD的微服务架构设计 -
铁柱他哥:
能给我一份源码码,我这儿边出了点儿问题我参考一下
Jersey采用JSP模板 -
hch2012:
大神,膜拜! ...
基于DDD的微服务架构设计 -
cywhoyi:
lionld23 写道等着看呢,速度速度我是抽空再写的,整篇文 ...
从demo到支持高并发 -
lionld23:
等着看呢,速度速度
从demo到支持高并发
文章列表
一直比较喜欢使用这种小的框架,不太喜欢大而复杂的框架,原因比较简单:
1.hold住,为己用
2.想看下人家的思路,以便以后自己学习而用
3.面试时候,忽悠住他人
4.代码的优雅都的提炼
mybais是较早引入的开源框架,记得10年刚毕业没多久,SSH很火,我这人就耐不住寂寞,刚好网上推崇一个叫ibatis的框架,那个时候对于ORM已经有较浅的认识,推崇给同事和朋友,但是没人鸟我。后来慢慢地开始努力成长,越来越觉得对于任何框架,我们都应该有足够的把握,才能引入。要不然一旦出现大的问题,很容易走入困境,诸如hibernate这种ORM的框架,实用性和操作性不必说,但是一旦碰到棘 ...
最近再写开源的框架,用到ASM字节码框架编织一个类,刚好再看温少写的fastjson中一个ASM的测试类,就模仿着玩起来,对于抽象树的概念比较模糊,主要还是通过opcode生成JAVA类。
先简单的仿写一个
package com.alibaba.json.test;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
如果通过ASM如下方式
一位ITEYE上的仁兄写得java的 ...
使用boneCP已有一段时间,在我还未到现在公司之前,公司采用的是ProxoolDataSource,在使用ProxoolDataSource过程中,碰到的问题异常之多,我开始怀疑这款开源软件质量本身问题,有一个非常显著的问题就是它的主干代码和文档是2007年之后就未动过,后来慢慢看了主流的DS,包括ProxoolDataSource、BoneCP、Druid(阿里温少开源,最崇拜的人)、C3P0等,经过简单粗暴的性能检测,感觉BoneCP最突出,就在github上clone下代码,然后花了没几天的时间看了源代码,其实没3天时间,主要里面的代码非常容易读,一点都不生涩,感觉跟著者Wallac ...
看着原来越来越多的人抛弃eclipse,去拥抱Intellij IDEA,我挺希望大家能够再坚持使用eclipse,就如同希望java一样,我们可以选择JVM衍生出来其它语种groovy、python、jRuby等,别抛弃他。
今天介绍几个eclipse的几个好玩的功能,可能平常大家在学习工作中不经常使用...
第一大块是eclipse带有refactor,也就是代码重构,可以通过eclipse左上角的Refactor来使用,能够基础性地完成代码除味的特性,考虑到refactor的属性比较麻烦,不在本篇文章过多论述。
My favourite feature: Favour ...
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 features is the complete removal of the Permanent Generation (PermGen) space which has been announced by Ora ...
有时候也会面试别人,也会被别人面试,问题基本上都会牵扯到String案例,例子都会牵扯到hashcode、equal这些,但是回答的时候基本上是照本宣科的方式应付,今天给大家普及下一些基础String JVM memory internals,以便于大家能够在基础方面有点不一样回答,给面试官留下深刻印象。
因为在类的编译中会使用到javap -c -verbose,最好大家能够预先普及下知识Understanding javap’s output for the Constant Pool。
也有涉猎到基本的抽象树的一些知识,如果不知道可以通过插件方式安装,挺简单的。地址plugin:
...
函数式编程不得不提到Predicate
何为Predicate?
Predicate是来自于Apache Common Framework,内置后一个方法为
evaluate(Object object): boolean
后来在Google Guava中又新增很多属性
apply(T input): boolean
举个简单例子:
在一个订单购物中存在订单的日期、关于订单的顾客
如果你需要筛选器中的顾客或者按照某个日期的方式,会采用如下的方式
如果采用Predicate方式呢?
估计大家肯定觉得代码照样冗长、繁琐吗?确实这样的情况,对于语言Scale、C、Cloju ...
上次提到了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 HotSpot JRE 1.6.0_24 64-bit
在JDK1.6编译下出现OOM异常,代码会放入到附件中 输出效果为:
刷新下project,就能看到在根目录下出现了java_pid ...
线程安全问题在我们应用中无处不在。线程非安全的HashMap的put()、get()操作会触发引起死循环的问题。有三种不同的同步map操作
1.HashTable
2.Collection.synchronizedMap(Map)
3.ConcurrentHashMap
ConcurrentHashMap实在JDK1.5以后引入,它是最为线程同步Map中优先级被推荐高于HashTable,不仅因为在高并发的情况下,ConcurrentHashMap支持线程同步,而且ConcurrentHashMap的性能比HashTable高,因为ConcurrentHashMap是锁住了部分Map, ...
BoneCP framework的整个框架设计,其实还是比较容易看懂的,大致用两天左右时间把源代码看了大概。
发现能够拿得出比较有意思的点应该是配置transactionRecoveryEnabled参数的意义,虽然在xml配置里面只是配置boolean类型true、false,但是内置的涵义挺有趣、挺cool。
了解transactionRecoveryEnabled参数首先需要把MemorizeTransactionProxy
public class MemorizeTransactionProxy implements InvocationHandler {
/ ...
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 features is the complete removal of the Permanent Generation (PermGen) space which has been announced by Ora ...
前言:
用netty搭建一套服务化,发现protobuf使用的场景较多,而且我们也想把bean类能够序列化后,放到redis或者数据库,可读性考虑我们想了几种方案xml、json,后来我突发奇想既然这样不如使用protobuf。
其实使用protobuf并不难,就是繁琐一点需要生成proto的文件,其它工作都由google来完成,而在mybatis或者数据层面中间处理过程,实际上采用的mybatis的TYPE类型的转换
使用protobuf主要是因为其性能的优势,记得曾经有人去测试过,忘记是哪位iteye兄弟,比kyro可能反序列化慢一点,但是比起JDK默认的 ...
public abstract class ThreadContext {
/**
* Private internal log instance.
*/
private static final Logger log = LoggerFactory.getLogger(ThreadContext.class);
public static final String SECURITY_MANAGER_KEY = ThreadContext.class.getName() + "_SECURITY_MANAGER_KEY& ...
Mod_jk是apache module模块中鼎鼎大名的
static int jk_handler(request_rec * r)
{
const char *worker_name;
jk_server_conf_t *xconf;
jk_request_conf_t *rconf;
int rc, dmt = 1;
int worker_name_extension = JK_FALSE;
/* We do DIR_MAGIC_TYPE here to make sure TC gets all requests, e ...
在javacodegeeks上看到一篇关于spring面试的问题,推荐给大家http://www.javacodegeeks.com/2014/05/spring-interview-questions-and-answers.html,基本上已经覆盖整个spring框架面试时候提到的问题,比较全面。
文章总体比较简单,我就不在这里全部翻译,大概把几个不常面试的简单描述下
spring如何注入Collection信息
首先推荐大家查看几个例子collection configuration elements:
list可以存放重复的
set不可以存放重复
map以key-v ...