- 浏览: 580296 次
- 性别:
- 来自: 北京
最新评论
-
liu_jiaqiang:
写的挺好
maven多项目管理 -
H972900846:
我想知道哪里整的,如果是自己写的,那有点牛呀如果是抄的请说明出 ...
SSL身份认证原理 -
春天好:
博主写的很好,赞一个,多谢分享 *(^-^*)分享一个免费好用 ...
定向网站爬虫---初级例子 -
fenglingabc:
经过测试,parameterType="java.u ...
mybatis获取主键和存储过程返回值 -
jyghqpkl:
[u][/u] ...
Cookie的secure 属性
文章列表
protobuf-dt插件
- 博客分类:
- java
protobuf-dt:
安装前先安装xtext 可以在 eclise maketplace 中install
然后按照protobuf-dt插件,不要再maketplace中安装,那个安装后 使用不了,我的eclipse是最新的Luna Service Release 1 (4.4.1)
protobuf-dt 更新地址:
http://protobuf-dt.googlecode.com/git/update-site
配置protobuf-dt:
多个工程的话:要配import path 选择工程的 proto文件夹路径就行了
今天看 源码的时候 看到 一个小语法
参考:
http://lihengzkj.iteye.com/blog/1090034
JVM内存管理以及内存溢出情况
- 博客分类:
- jvm
首先我们要了解JVM内存划分,以及每个部分的功能
JVM内存管理大概来说分为 堆 和栈 两个部分
堆上是所有线程共享的数据区,而栈上数据是私有的
上图是JAVA运行时虚拟机时的数据区
方法区: 保存类的class信息,类描述,类的方法描述等,其中还有一部分就是 运行时的常理池
运行时的常理池
/**
* java中基本类型的包装类的大部分都实现了常量池技术,这些类是Byte,Short,Integer,Long,Character,Boolean,
* 另外两种浮点数类型 ...
JAVA SPI规范
- 博客分类:
- 分布式
最近看dubbo的源代码,发现很多对不同的容器,序列化方式提供了不同的实现,实现的机制是通过
JAVA SPI 来实现的,就是基于接口的服务发现,一个接口不同的实现底层,而当外部程序装配这个模块的时候,就能通过该jar包META-INF/services/里的配置文件找到具体的实现类名,并装载实例化,完成模块的注入
package com.ljq.code;
public interface JavaSPI {
String fromWho();
}
实现:
package com.ljq.code;
public class American impl ...
分布式原理介绍-阅读
- 博客分类:
- 分布式
1: 看到一本 百度同学 写的 《分布式原理介绍》 比较系统,非常有助于系统的了解分布式相关的概念
原理和技术
2:今天又重新看了一遍<大型网站和java中间件>确实是受益匪浅啊!
闲着,真实无聊;
发现一本好书《java程序性能优化》
从很多方面介绍了怎么是优化性能
1: 设计模式
单例的优化,最好选择内部静态类的方式
代理模式, 延迟加载;在很多orm框架中多有延迟加载的概念
享元模式, 和对象池类似,共享大对象用的,区别是 对象池中对象都是一样的;
装修模式,分离性能组件和功能组件,可以参考参考
观察者模式,不多说 ;事件监听spring mvc中的 等
状态模式: 对象内状态的变化,
策略模式:
2:java程序优化
1: Stri ...
mysql分布式架构和DAL设计
- 博客分类:
- 分布式
简单的列子:
一张用户表 id, name, xxx ,上千万级别单台的mysql肯定也扛不住查询的压力,一般这个时候我们会做
mysql主从,对用户板分区, 1主多从;读写分离,
可以减少读库的压力,然后对用户表进行垂直切分 ...
重构,设计模式,封装
- 博客分类:
- 总结-2014
1 :设计原理:
1面向借口编程,2:开闭原则 3:组合编程
设计模式:
1: 单列模式 参考http://iluoxuan.iteye.com/blog/2031206
2:工厂模式,创建对象 spring中beanfactory --一路的继承接口
3:模板方法, 抽象类定义 ...
memcached和redis相关
- 博客分类:
- 总结-2014
memcached: c实现的服务端,java实现的客户端有很多spymemcached据说代码写的不咋的
我们现在用的xmemached;国产的也是基于nio实现
1:memcached特点
2: 协议
3: 原理简介
memcached: 内存keyvalue结构,很好的水平扩展,容易集群;不支持持久化
memcached在数据删除方面有效利用资源
数据不会真正从memcached中消失
memcached不会释放已分配的内存。记录超时后,客户端就无法再看见该记录(invisible,透明), 其存储空间即可重复使用。
Lazy Expir ...
mysql负载,查询优化,索引和锁等
- 博客分类:
- 总结-2014
mysql引擎有多种,每种实现的索引方式也不尽相同:
有hash索引,b树索引,b+树索引
我这边接触最大的是innodb引擎:
支持外键和事务:
b+树索引的类型“
1:InnoDB的主键索引(Primary Key)是Cluster形式的(聚簇索引) ...
多线程是java中一大块,伴随的多线程必然有临界区资源的竞争问题:
当多个线程同时访问临界区的时候,就会产生所谓的并发问题:
java中处理并发通常最常用的也是技术个人认为:
1: 不可变类, 2: synchronied同步字段 3: lock 4:ThreadLocal线程副本 5:并发容器 6: cas操作
7: Semaphore(1)二进制信号量
1: 不可变类,很简单就是设计线程安全的类,
2: synchronied同步字段
对方法: public synchronide void add(int ...
重构是一个非常重要的,重构的体现不仅仅在代码的格式,代码的封装,和大家倡导的设计模式;
重构的唯一理由,提高系统的性能;在代码层面对修改关闭对扩展开放,有助于应对需求的变化
关于怎么提高系统的性能方面; 根据业务,系统线上的压力; 重构表结构,动静分离,减少数据库表之间的相关关联索引所产生的压力;
代码层面,根据相关业务,抽象出具体的设计方法;
怎么样做到,很好的扩展,因为游戏中的变动是很经常的;而且要考虑怎么扩展你添加和修改的内容较少,考虑是继承还是组合,考虑是否可以用设计模式,不能过度,考虑是否可以用泛型减少重复代码 ...
/**
*比较并更新对象的某一个整数类型的域
*@param obj 被操作的对象
*@param fieldoffset 被操作的域在对象中的偏移量
*@param expect 域的期望值
*@param update 域的更新值
*/
boolean compareAndSwapInt(Object obj,long fieldoffset, int expect, int update);
/**
*比较并更新对象的某一个对象类型的域
*@param obj 被操作的对象
*@param fieldoffset 被操作的域在对象中的偏移量
*@param ...
paxos算法和zookeeper领导者选举
- 博客分类:
- 分布式
paxos算法介绍
http://my.oschina.net/linlifeng/blog/78918
paxos算法维基百科
http://zh.wikipedia.org/zh-cn/Paxos%E7%AE%97%E6%B3%95
zookeeper领导者选举
http://blog.csdn.net/xhh198781/article/details/10949697
1: http://stackoverflow.com/questions/11993324/mvn-jettyrun-throwing-java-util-zip-zipexception-invalid-entry-size
4 down vote accepted
The issue, as I suspected, was due a corrupt JAR file. The solution for me was to clear my local repository (deleteing the content of .m2/repository ...