摘要: 为什么说Java的String对象是不可变的这个问题很有意思,之前在面试的时候也经常会冷不丁的问一下前来应聘的毕业生,不过回答大多让人失望。而我自己有时在回想这个问题的时候,有时也会突然愣住,不知道问题的答案是什么。今天晚上部门领导开会的时候,又突然想起来这个问题,这里记录下来自己的理解,期待以后会有更深刻的收获。根据JDK中java.lang.String的源码进行分析,从中可以得出String类型的对象不可变的原因,大致上有如下两个:1、java.lang.String类型在实现时,其内部成员变量全部使用final来修饰,保证成员变量的引用值只能通过构造函数来修改;2、java.lang. 阅读全文
posted @ 2013-12-01 13:30 木瀆 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1.大规模的网络属性:1)无尺度分布(scale-free distribution)(亦即幂律分布)、2)小世界效应(the smaill-world effect)(六度分离,six degrees of separation)、3)强的社区结构(strong community structure)(聚类系数(clustering coefficient))2. 中心性(centrality)分析——中心节点(病毒营销、口碑宣传);分类(classification)与推荐(recommendation)——链接预测(link prediction )--协同过滤(collaborati 阅读全文
posted @ 2013-11-29 21:57 木瀆 阅读(678) 评论(0) 推荐(0) 编辑
摘要: 昨天看到一个关于多态性的帖子,参考了回帖者的理解,加入了一些自己的看法,整理出来供大家参考,不一定完全正确,欢迎大家批评指正。(一)相关类 1 class A 2 { 3 public String show(D obj) 4 { 5 return ("A and D"); 6 } 7 8 public String show(A obj) 9 {10 return ("A and A");11 }12 }13 14 class B extends A15 {16 public String show(B... 阅读全文
posted @ 2013-11-24 10:17 木瀆 阅读(213) 评论(0) 推荐(0) 编辑
摘要: http://www.zhihu.com/question/20111251接口的作用对于很多新手来说很不容易理解,我给大家举个例子。接口只是一个规范,所以里面的方法都是空的。假如我开了一个宠物粮店,声明所有宠物都可以来我这里买粮食,这就相当于一个接口,public interface PetRestaurant {public void buy();}当一只狗看到了,知道自己是宠物,所以它去实现这个接口public class DogPet implements PetRestaurant {@Overridepublic void buy() {System.out.println(&qu 阅读全文
posted @ 2013-11-24 08:45 木瀆 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 1.抽象类 (声明方法的存在而不去实现它的类被叫做抽象类)抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来new对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。在抽象类中的成员方法可以包括一般方法和抽象方法。2.抽象方法抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也 阅读全文
posted @ 2013-11-24 01:42 木瀆 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 重写 override,重载 overload,重写,重载,覆盖都是基于继承关系!1、关于覆盖:1)覆盖的方法的参数列表必须要和被覆盖的方法的参数列表完全相同,才能到达覆盖的效果。2)覆盖的方法的返回值必须和被覆盖的方法的返回值一致。3)覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类。4)被覆盖的方法不能为private,否则在其子类中只是重新定义了一个方法,并没有实行覆盖。2、重载1)使用重载时只能定义不同的参数列表2)不能通过重载的方法的返回类型、访问权限和抛出的异常来进行方法的重载。3、重写重写的方法存在于父类中,也存在于子类中。重写的方法在运行期采用多态的形式。 阅读全文
posted @ 2013-11-23 19:42 木瀆 阅读(294) 评论(0) 推荐(0) 编辑
摘要: static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。static变量前可以 阅读全文
posted @ 2013-11-23 15:33 木瀆 阅读(145) 评论(0) 推荐(0) 编辑
摘要: toStringpublic String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode()) 返回:该对象的字符串表示形式。 阅读全文
posted @ 2013-11-23 10:53 木瀆 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1 package Test; 2 3 public class test10 4 { 5 public static void main(String[] args) 6 { 7 String str1 = "12345"; 8 String str2 = "12345"; 9 System.out.println(str1.equals(str2) + "\n");10 System.out.println((str1 == str2) + "\n");11 12 str2 = new St... 阅读全文
posted @ 2013-11-22 20:20 木瀆 阅读(124) 评论(0) 推荐(0) 编辑
摘要: clipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。1.【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2.【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。3.【Ctrl+/】快速添加注释,能为光标所在行或所选定行快速添加注释或取消注释,在调试的时候可能总会需要注释一些东西或取消注释,现在好了,不需要每行进行重复的注释。4.【Ctrl+D】删除当前 阅读全文
posted @ 2013-11-22 18:14 木瀆 阅读(158) 评论(0) 推荐(0) 编辑