`
shawnccx
  • 浏览: 166786 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
关于Java的接口继承的题目: interface Playable {     void play(); } interface Bounceable {     void play(); } interface Rollable extends Playable, Bounceable {     Ball ball = new Ball("PingPang"); } class Ball implements Rollable {     private String name;        public String getName() {       ...
http://www.360doc.com/content/09/0228/17/19525_2670577.shtml
首先你要弄清接口的含义.接口就是提供一种统一的'协议',而接口中的属性也属于'协议'中的成员.它们是公共的,静态的,最终的常量.相当于全局常量. 抽象类是不'完全'的类,相当于是接口和具体类的一个中间层.即满足接口的抽象,也满足具体的实现. 如果接口可以定义变量,但是接口中的方法又都是抽象的,在接口中无法通过行为来修改属性。有的人会说了,没有关系,可以通过实现接口的对象的行为来修改接口中的属性。这当然没有问题,但是考虑这样的情况。如果接口A中有一个public访问权限的静态变量a。按照java的语义, 我们可以不通过实现接口的对象来访问变量a,通过A.a = xxx;就可以改变接口中的变量a的 ...
摘自[url]http://hi.baidu.com/heyinjie/blog/item/c868ed9445c3091dd21b7038.html [/url] 用Iterator模式实现遍历集合      Iterator模式是用于遍历集合类的标准访问方法。它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。    例如,如果没有使用Iterator,遍历一个数组的方法是使用索引: for(int i=0; i<array.size(); i++) { ... get(i) ... }    而访问一个链表(LinkedList)又必须 ...
final类型对于原生类型如int等来说,一旦声明了就不能改变了。 final类型对于引用类型来说,所谓的不能改变是指引用不能改变,即一旦指向某个对象了,就不能在指向其他对象了,但是引用的对象的内容是可以改变的 (例如,声明了一个final 类型的list后,可以做add()操作); 详见 http://www.360doc.com/content/08/0422/09/61497_1207589.shtml
SQL Sum Group By sqlserver 2009-10-13 21:22:47 阅读856 评论0 字号:大中小 Aggregate functions (like SUM) often need an added GROUP BY functionality. 集合函数(类似SUM)经常需要用GROUP BY来进行功能性的补充。 GROUP BY... GROUP BY... was added to SQL because aggregate functions (like SUM) return the aggregate of all column ...
http://blog.chinaunix.net/u3/94271/showart_2020121.html
问题代码: class Singleton {   private static Singleton obj = new Singleton();   public static int counter1;   public static int counter2 = 0;   private Singleton() {     counter1++;     counter2++;   }   public static Singleton getInstance() {     return obj;   } } public class MyMain { public static ...
错误案例 public class Stack {     private Object[] elements;     private int size = 0;     public Stack(int i)     {         this.elements = new Object[i];     }     public void push(Object e)     {         ensure();         elements[size++] = e;     }     public Object pop()     {         if(s ...
错误案例 当我们需要从一些会员中查找指定的会员,并且根据这个会员的属性做些操作。或者类似的数据筛选情况下。例如: List<Person> results = searchResultList();//此时查询出的结果是1000,并且每个对象比较大 String [] names = {"gary","lily","frank","red"} for(int j=0;j< names.length;j++){   String name= names [j];   for(int i=0;i& ...
【错误代码】 List<Long> offerIDList =loadOfferIDList()//(null); for(Long offerID:offerIDList){     ...... } 错误分析 空值针异常出现的原因主要是遍历列表对象之前没有做空指针判断。不要误以为使用泛型或者for each这样的语法系统会自动做空对象判断,对象是否为空还需要我们自己保证。 正确用法 List<Long> offerIDList =loadOfferIDList()//(null); if (offerIDList != null) {      for ...
【错误代码】 class T {   private String str;   T(String str) {     this.str = str;   }   public boolean equals(Object obj) {     if(!(obj instanceof T)){       return false;     }     T t = (T)obj;     return t.equals(this.str);   }   //这里没有覆写hashCode方法   public static void main(String[] args) {     ...
【现象描述】 try-catch块中永远返回finally中return的值 【错误代码】 static boolean f() {   try {       return true;   } finally {       return false;   } } 错误分析 在这个应用场景中,不要用return来退出finally语句块,因为finally语句块都会被执行到,这样try程序块中执行正常也会在finally中退出,不会再回到try程序块中。 Try-catch的流程说明: try {     …     …     return true; }catch(异常) ...
错误案例 【现象描述】表面看上去内容一样的字符串和单个字符拼接比对,结果永远为false 【错误代码】 "34".equals('3' + '4') 错误分析 当且仅当+操作符的操作数中至少有一个是String类型时,才会执行字符串连接操作;否则,执行加法。 如:在本例中'3' + '4'得到的结果是整型数值103,而不是字符串"34"。 如果是字符'a' + 'b'得到的结果是a,b字符的ASCII码相加的整型数值。 根据这样的情况,可以有几种选择: 1、 预置一个空字符串("" + 'a' + 'A ...
错误案例 在循环中大量使用字符串连接,会导致不必要的内存消耗和频繁的垃圾回收。 错误分析 错误的写法: String str = ""; for (int i = 0; i < 1000; i++) {     str += " " + i; } System.out.println(str); 能用"+"或"+="操作符来拼接大量字符串,在大量字符串拼接操作时,直接相加两个String对象,会为新创建的字符串分配内存,原有的两个String对象也没有释放掉,从而消耗大量的内存资源。 在我们这种 ...
Global site tag (gtag.js) - Google Analytics