1二维数组(sum国际认证) 问: int[] x,y[];这句话表示的是什么? 解析:这句话实际上定义了两个数组一个是一唯数组x一个是二维数组y,该句话即:int[]x,int[] y[] int[] []y; int[][] y; int[] y[];这三种写法均可以表示二维数组y。 2构造代码块与构造函数的区别? 答:1构造代码块一建立就运行而且优于构造函数执行。 2构造代码块是给所有对象进行统一初始化而构造函数则是对特定的对象初始化。 3在多态中,非静态成员函数特点?成员变量和静态成员函数特点? 答:非静态成员函数特点: 编译时期:参阅引用型变量所属的类中是否有调用的方法。如果有编译通过,没有编译失败。 运行时期:参阅对象所属类中是否有调用的方法。 简单总结一句话:编译看左边,运行看右边。 成员变量和静态成员函数特点: 无论编译运行都参考左边(引用型变量所属的类),因为静态方法不所属于对象,类名调用即可,所以引用还在,找的就是引用型类调用的的方法。用绑定的思维理解即:静态方法加载时就已经和类绑定了。而非静态成员函数则是动态绑定(与对象绑定),对象可变,对象是谁就运行谁的。 加例题: 4单例设计模式(必须会写)?懒汉式特点,是否有问题,如何解决问题? 答: 两种模式: 饿汉式:先初始化对象(在方法被调用前) class Single { private Single(){} //构造函数私有化 private static Single s=new Single(); //在类中创建一个本类对象 public static Single getInstance() //提供一个方法获取该对象的方法 { return s; } } 懒汉式(延时加载):方法被调用时才初始化对象。该法不安全。 class Single { private Single(){} private static Single s=null; public static Single getInstance() { if (s==bull) s=new Single(); return s; } } 懒汉式的特点在于实例的延迟加载,有问题,如果多线程访问时会出现安全问题,可用同步方式解决,同步函数和同步代码块都行但是效率稍微有些低效。可用双重判断解决这个问题,加的锁:是该类所属的字节码为对象Single.class。 5LinkedList的特有方法。 addFirst();将指定元素加入该列表的的开头(注意与add()的区分) addLast();将指定元素加入该列表的的结尾 获取元素但不删除元素 getFirst();getLast(); 获取元素并删除元素 removeFirst();removeLast();
|