某企业java面试笔试题

某企业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 教师号;