打印

JAVA面试题(2)

JAVA面试题(2)

一、session超时时间
web.xml中的session-fonfig配置节中
session.setMaxInactiveInterval(int arg);

二、jsp内置对象
request、response、session、application、out、pageContext、page、config、exception

三、访问修饰符作用域
                当前类        同一package        子类        其他package
public                 ok        ok                ok        ok
protected        ok        ok                ok        no
friendly        ok        ok                no        no
private                ok        no                no        no

不写时默认为friendly

四、i++和++i的区别
public static void main(String[] args) {
                int i=0;
                System.out.println(i++);//后自增,输出后i=i+1;输出0
                i++;//i=2
                System.out.println(i);//输入出为2
                System.out.println(i++);//输出2后,i=3
                System.out.println(++i);//前自增,输出i=4
                System.out.println(i);//i=4
               
        }

输出结果为
0
2
2
4
4

五、Abstract类是否可以继承实体类?
可以,但是实体类必须有默认的不带参数构造函数

六、JNDI
Java Naming and Directory Interface,命名服务和目录服务访问API

七、JDBC
Java Data Base Connectivity

八、==和equals
                String str1 = "abcdefg";
                String str2 = "abcdefg";
                String str3 = new String("abcdefg");
       
               
                System.out.println(str1==str2);
                System.out.println(str1==str3);
                System.out.println(str1.equals(str3));
                System.out.println("ABCDEFG".toLowerCase()==str1);
                System.out.println("abcdefg".toLowerCase()==str1);

输出
true
false
true
false
true

九、

        public static void append(String str){
                str += " Append!";
                System.out.println(str);
        }
        public static void main(String[] args) {
                String z="abc";
                append(z);
                System.out.println(z);
        }
       
输出结果
        abc Append!
        abc
       

十、final,finally,finalize的区别
类被声明为final则该类不能被继承
方法声明为final则子类不能被覆写,但可以重载
类属性被声明为final则必须赋值
方法参数被声明为final则不能被重新赋值

finally是try catch的后续操作

finalize()是方法体垃圾回收

十一、列举几种java产生对象实例的方式
new
Class.forName("").newInstance();
proxy
clone
反序列

十二、switch case可以接受的参数类型
可以接受 char、int、short、byte
不能接受 long、String

                short key=-20000;
               
                switch (key) {
                case 1:{
                        break;
                }
                default:
                        break;
                }

十三、Error与Exception有什么区别?
Error类和Exception类都继承自Throwable类
Exception包含可被控制(checked) 或不可控制的(unchecked),是应用程序级异常。
Error总是不可控制的(unchecked) ,是系统级错误。

十四、数组拷贝
System.arraycopy(Object fromArray,int fromIndex,Object toArray,int toIndex,int number);

十五、Comparable和Comparator区别
java.lang.Comparable接口的compareTo(Object obj)方法是比较this和obj对象,对比的对象需要实现此接口。
java.util.Comparator接口的compare(Object obj1,Object obj2)方法是比较obj1和obj2对象,对比的对象不需要实现此接口。
java.txt.Collator是java.util.Comparator接口的一个实现,实现了根据本地化来进行比较String字符串。

十六、数组、List排序
java.util.Arrays.sort(Object[] obj);//元素必须实现Comparable接口
java.util.Arrays.sort(Object[],java.util.Comparator);//元素不需要实现Comparable接口,提供外部对比器

java.util.Collections.sort(List list);//元素必须实现Comparable接口
java.util.Collections.sort(List list,java.util.Comparator);//元素不需要实现Comparable接口,提供外部对比器


十七、常见排序算法
冒泡排序、插入排序、选择排序、快速排序等

十八、JVM的堆栈的概念
heap(堆)存放new出来的对象
stack(栈)存放局部变量

十九、static方法是否可以继承、覆盖
可以


二十、ArrayList Vector LinkedList 区别
ArrayList 和Vector是采用数组方式存储数据
Vector是线程安全的
Vector 缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%
LinkedList提供带有链表功能的List
ArrayList 的查询效率比较高,增删动作的效率比较差,适用于查询比较频繁,增删动作较少的元素管理的集合。
LinkedList 的查询效率低,但是增删效率很高。适用于增删动作的比较频繁,查询次数较少的元素管理集合。
本帖最近评分记录
  • Java2Class 威望 +2 精品文章 2010-11-22 13:49
领导的决定不一定都是对的,但是不执行领导的决定绝对是不对的。淡定的同时要冷静。

TOP