摘要: 知识上的投资总能得到最好的回报。 ——本杰明·富兰克林 噢,好样的老富兰克林——从不会想不出精练的说教。为什么,如果我们能够早睡早起,我们就是了不起的程序员——对吗?早起的鸟儿有虫吃,但早起的虫子呢? 然而在这种情况下,Ben确实命中了要害。你的知识和经验是你最重要的职业财富。 遗憾的是,它们是有时效的资产(expiring asset)。随着新技术、语言及环境的出现,你的知识会变得过时。不断变化的市场驱动力也许会使你的经验变得陈旧或无关紧要。考虑到“网年”飞逝的速度,这样的事情可能会非常快地发生。 随着你的知识的价值降低,对你的公司或客户来说,你的价值也在降低。我们想要阻止这样的事 阅读全文
posted @ 2013-01-16 22:35 风*依旧 阅读(257) 评论(0) 推荐(0)
摘要: 转自:blog.csdn.net/zhangerqing/article/details/8193118AJava集合类是个非常重要的知识点,HashMap、HashTable、ConcurrentHashMap等算是集合类中的重点,可谓“重中之重”,首先来看个问题,如面试官问你:HashMap和HashTable有什么区别,一个比较简单的回答是:1、HashMap是非线程安全的,HashTable是线程安全的。2、HashMap的键和值都允许有null值存在,而HashTable则不行。3、因为线程安全的问题,HashMap效率比HashTable的要高。能打出上面的三点,简单的面试,算是过 阅读全文
posted @ 2012-11-26 13:52 风*依旧 阅读(583) 评论(0) 推荐(0)
摘要: 7.1 instanceof运算符的陷阱instanceof运算符的前一个操作数通常是一个引用类型的变量,后一个 操作数通常是一个类(也可以是接口,可以把接口当成一种特殊的类),它用于判断前面的对象是否是后面的类或其子类、实现类的实例。如果是,返回true,否则返回false。根据java语言规范,使用instanceof运算符有一个限制:instanceof运算符前面操作数的编译时类型必须是如下3种情况:要么与后面的类相同;要么是后面的类的父类;要么是后面类型的子类如果前面操作数的编译时类型与后面的类型没有任何关系,程序将无法通过编译。观察下面程序:public class Instance 阅读全文
posted @ 2012-11-25 19:13 风*依旧 阅读(213) 评论(0) 推荐(0)
摘要: 6.4.2 省略花括号的危险下面代码中的循环题只有一行代码,所以尝试省略该循环体的或括号package com.qunar.bigInteger;class Cat { private static long instancecCount = 0; public Cat() { System.out.println("执行无参的构造器"); instancecCount++; } public static long getInstanceCount() { return instancecCount; }}public ... 阅读全文
posted @ 2012-11-24 23:53 风*依旧 阅读(173) 评论(0) 推荐(0)
摘要: 5.1 关于字符串的陷阱5.1.1 jvm对于字符串的处理对于java中的字符直接量,jvm会使用一个字符串池来保存它们:第一次使用某个字符串时,jvm会将其放入字符串池进行缓存。在一般情况下,字符串池中的字符串对象不会被回收,当程序再次使用该字符串时,无需重新创建该对象,而是直接将引用变量指向字符串池中已有的该字符串对象。如果将一个字符串表连接表达式赋给一个字符串变量,并且该字符串连接表达式的值在编译时就可确定下来,那么jvm就会在编译时计算该表达式的值,并让它指向字符串池中对应的字符串。参看以下程序:public class StringJoinTest{ public static v. 阅读全文
posted @ 2012-11-18 23:07 风*依旧 阅读(238) 评论(0) 推荐(0)
摘要: 4.1 Java引用的种类Java语言对对象的引用有如下四种:强引用、软引用、弱引用、虚引用4.2 Java的内存泄露程序运行过程中会不断的分配内存,那些不再使用的内存应该即时回收它们,从而保证系统可以再次使用这些内存,如果存在无用的内存无法被回收回来,那就是内存泄漏。4.3 垃圾回收机制垃圾回收机制主要完成以下两方面的事情:跟踪并监控每个对象,当某个对象处于不可达状态时,回收该对象占用的内存;清理内存分配、回收过程中产生的内存碎片4.3的余下部分都很重要,查看原书 阅读全文
posted @ 2012-11-17 23:48 风*依旧 阅读(162) 评论(0) 推荐(0)
摘要: 3.1Set和Map3.1.1HashSet和HashMapHashMap底层将key-value当做一个整体来处理,这个整体就是一个Entry对象。HashMap底层采用一个Entry[]数组来保存所有的key-value对。当需要存储一个Entry对象时,首先会根据其key的hashCode()返回值决定该Entry的存储位置:如果两个Entry的key的hashCode()返回值相同,那它们的存储位置相同;如果两个Entry的key通过equals比较返回true,新添加的Entry的value将覆盖原有的Entry的value,但key不会被覆盖;如果这两个Entry的key通过equ 阅读全文
posted @ 2012-11-05 19:03 风*依旧 阅读(271) 评论(0) 推荐(0)
摘要: 一、什么是设计模式设计模式是指在软件开发中,经过验证的,用以解决在特定环境下、重复出现的,特定问题的解决方案。在描述单个设计模式时,设计模式通常由以下部分组成。模式名称环境和问题:描述在什么场景下,出现什么样的特定的问题。解决方案:描述如何解决这个问题。效果:描述模式应用的效果,以及可能带来的问题,或者使用中需要权衡的问题。设计模式的分类创建型模式:抽象了对象实例化的过程,用来帮助创建对象的实例。结构型模式:描述如何组合类和对象以获得更大的结构。行为型模式:描述算法和对象间职责的分配。二、常见的面向对象设计的原则 1、单一职责原则SRP(Single Responsibility Princi 阅读全文
posted @ 2012-10-27 22:10 风*依旧 阅读(340) 评论(0) 推荐(0)
摘要: 转自:http://longdick.iteye.com/blog/458557作者longdick http://longdick.iteye.comSerialization (序列化)是一种将对象以一连串的字节描述的过程;反序列化 deserialization 是一种将这些字节重建成一个对象的过程。 Java 序列化 API 提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及 Java 序列化的算法,我们用一个实例来示范序列化以后的字节是如何描述一个对象的信息的。 序列化的必要性Java 中,一切都是对象,在分布式环境中经常需要将 Object. 阅读全文
posted @ 2012-10-24 21:48 风*依旧 阅读(263) 评论(0) 推荐(0)
摘要: MethodParametersTheJavaprogramminglanguagealwaysusescallbyvalue.Thatmeansthatthemethodgetsacopyofallparametervalues.Inparticular,themethodcannotmodifythecon-tentsofanyparametervariablesthatarepassedtoit.Thereare,however,twokindsofmethodparameters:•Primitivetypes(numbers,booleanvalues)•Objectreferenc 阅读全文
posted @ 2012-10-21 21:49 风*依旧 阅读(147) 评论(0) 推荐(0)