`
DoubleEO
  • 浏览: 158076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
看代码 class Base{ private int val; //构造函数,调用lookup()方法 Base() { val = lookup(); } public int lookup() { return 5; } public int value(){ return val; } } //子类,继承父类,并重写lookup()方法 class ...
   前面有篇自己总结的文章,是用final方法标注引用的,引用为final,表名这个引用只能指向这个对象,不能改变,但是对象本身可以变,java没有关键字来帮你实现不可变对象,必须自己写实现方法(thinking in java上面说“读者可以自己想”)。     不可变对象的几个基本原则: 1.class要声明为final 2.所有属性都声明为private访问权限 3.只提供get方法,不提供set方法 4.提供构造方法,并且在构造方法中初始化所有你想初始化的数据 5.类中有组合情况发生时,从get方法得到组合对象之前,先克隆这个对象。 6.组合对象传递给构造函数的时候,也要先克隆一份。 ...
        想了好久,还是要写个计划,要不也不太好规划09年这1年。     java基础占了很大的比重,什么时候强调基础都不为过,何况自己的基础也不是那么稳固,看了看网上推荐的几本书,读了一本,感觉很不错,把剩下的都买了,准备全部读了,好好巩固自己的基础,thinking虽然已经看过2遍,但是仍未能完全领悟,有时间再抽出时间再看一遍。     Hibernate和Linux完全是为了自己做东西而打的基础,这个想在下半年开始进行,期间可能要做一个企业级应用,会有导出Excel表,估计会有些酬劳。     摄影是兴趣爱好,一定不能放下。
    数组的使用可以被证明为是相当快的,这里指的是与ArrayList的比较,但是array不能伸缩,上来就要固定长度,这个是它的局限性,也是它速度快的原因。     ArrayList可以变换长度,会自动帮你扩展,现在想一下,它是怎么扩展的呢?很容易想到,它就是新建一个数组,把现有的东西复制到一个这个更大的数组中去,实现的,这样的效率极其低下。  引用array在某些时候的表现,可能比ArrayList快上10倍--- Peter hagger     有个问题,我事先要是不知道长度呢,我怎么定,可能会想,我估个值,尽可能大,就行了,这样的做法虽然浪费了许多空间,但是引用性能上的收益可能超过 ...
    集合的迭代,在多数情况下,咱们想都不想,就会用下面这种 public void iterList(List<Integer> list){ Iterator<Integer> iter = list.iterator(); int total = 0; while(iter.hasNext()) total+=iter.next(); } 而很少会这样做: public void getList(List<Integer> list){ int size = list.size(); int to ...
    程序中的变量有3种,局部变量,实例变量,类变量,他们在使用时,哪种效率最高呢,看下面的例子 public class StackTest { private int intValue; private static int staticValue; public static final int times = 1000000000; public static void main(String[] args) { StackTest s = new StackTest(); long start = System.currentTimeM ...
每次拼接字符串的时候用习惯了String,从来没想过用其他的class,最近看了看java性能的一些介绍书籍,很多东西以前都没想到,哎,还是经验太少。 拼接字符串,大致有3个class可以用,他们是String, StringBuffer,StringBuilder, StringBuilder是1.5中来代替StringBuffer的,我用的检验方法很简单, 就是 long start = System.currentTimeMillis(); //code here... long end = System.currentTimeMillis(); lo ...
只有传值!! import java.awt.Point; public class PassByValue { public static void main(String[] args) { Point p = new Point(0,0); int i=10; System.out.println("修改之前是: p="+p+"i="+i); modifyPoint(p, i); System.out.println("修改完是: p= ...
C:printf("新年快乐!") C++:cout<<"新年快乐!" C#:System.Console.WriteLine("新年快乐!") Java:System.out.println("新年快乐!") JScript:alert("新年快乐!") ASP:Response.Write "新年快乐!" PHP:echo "新年快乐!" VB:Msg("新年快乐!") VBScript:MsgBox "新年快 ...
8.spring的MVC框架      以前一直是用spring的mvc开发,但是是别人搭建的,自己也不是很懂,就在那用,也就是程序员最悲哀的事情,会用,不懂原理,一离开人家写的框架,自己就像不会编程似的,现在看了spring这本书,一下就明白了原来前辈们写的spring框架的东西,还是因为自己没去学习的缘故。     我自己的这份总结写的很快,中间很多如acegi安全框架,RMI远程服务,还有企业级应用,这些我暂时都还用不上,所以就没去看。我认为spring最重要的就是装配bean,理解ioc,aop,以及它的MVC(当然你要喜欢这个MVC),总共5-6章知识就够了,现在就来写spring的m ...
事务创建时或者是现有事务可以使用所定义的传播规则 Spring提供几种传播规则供选择 1.传播行为 PROPAGATION_MANDATORY:表示该方法必须运行在一个事务中。如果当前没有事务正在发生,将抛出一个异常。 PROPAGATION_NESTED:表示如果 ...
7.spring中的事务     事务,确实是一个极为抽象的概念,我理解为就是一个连续的东西,保证在其中的行为要么全完成,要么全部回滚,什么都没发生一样。     确保数据和资源永远不会处在一种不一致的状况下。     描述事务的4个概念:原子性,一致性,隔离性,持久性。这个在哪里都有解释,只要自己理解了,就行了。spring的事务就像他对持久化的支持一样,基本上都是委托给第3方了,具体说:就是委托给第3方提供的事务管理器了。事物经常用在关于数据库的操作上,所以spring支持的有jdbc,jdo,jpa,hibernate等,事务管理器可选的非常多,不过他们都是默默的提供事务,只要和sprin ...
6.自动代理aop     自动代理能够让切面的切点定义来决定哪个Bean需要代理,不需要为特定的bean创建代理了。共2种自动代理,spring提供的和aspectJ提供的。     为了使用spring提供的自动代理,要在xml中声明         <!--spring声明的自动代理,它会被自动识别--> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/> 这样声明,配置文件就不用声明 audienceP ...
5.实现aop的例子 1.首先先来点预备类,咱定义一个表演的接口,代码如下: public interface Perform { void perform(); }     就一个方法,表演节目,然后再定义2个实现类,ShowBoy和ShowGirl public class ShowBoy implements Perform{ public void perform() { System.out.println("表演街舞"); } } public class ShowGirl im ...
1.我所知道的aop     初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等。一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难。当我看进去以后,我才发现:它就是一些java基础上的朴实无华的应用,包括ioc,包括许许多多这样的名词,都是万变不离其宗而已。 2.为什么用aop     1就是为了方便,看一个国外很有名的大师说,编程的人都是“懒人”,因为他把自己做的事情都让程序做了。用了aop能让你少写很多代码,这点就够充分了吧     2就是为了更清晰的逻辑,可以让你的业务逻辑去关注自己本身的业务,而不去想一些其他的事情,这些其他的 ...
Global site tag (gtag.js) - Google Analytics