- 博客(40)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 子类的内存模型分析
public class Test{ public static void main(String args[]){ Son son = new Son(); son.doSomething(); }}class Father{ public int member; public void doSomething(){ Sys
2013-11-27 20:58:44 577
原创 BigInteger的add方法为何不会改变实例本身的值
这次我们谈谈JDK的设计以前用String类的replaceAll的方法的时候, 总是会误以为只要调用了replaceAll方法后, 该String类就是我们想要的结果. 实则不然, 在调用这个方法之后, String实例并没有发生任何改变. 那时的想法是多此一举. 但是最近看java并发实践的时候, 突然想通了.BigInteger number = new BigInteger("1"
2013-11-22 18:24:38 1689
转载 类型安全
转自:http://hi.baidu.com/chenfalei/blog/item/f33ac0133500ac21dd540186.html编程语言的最终梦想:静态类型安全常听人说“强类型”。但个人对强类型都有不同的理解。有的认为C++就是强类型,有的认为C也是强类型。因为它们都有类型检查。可见,如果没有一个明确的定义,谈“强类型”不免是自说自话。那么,可以给“
2012-05-23 14:31:57 824
转载 转载: 关于递归,不得不说的
原文链接: http://candy-code.iteye.com/blog/1443427偶然看到一篇写递归的文章,觉得作者讲得挺通俗易懂的, 摘记下二话不说,先上代码 public class TestRecursion{ //递归方法 public static void fun(int i){ if
2012-04-20 11:25:32 394
原创 Singleton模式
今天在看了设计模式解析之后对singleton又有了新的认识, 在此记一下哈一个最简单的Singleton实现:public class Singleton { private static Singleton instance; private Singleton(){} public static Singleton getInstance(){ if(ins
2011-11-08 01:36:44 982
原创 Flyweight 在JDK中的应用
之所以想到这个问题是在想到Integer是否可以用==来直接比较值,想当然的认为是不可以.不过写了测试程序之后,结果确让我吓了一跳 Integer a = 10; Integer b = 10; System.out.println(a==b);输出的竟然是true, 这个就让我丈二和尚摸不着头脑了, 难道JDK里面重载了Integer的==操作符?.显然不是啊, 清楚的记得
2011-11-08 01:02:35 583
转载 JVM调用类的main方法的过程
原文链接: http://dryr.blog.163.com/blog/static/5821101320107143513109/jvm先装载类,再链接类,再初始化类(以代码的文本顺序执行类变量初始化器、类静态初始化方法或接口的属性(field)初始化器),完成类的初始化后,才执行类的main方法。在链接过程中,可以静态链接(解析),也可以动态链接(解析),下面的图例说明的是动态链接
2011-11-07 20:43:09 1387
原创 java forEach实现原理
java.util.List实现了java.lang.Iterable接口.jdk api文档中是这样描述Iterable接口的:实现这个接口允许对象成为 "foreach" 语句的目标。不过咋一看Iterable接口并没啥特别之处,只是定义了一个迭代器而已。public interface Iterable { /** * Returns an iterator
2011-11-03 01:00:30 18067 5
转载 三言两语话动态代理
原文链接:http://www.cnblogs.com/perhaps/archive/2005/09/01/228302.html在之前的一篇关于Decorator模式的Post中,曾经提到了动态代理(Dynamic Proxy)简化了Decorator模式的实现。作为例子的代码很容易理解,但这个简化的背后仍包含着很多值得去发掘的内容。 首先我们来明确一下动态代理的定义:
2011-11-02 10:30:22 595
原创 从重构到模式-动态代理
曾经在一个项目中用到了Spring, 但只是涉及到了IOC,对AOP还知之甚少。现在回过头来理解下Spring的AOP概念。从一个简单的例子看起,程序的目的是为了实现日志:首先假定sayHello是一个业务逻辑,我们的目的就是实现记录调用sayHello的时间public interface IHello { public void sayHello(String name
2011-11-01 20:55:53 430
转载 什么是REST?
原文 http://blog.ixpub.net/html/07/12399407-251149.html公司CTO要求我们的网站应该能够提供REST式的服务。那么什么是REST呢? REST,表述性状态转移(REpresentational State Transfer)的简称。REST定义了应该如何正确地使用(这和大多数人的实际使用方式有很大不同)Web标准,例如
2011-10-28 22:49:11 568
原创 String 和 StringBuilder的真相
不可变StringString 类是被声明为final的, final修饰符说明String类不可被继承,也就是说String的所有方法都将默认是final的. 但是String类不可修改的真正原因并不是因为这个final的类修饰符, 而在于private final char value[]; 中存在字符串的那个字符数组的final. 当final用来修饰成员变量时, 即代表该变量不可修改.
2011-10-21 15:24:02 3668
原创 你敢说你会finally吗
昨天在通过jvm规范搞懂了java中类循环依赖的编译问题,讨论见http://topic.csdn.net/u/20111008/11/aede24de-a712-470c-9315-8796301c548f.html然后突发奇想想了解下java的异常处理原理,只是略微看懂了finally,下面是个人关于一个网上小问题的见解,欢迎各位指正public class Excep
2011-10-09 15:44:10 611
原创 淘宝笔试题之composite模式
去浙大的淘宝招聘会参加了笔试,果然被“笔试”了,轻易被刷还是心有不甘,贴上编程题的想法。 题目是要求将一颗树进行反转,我用的java实现。 这边说明一下,在网上看到的composite模式都是通过声明接口来实现的,不过我觉得最先的方式并不是这样的,这样不容易理解。可以先通过一个类来实现,然后通过重构,将原有代码进行修改。从重构到模式~publ
2011-09-28 21:39:44 441
原创 EJB摘记
EJB2.X中有三种类型的Bean:会话Bean(Session Bean)、实体Bean(EntityBean)、消息驱动Bean(MessageDriven Bean)随着EJB3规范的推出,EJB中的实体Bean(Entity Bean)逐渐被JPA规范所替代.而这
2011-09-13 20:49:45 89
原创 Spring摘记
Spring的核心概念是IOC,IOC的概念是[依赖关系的转移],像是[高层模块不应该依赖底层模块,而是模块必须都依赖于抽象]是IOC的一种表现,[实现必须依赖抽象,而不是抽象依赖于实现]也是IOC的一种表现,[应用程序不应该依赖于容器,而是容器服务于应用程序]也是IOC的一种表
2011-09-13 19:28:35 92
原创 软件工程师与发明家—从发明家的视角分析软件
明年就大四了,同学要去参加实习生面试,却又不知如何推销自己,他在校也做过不少项目,索性我就想让他以项目为主,围绕项目展现自己。所以如何让面试官最快的了解自己的项目成了最大的问题, 我也就做了下类比,把向远古人介绍自行车和向对项目一无所知的面试官介绍项目做了类比。 软件工程师就像就发明家一样,每个软件都是其发明创造的产物。软件工程属于工程学,很早就有人把软件工程和建筑学
2011-07-02 13:52:10 837 1
转载 推荐几款软件和几个网站
原文出处:http://blog.csdn.net/jj12345jj198999/archive/2011/06/06/6527484.aspx最近整理了一下电脑中,发现有几个不错的软件,在这里弱弱的推荐下,适合平时经常用电脑的IT人士。1.XMindxmind应该是所有头脑风暴中做的最好的软件了,学生可以用它来做读书笔记,感觉很有条理,要点很清晰,以后再看的时候也能够做到知识
2011-06-11 15:18:00 745
原创 第十二章 异常处理
Java的异常相比于C语言这种没有错误机制的语言是一个很大的进步,但Java中的异常并没有想象中的强大。异常的初衷是能在程序运行时报告错误并从错误中恢复,但是这种恢复很少( Java坚定的强调所有的错误都以异常的形式报告这一事实 抛出:将错误信息传播到"更大"的环境中 当抛出异常后,有几件事会随之发生。首先,同java中其他对象的创建一样,使用new 在堆上创建异
2011-05-25 17:42:00 3501 1
原创 第十章 内部类
个人觉得大部分内部类都可以使用组合实现,具体使用组合还是内部类看需求而定,内部类可以隐藏细节,但隐藏也就很难重用在jdk中Collections类中为将某些不同步的容器变为同步的,就是使用了内部类. 内部类是一种名字隐藏和组织代码的模式,它了解外围类并能与之通讯,内部类拥有其外围类所有元素的访问权,并因此可实现多重继承 外部类可以访问内部类的private元素,但要新建一个内部
2011-05-25 15:36:00 724
原创 第九章 接口
抽象类和抽象方法: 仅有声明而没有方法体的方法叫抽象方法. 包含抽象方法的类叫抽象类.如果一个类包含抽象方法,则该类必须为抽象类. 抽象类的导出类必须为基类的所有抽象方法提供定义,不然导出类也得是抽象类. 可以声明一个不含任何抽象方法的抽象类,使得我们可以阻止该类被实例化. 接口 接口中的方法默认是public的,如果在导出类中
2011-05-22 21:48:00 406
原创 第八章 多态
在看本章之前,我对多态的理解还停留在初级阶段.先前对多态的理解就是重载和覆盖,但还有跟深的含义:动态绑定.另一面也说明了本书的强大.哈哈,希望跟我一样还停留在重载和覆盖的理解上的朋友看看这章的原书,个人表示受益匪浅.多态也称作动态绑定 要理解这个概念需要了解一下c中的编译绑定.对象中会被安置某种"类型信息",以便在运行时判断对象的类型,从而调用恰当的方法。编译器一直不知道对象的类型,但是方法调用机制能找到正确的方法体,并加以调用final和性能: Java中除static方法和final
2011-05-22 21:16:00 370
原创 第七章 复用类
复用 两种方式:组合,继承 继承和组合优先考虑组合,在使用继承之前自问一句:我真的需要向上转型吗? 惰性初始化(delayed initialization): 在正需使用对象之前对其进行的初始化。在生成对象不值得及不必每次都生成对象的情况下,这种方式可以减少额外的负担。 if(s==null){ s = "joy"; }
2011-05-22 21:01:00 342
原创 第六章 访问权限控制
<br /><br />访问权限控制的等级<br /> public、protected、friendly(包访问权限)、private<br /> <br />编译单元<br /> 一个java源文件通常被称为一个编译单元(转译单元),每个编译单元只能有一个public类,额外的类包外的世界是不可见的,即包访问权限<br /> <br />Java解释器<br /> Java解释器负责class文件的查找、装载和解释,它的运行过程如下:找出环境变量CLASSPATH,用作查找class文
2011-05-22 20:54:00 404
原创 第五章 初始化与清理
在java中,创建和初始化捆绑在一起进行,在创建一个变量或对象时,实际上也就在进行初始化finalize: 工作原理:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize方法,并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存 finalize的需求是:释放通过某种创建对象方法以外的方式为对象分配的存储空间(在java中调用非java代码,如C) finalize中包含终结条件的验证会使得缺陷容易被发现,比如说针对cup,清理它的终结条件是杯子必须是空的
2011-05-22 20:51:00 371
原创 第四章 控制执行流程
Java中的控制也跟大部分语言一样:选择,循环,顺序.但java不支持goto,谁让goto臭名昭著呢.不过有些地方goto还是必须的,而且很好用,只是大部分程序员会滥用,导致程序流程混乱,本人当初在帮别人理C程序时看到了一片goto,那个头疼啊,到现在还记得那时的感受- -!.foreach语法 javaSE 5引入了一种新的更加简洁的for语法用于数组和容器,float f[] = new float[10]; for(float x : f) foreach语法的好处是说明你在做什
2011-05-22 20:36:00 349
原创 第三章 操作符
<br /> 这章内容很基础,只要是学过C语言的都会很容易上手,下面是摘自本章的一点新知识<br /> <br /> <br />静态导入(static import)<br /> 通过使用 import static,就可以不用指定类名而直接使用静态成员,包括静态方法,通过静态导入可以简化对多个类常量的调用<br /> public class ReportConstant {<br /> public static final String NEWLINE = Syste
2011-05-22 20:29:00 396
原创 模板模式
Template模板模式:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中. 模板模式的一个典型的应用就是应用程序框架,比如说struts的action就是.我们在定义自己的XXaction时都是继承一个基类org.apache.struts.actions.Action(其他的action也一样),这个Action定义了一系列的struts操作流程,而我们做的只是覆盖其他的ex
2011-05-22 13:31:00 4061 4
原创 第二章 一切皆对象
<br /> <br /> 首先本书的作者是从c++转java的,所以很多的比较都是针对这两门语言的比较.文章的排版是根据书中的目录进行划分的,并用了一定的缩进来方便阅读.<br /> <br />2.1 用引用操作对象<br /> <br />2.2 必须由你来创建所有对象<br /> <br /> 为什么java中的数组更加安全?<br /> 答:java确保数组会被初始化(对null的引用),而且不能在它的范围之外被访问。这种范围检查,是以每个数组上少量的内存开销<br />
2011-05-22 02:07:00 1324
原创 第一章 对象导论
总体来说,本章简单的介绍了面向对象语言所具有的特性,讲的挺范的.但既然是导论,简要一点也没什么不好,下面是自己整理的关于本章的一点新知识.java只允许以一种方式创建对象(在堆上创建) 栈(stack) | 堆(heap,java和c++中的new) 快:栈顶指针的上下移动 | 慢:需要分配空间 基础知识: 栈:由编译器自动分配和释放,通常是形参和局部变量 堆:由开发者负责分配和释放,c++中new+delete,ja
2011-05-22 01:53:00 492
原创 引子-杭州博客软件笔试经历
至于我这个懒人为什么会想到写blog,一方面是迫于现在快毕业的就业压力(大家可以想象一下面试的时候给面试官一个博客地址,然后自豪的说:"这就是我的全部知识",这将是一件多么愉快的事情啊,也省的你去说了,沉甸甸的知识全在那,面试官一看就懂).另一方面有些东西不写下来,时间久了就真的忘了,而且还能趁此表达自己的想法,跟大牛交流,毕竟有些东西自己的理解又不一定是对的,也欢迎大家批评指正. 今天去杭州博克软件去参加了笔试,总体来说,对于我这个不擅长应试的人来说结果还是不怎么理想的.因为笔试的大部分题目
2011-05-22 01:37:00 2220
转载 为什么要设置JAVA_HOME、Path、CLASSPATH、CATALINA_HOME
学java两年了,每次重装系统之后都是直接打开文档配置jdk环境,然后看到java -version就大功告成。文档给我们带来了帮助,但也使我们变得机械!也直到今天,我才突然想起为啥配了path之后能在cmd里面运行,网上参考了一篇不错的文章,给大家分享~首先得介绍下面几个参数的作用:current directory(当前目录):当前在用的目录就是当前目录。比如说当你打开NOTEPAD,并处于运行状态时候,当前目录就是c:/windows;如果你用cmd命令打开命令行窗口,当前目录就是c:/windows
2011-04-06 12:21:00 725
原创 tomcat虚拟目录设置实例
<br /> 在部署项目的时候遇到了一个奇怪的问题,用户登录之后session中存放的用户信息失效。仔细观察url的变化,终于发现了问题所在。<br /> <br /> 登录前的url:www.zjcontest.net/zjcontest/index.do(实际上就是我们经常用的127.0.0.1/zjcontest/index.do)<br /> 登录后的url:www.zjcontest.net/login.do<br /> 大家一定发现问题了吧,两个url所在的域不一致,自然
2011-02-28 08:17:00 715
原创 Struts -- html:text 默认值
用struts进行更新操作时,要给input域赋初始值,而这些值可以通过向页面传递一个javaBean,然后再在页面读取相应属性值的方式读取,如果要对这些值做相应的修改,就需要通过bean:define定义一个相应属性值的bean,随后用来修改刚才定义的值,不过如果这个javaBean的该属性为空,就会抛异常Define tag cannot set a null value for bean with id,下面是两种解决方法,第一种是推荐的方法,J就是代码有点长
2011-01-08 23:26:00 3044
原创 Struts -- html:link 标签
修改 标签的 paramId 属性指定请求参数名,paramName指定javaBean变量的名字,paramProperty属性指定JavaBean 的属性。上述连接将转换为如下形式的html连接:修改其中135为contestInfoList.contestId
2011-01-06 21:32:00 568 1
原创 读林锐-企业管理中的经济学原理
一.市场和营销 1.营销先行,而不是闭门造车二.市场细分 1. 卖方和买方的集合越大,相互找到合适的对方的代价就越高,所有一个产品需要一个鲜明的特征来吸引特定的消费者,进入市场时根据竞争对手的数量制定相应的营销策略 2.产生消费的必要条件:期望状态 - 现实状态 > 心理阈值三.机会成本 1.从高效率的懒惰(工程师雇佣钟点工做家务)看软件维护利弊,并从中得出“应当舍弃一些次要的,才能得到重要的” 2.软件维护占用了人力资源,使得他们没有精力去做收益更高的工作,导致维护工作的机会
2010-12-20 12:30:00 414
原创 POST传递带#的urlAction
String sel = request.getParameter("sel");System.out.println(sel);结果为:sad#截断了后面的字符解决方法:function encode(){var form = document.getElementById("form1");form.action = form.action + encodeURIComponent("sad#123");alert(form.action);}
2010-07-30 10:34:00 1053
Java编程规范与实践
2010-11-08
玩过免费amazon ec2的进来看下
2013-06-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人