某企业java面试笔试题
发布者:IT人在线 | 发表时间:2018/12/19 9:39:24
某企业java面试笔试题
1.如何把一段逗号分割的字符串转换成一个数组,有几种方法,分别列出来?
split拆分逗号 for循环输出数组
public static void main(String[] args) { String str="a,b,c,d"; String [] result=str.split(","); for(int i=0;i<result.length;i++) { System.out.print(result[i]+"\t"); } } |
substring截取相应的字符串,然后放入数组 如果数据多了,字符串长度不一样了这种方法操作起来比较麻烦 不建议使用
StringTokenizer拆分分隔符,然后放入集合 public static void main(String[] args) {
String str="a,b,c,d";
StringTokenizer tokenizer= new StringTokenizer(str, ",");
String [] result=new String[tokenizer.countTokens()];
int i=0;
while(tokenizer.hasMoreTokens()) {
result[i++]=tokenizer.nextToken();
}
for(int a=0;a<result.length;a++) {
System.out.println(result[a]);
}
}
2.String和StringBuffer的区别,程序代码举例说明
String是对一串字符进行操作。不可变类
String 是对象不是原始类型,为不可变对象,一旦创建,就不能修改它的值,对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的对象值保存进去。
String str="Hello";
str=str+" World!"; //拼接字符串后对象发生改变,之前str指向hello,拼接后指向hello world!
StringBuffer也是对一串字符串进行操作的,但是可变类
StringBuffer是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象,它只能通过构造函数来建立对象,建立后在mwdh中就会分配内存空间,并初始保存一个null,向StringBuffer中赋值时可以通过append方法。
StringBuffer sb=new StringBuffer("Hello");
sb.append(" World!");//sb对象没有改变
3.String s=new String("xyz");创建了几个String Object?二者之间有什么区别?
建了两个对象,String s是在栈里创建了一个变量String s = null; ,new String("xyz")是在堆里创建了一个对象并被s引用到
4.根据上题完成 String str="abc"+new String("xyz");创建了几个对象 并列出来?
创建了4个对象
"abc"一个对象
new Sring()一个对象
"xyz"一个对象
"abc" + new String("xyz");一个对象
5.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候执行,是在return前还是后?
会执行,finally是在return中间执行的,执行到return之后,结果就放在一个临时空间里面,然后就执行finally,虽然finally里面有对result里面操作,但是已经不影响结果了,除非是在finally里面有执行return。
6.多线程有几种实现方法?同步有几种实现方法?
多线程有两种方法 1、继承Thread类 2、实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify
7. 根据表1写出一条sql语句显示出表2的结果 教师号
星期号
是否有课
1
2
有
1
3
有
2
1
有
3
2
有
1
2
有
表1 教师号
星期一
星期二
星期三
1
2
1
2
1
3
1
表2 注:各星期下的数字表示对应教师在星期几已经安排的课数
select 教师号, sum(case 星期号 when 1 then 1 else 0 end) as 星期一, sum(case 星期号 when 2 then 1 else 0 end) as 星期二, sum(case 星期号 when 3 then 1 else 0 end) as 星期三 from 课程表 group by 教师号;