1.抽象类与接口的区别?
先答属性:抽象类可以有普通成员变量,接口不行;然后答方法:抽象类有非抽象的方法和构造方法,并且修饰符可以是私有的,接口只能是抽象的方法,并且修饰符是public,最后说一句只能继承一个抽象类,但能实现多个接口。
2.String StringBuffer StringBuilder区别?
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)
3.length 数组是length属性,String是length方法
4.静态include与动态include的区别?
动态INCLUDE用jsp:include动作实现 <jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数 会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示<%@ include file="included.htm" %> 静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含@ include是先把文件包含就来,然后统一编译 先包含,后编译
5.j2ee常用的服务器?
tomcat jboss weblogic
6.collection 与 collections区别?
Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
char c = '我'; char b = 'b'; System.out.println(c); 以上程序中c能正常输出。查资料说java中char使用UTF-16编码, char占两字节,所以可以放汉字。 我的疑惑是:一个英文字符占一个字节,而char的容量是两个字节。那为什么 char b = 'ab';就不行呢?谢谢
这个是java语法。语法中规定char类型只能存放以 ' '为标志的单字符。像'ab'这个是双字符。当然不行java虚拟机在编译的时候就会报错。因为违反了java语法..至于你说char可以存储两个字节的大小。一点没错。但是不是这么个两个字节。如果你感觉char是两个字节的存储空间。存储一个英文字母有点浪费。你可以用一个byte型来存储。byte的存储容量是1个字节...正好能存。一个键盘上的任何一个字符。但是存不了汉字。因为一个汉字两个字节。
8.
orcle 查询 当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual to_char 是时间类型转字符串类型, to_date()字符串型时间转日期型
SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
9.
输出的结果是 0 跟 java.lang.ArrayIndexOutOfBoundsException异常!首先 args跟a没有关系,因为args.length等于0,所以下标越界
String是不可变的类型,即创建一个String对象后,就不能修改这个String,平常使用的"aa"+"bb"生成"aabb"这个过程中,实际是创建了三个String对象:"aa", "bb", "aabb" StringBuffer是相对于String的一个可变的类型,StringBuffer可以在原对象上进行加长或缩短等修改操作。适用于需要大量连接字串或拼接处理字串的情况,相应的情况下就不宜使用String对象了。10.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
short s1 = 1; s1 += 1;(可以正确编译)
6.
class Something {
int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
有什么错呢? 看不出来啊。
答案: 正确。输出的是"i = 0"。int i属於instant variable (实例变量,或叫成员变量)。instant variable有default value。int的default value是0。
7.
class Something {
final int i;
public void doSomething() {
System.out.println("i = " + i);
}
}
和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?
答案: 错。final int i是个final的instant variable (实例变量,或叫成员变量)。final的instant variable没有default value,必须在constructor (构造器)结束之前被赋予一个明确的值。可以修改为"final int i = 0;"。
8.
public class Something {
public static void main(String[] args) {
Something s = new Something();
System.out.println("s.doSomething() returns " + doSomething());
}
public String doSomething() {
return "Do something ...";
}
}
看上去很完美。
答案: 错。看上去在main里call doSomething没有什么问题,毕竟两个methods都在同一个class里。但仔细看,main是static的。static method不能直接call non-static methods。可改成"System.out.println("s.doSomething() returns " + s.doSomething());"。同理,static method不能访问non-static instant variable。
在非静态方法里可以直接调用 非静态方法与静态方法,但是在静态方法中只能直接调用静态方法!
一个接口不能实现接口,但是可以继承多个接口。一个类只能继承一个父类,但是能实现多个接口。