类生命周期与单例

2021-01-18
阅读 1 分钟
2k
类生命周期:classloader将字节文件加载到jvm内存链接(校验,准备,解析),其中准备阶段将静态变量赋予默认值初始化过程将静态变量赋值(赋值过程按指令顺序执行)垃圾回收GC单例:将构造方法私有,并提供获取实例方法,实例为静态变量获取实例方法需要两重判断才能使得多线程安全获得单例(先判断变量为是否为空,若...

11本Java好书

2016-03-25
阅读 1 分钟
6k
1. 深入理解Java虚拟机:JVM高级特性与最佳实践 2. HotSpot实战 3. Java并发编程实战 4. Java多线程编程核心技术 5. Effective Java 6. 深入分析Java Web技术内幕 7. 大型网站技术架构 核心原理与案例分析 8. 大型网站系统与Java中间件实践 9. 从Paxos到ZooKeeper 分布式一致性原理与实践 10. MySQL5.6从零开始学 11. Sp...

Mac 真机调试android程序

2015-06-11
阅读 1 分钟
2k
运行命令system_profiler SPUSBDataType 查看自己的USB设备的Vendor ID,如0x18d1 在~/.android/adb_usb.ini 新的一行添加Vendor ID 重启adb,adb kill-server adb start-server adb drivies 如果看到自己的设备即说明设置成功

[转] 使用nginx sticky实现基于cookie的负载均衡

2015-05-28
阅读 1 分钟
3.3k
[链接] 有对多个tomcat进行负载均衡的例子

mac下安装android问题列表

2015-05-13
阅读 1 分钟
2.5k
一. Errors running builder 'Android Resource Manager' on Project java.lang.NullPointerException 解决方法: - 下载JDK6,并安装 - 打开Eclipse.app中的eclipse.ini - 在-vmargs前添加

文章收藏

2015-04-20
阅读 1 分钟
2.1k
MySQL索引背后的数据结构及算法原理

建造者模式 + 构造方法的语义化实现

2013-12-26
阅读 3 分钟
2.7k
描述:一个复杂的对象由多个部件组成,每个部件可以独立生成,部件的组装过程交由指引者完成。 场景:假设宏基笔记本仅由CPU和内存组成,其中生产CPU和内存的工序可以独立出来交由各个OEM厂商制造。 实现: 笔记本: {代码...} 定义一个建造者: {代码...} 定义一个OEM,负责生成CPU、内存: {代码...} 定义宏基公司,下...

工厂模式 + 单例模式(并发生成单例)

2013-12-25
阅读 3 分钟
18.5k
描述:对象的新建统一由工厂创建,避免客户端直接通过构造方法新建实例;对于创建对象的工厂可以可以使其在整个应用中保持唯一的实例,避免过多的垃圾工厂对象。

解释器模式

2013-12-23
阅读 3 分钟
2.9k
描述:对一个表达式进行解释时,将表达式分为终结符、非终结符、运算环境,这样区分可以把表达式的各个部分独立出来扩展。 名称解释: 表达式:一条运算语句,如c = a + b,它有一个解释方法,可以计算表达式结果 终结符:表达式中的变量,如a、b,终结符表达式负责解释终结符,即计算结果 非终结符:表达式中的运算符,...

动态代理模式

2013-12-22
阅读 2 分钟
3.9k
描述:代理对象和被代理对象具有相同的行为,客户端通过代理对象实现对被代理对象调用,代理对象除了可以代理被代理对象的所有行为外,还可以在被代理对象的所有行为上添加一些额外的内容,如开闭事务,权限拦截等;动态代理可以生成一个不用实现被代理类的所有接口的代理类,它内部通过被代理类的classLoader和反射机制...

命令模式

2013-12-21
阅读 1 分钟
3.4k
描述:一个对象可以发一些命令让接受者帮助它执行,命令的发起者和接收者不必耦合,两者的沟通通过命令的传递进行沟通。 场景:某个boss经常会指点江山,让coder为他写代码,做报告,身为coder只能执行命令。 实现: 抽象命令 {代码...} 定义一个coder,负责执行commad {代码...} 具体的命令, 这个命令的执行是coder去...

策略模式

2013-12-20
阅读 1 分钟
2.7k
描述:某项业务需要根据不同的要求(算法)计算结果,这些要求之间彼此独立。 场景:实现一个计算器,要有加减乘除法则,这些法则就是不同的算法,计算器仅需根据法则的标记计算结果。 实现: 抽象算法接口 {代码...} 定义加法 {代码...} 定义减法 {代码...} 定义一个计算器 {代码...} 启动计算器 {代码...}

观察者模式

2013-12-19
阅读 2 分钟
2.9k
描述:多个对象对某一个主题感兴趣,当主题变化时,所有对这主题感兴趣的对象都能收到通知 场景:很多用户都订阅一篇新闻,当这篇新闻有变化时,订阅的用户都能收到通知 实现: 抽象一个观察者,它可以根据订阅的主题和状态值进行后续操作 {代码...} 定义读者1 {代码...} 定义读者2 {代码...} 抽象一个主题 {代码...} 定...

装饰者模式

2013-12-18
阅读 2 分钟
3.3k
场景:比如一件衣服如果只是一件衬衫,那么太单调了,如果在这衣服上加上泰迪熊、花儿,那么这件衣服就特有喜感了(相当于衣服的功能加强了,可以让人笑了)。

门面模式

2013-12-17
阅读 1 分钟
2.7k
描述:客户端仅需通过一个入口即可完成多个子系统的调用,这个入口就是子系统的门面。 场景:学妹学弟开学要注册,缴费和领课本,一般助班都会帮忙把它们弄完,他们只要提供自己的名字即可。 {代码...}

搜索系统的设计与实现

2013-12-17
阅读 1 分钟
5.3k
目标: - 业务与当前业务系统分离 - 支持多实例部署(分布式) - 与业务系统切合简单 - 开发人员配置简单,改动代码较少 - 支持搜索统计 - 索引管理

责任链模式

2013-12-16
阅读 2 分钟
2.7k
场景:团队leader要申请500元公费吃饭,有3个上司能批准,他们是:项目经理批准200以内,产品经理批准800以内,总经理任意,那么公费请求就能在这些上司中的一个被批准,如果属于自己的批准范围,则可以直接批准,否则传给下一个处理者。

Java抽象方法是个好东西

2013-12-11
阅读 1 分钟
4.6k
假如”题目类“有两个抽象方法: 1. protected String getStem() 2. protected String getAnswer(), 那么所有“具体的题目类”必须实现这两个方法,随着业务的发展,题目还需要有个答案解析的功能,那么我们可以在“题目类”中定义一个抽象方法: 3. protected String getAnalysis() 这样就必须在每个“具体的题目类”中实现get...

慎用Java 的 Long 代替 long

2013-12-05
阅读 1 分钟
7k
这些情况要求用户的程序在使用该Long类型的域的时候,要进行两重判断, 即:field == null && field == 0。

对Java ++ 运算符的理解

2013-11-29
阅读 1 分钟
4.1k
例子2: int a=5; int m=(a++)+(a++); System.out.println(a + ", " + m); // 等于7, 11

删除ArrayList的元素

2013-11-29
阅读 1 分钟
4.2k
如果通过下标删除ArrayList的元素,必须从大到小删除, 因为这个集合的元素一旦被删除,后面的元素会向前移动。 较好的做法是 <按元素> 去删。