黑马入学测试题答案(整理)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.定义一个交通灯枚举,包含红灯、绿灯、黄灯,需要有获得下一个灯的方法;
例如:红灯获取下一个灯是绿灯,绿灯获取下一个灯是黄灯。
public enum Lamp {
RED("GREEN"),GREEN("YELLOW"),YELLOW("RED");
private String next;
private Lamp(String next){
this.next = next;
}
public Lamp nextLamp(){
return Lamp.valueOf(next);
}
}
2、写一个ArrayList类的代理,实现和ArrayList中完全相同的功能,并可以计算每个方法运行的时间。
public class test1 {
public static void main(String[] args) {
final ArrayList target = new ArrayList();
List proxy = (List)Proxy.newProxyInstance(
List.class.getClassLoader(),
ArrayList.class.getInterfaces(),
new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
long beginTime = System.currentTimeMillis();
Thread.sleep(10);
Object reVal = method.invoke(target, args);
long endTime = System.currentTimeMillis();
System.out.println(method.getName()+" runing time is "+(endTime-beginTime));
return reVal;
}
});
proxy.add("nihaoa");
proxy.add("nihaoa");
proxy.add("nihaoa");
proxy.remove("nihaoa");
System.out.println(proxy.toString());
}
}
3. ArrayList list = new ArrayList();
在这个泛型为Integer的ArrayList中存放一个String类型的对象。public class test2 {
public static void main(String[] args) throws Exception{ ArrayList
Method method = list.getClass().getMethod("add", Object.class);
method.invoke(list, "i am a String");
System.out.println(list.toString());
}
}
4、一个ArrayList对象aList中存有若干个字符串元素,
现欲遍历该ArrayList对象,
删除其中所有值为"abc"的字符串元素,请用代码实现。
public class test4 {
public static void main(String[] args) {
ArrayList
aList.add("abc");
aList.add("nihaoa");
aList.add("nihaoa");
aList.add("abc");
aList.add("cdb");
aList.add("abc");
aList.add("cdb");
System.out.println(aList.toString());
Iterator
while(it.hasNext()){
String str = it.next();
if(str.equals("abc")){
it.remove();
}
}
System.out.println(aList.toString());
}
}
5、编写一个类,增加一个实例方法用于打印一条字符串。
并使用反射手段创建该类的对象,并调用该对象中的方法。
public class test5 {
public static void main(String[] args)throws Exception { Class
Method method = clazz.getMethod("printStr", String.class);
method.invoke(clazz.newInstance(), "ni hao ma? this my print str");
}
}
class myClass{
public void printStr(String str){
System.out.println(str);
}
}
6 、存在一个JavaBean,它包含以下几种可能的属性: 1:boolean/Boolean 2:int/Integer
3:String
4:double/Double 属性名未知,现在要给这些属性设置默认值,以下是要求的默认值:
String类型的默认值为字符串 int/Integer类型的默认值为100 boolean/Boolean类型的默认值为true
double/Double的默认值为0.01D.
只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现
public class test7 {
public static void main(String[] args) throws Exception { Class clazz = Class.forName("cn.heima.test.testBean");
Object bean = clazz.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(clazz);