10-17Java刷题

1、10-17Java刷题_第1张图片
解析:数组注意下标越界 此题中下标在0~3
2、Math.round(11.5)等于12
解析:四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。
3、执行以下程序后的输出结果是:

public class Test{
public static void main(String[] args){
          StringBuffer a= new StringBuffer("A");
          StringBuffer b=new StringBuffer("B");
          operator(a,b);
          System.out.println(a+","+b);
}
public static void operator(StringBuffer x,StringBuffer y){
           x.append(y);y=x;
}
}

输出AB,B
解析: StringBuffer a = newStringBuffer(“A”);
StringBuffer b = newStringBuffer(“B”);

此时内存中的状态如下图所示:
10-17Java刷题_第2张图片

publicstaticvoidoperator(StringBuffer x, StringBuffer y) {
x.append(y); y = x;
}
进入如下方法后,内存中的状态为:
10-17Java刷题_第3张图片

x.append(y);
这条语句执行后,内存的状态为:
10-17Java刷题_第4张图片

y = x;
这条语句执行后,内存的状态为:
10-17Java刷题_第5张图片

当operator方法执行完毕后内存中的状态为:因为方法执行完毕,局部变量消除。
10-17Java刷题_第6张图片
有内存中的状态,可以知道最后的结果。
4、以下代码将打印出:

public static void main(String args[]){
          List   Listlist1=new ArryList();
          Listlist1.add(0);
          List   Listlist2=Listlist1;
               System.out.println(Listlist1.get(0)  instanceof Integer);
               System.out.println(Listlist2.get(0)  instanceof Integer);
}

打印出 true true
解析:collection类型的集合(ArrayList,LinkedList)只能装入对象类型的数据,该题中装入了0,是一个基本类型,但是JDK5以后提供了自动装箱与自动拆箱,所以int类型自动装箱变成为了Integer类型。编译能正常通过。将list1的引用赋值给了list2,那么list1和list2都将指向同一个堆内存空间。instance是java中关键字,用于判断一个对象是否属于某个特定类的实例,并且返回Boolean类型的返回值。显然,list1.get(0)和list2.get(0)都属于integer的实例。
5、静态变量static在不同的实例中地址一样,他们储存在全局区。
静态变量和非静态变脸的区别是:
静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。而非静态变量是对象所拥有的,在创建对象的时候被初始化,存在多个副本,各个对象拥有的副本互不影响。
6、面型对象的五大基本原则:
单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
开放封闭原则(Open-Closed Principle):软件实体应该是可扩展的,而不可修改的。也就是对扩展开放,对修改封闭。
Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
依赖倒置原则(Dependcy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
接口隔离原则(Interface-Sefrefation Principle):使用多个晓得专门的接口,而不要使用一个大的总接口。
7、以下代码运行输出的是()

public static Person{
     private String  name="Person";
     inr age=0;
}
public class Child extends Person{
    public String grade;
    public static void main(String[] args){
        Person p=new Child();
        System.out.println(p.name);
     }
 }

编译错误
解析:不能拥有两个public child类中无法访问父类的私有变量。
8、10-17Java刷题_第7张图片
解析:spring没有提供AOP方式的日志系统。AOP(Aspect Oriented Programming),为面向切面编程,通过预编方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OPP的延续,是软件开发的一个热点,也是Spring框架中的一个重要内容分,是函数式编程的一种衍生范型。Spring通过对AOP的支持,借助log4j等Apache开源组件实现了日志系统。
9、ArrayList类、Vector类实现或继承了Collection接口。
10-17Java刷题_第8张图片
10、InputStreamReader类、BufferedReader类、Writer类可以处理Unicode字符。
字符流是字节流根据字节流所要求的编码集解析获得的,可以理解为字符流=字节流+编码集。

你可能感兴趣的:(刷题)