Java试题
一、单选
    1.与JAVA无关的文件的是___d______
a.扩展名为CLASS的文件
b.扩展名为JAVA的文件
c.扩展名为JAR的文件
d.头文件
2.下列申明错误的是___d_,数组维数最大的是___b___
  a.int [] z[];
  b.String [][] z[];
  c.char [] z;
  d.float [5] z;
3.下面的标识符错误的是_b___
  a.year99
  b.hello#
  c.$hello$
  d.MAX_VALUE
4.下面不属于JAVA关键字的是c______
  a.instanceof
  b.finally
  c.sizeof
  d.volatile
5.下面不属于String类所有的方法是_a_____
  a.append
  b.toString
  c.equal
d.concat
6.对final关键字陈述错误的是___b__
a.final常用于定义API功能的方法
b.final变量意味着在初始化之后就不允许更改,必须在此变量申明时立即初始化
c.final关键字能防止一个方法被子类修改
d.final不能与abstract同时在一个方法的定义中使用
7.下面表达式不合法的是_c_____
  a.char a=23;
  b.char y=’\u0023’;
  c.char z="d ";
  d.char f=(char)23;
8.一个函数定义的返回值是float,.它不能在return语句中返回的值的类型是______d
  a.char
  b.float
  c.long
  d.double
    9.要从一个文件中读取浮点数,最好使用哪个I0流__a____
  a.DataInputStream
  b.RandornAccessFile   
  c.FileInputStream
  d.InputStreamReader
10.下面的集合类型,既允许重复又是有序的是___d___
  a.Set
  b.List
  c.Map
  d.SortedSet 
11.定义了类class Other{static String java="Java";},并在语句String java="Java",va="va";之后,下面的逻辑表达式__d___为假
ajava="Java"
b.Other.java =java
cjava=("Ja"+"va")
d.java=("Ja"+va)
12.试分析下面的输出是__d___
    int x=2;
    x=3<<l/3&++x;
    System.out.println(x);
a.0
b.1
c.2
d.3
   
13.请问下面的输出是___c__
    int x= 0x00000001;
    x<<=3l;
    x>>=3l;
    System.out.println(x);
a.-1
b.0
c.1
d.2-1
14.判断Test类的输出是__b___
    class A{
      public void print() {
          System.out.println(‘A ’);
      }
}
class B extends A {
  public void print() {
    System.out.println(‘B’);
  }
}
class Test{
    public static void main(String [] args)  {
      A a=new B(); .
      a.print();
  }
}
a.A
b.B
c.A B
d.B A
15.现有两个类定义:
    class Person{
    public void Person(){
            System.out.println("Person A");
          }
    public Person(){
          System.out.println("Person B");
}
int getAge(){
  retum 20;
}
public void printAge(){
  System.out.println(getAge());
}
  }
  class Student extends Person{
public Student(){
System.out.println("Student");
}
int getAge(){
retum 25;   
}
}
执行下列代码后其打印结果是___d__
Person  person = new Student();
  person.printAge();
a.20
b.Student Person A  20
c.Person A Student 25
d.Person B Student 25
e.Student  PersonB 25
二.是非题
1.数字(A)和字符(B)之间可以直接相互转换,即A=B,B=A。(错 )
2.赋值语句boolean b=0正确吗?(错 )
3.由transient关键字修饰的变量表示此变量在序列化过程中,其取值是无法恢复的。(对 )system的头文件
4.利用短路的原则,在使用操作符&&的表达式中,如果单独的条件彼此独立,让最有可能为false的条件处于最左位置;在使用操作符||的表达式中,让最有可能为true的条件方在最左边。( 对)
5.Math.abs(Integer.MIN_VALUE)和Math.abs(Long.MIN_VALUE)得到的都是负数。( 对)
三.简答题
1.请使用多线程编写一个生产者与消费者的例子,要求有一个写线程,多个读线程,一个固定长度的缓冲区:
参考:suntengjiao1.blog.163/blog/static/99211088200811244442909/
blog.csdn/JaunLee/archive/2008/02/01/2077291.aspx
2.请指出下列程序中的错误(语法或逻辑):
byte k;
  byte b;
  for(k= 0;k<128;k++){
    if(b=(k%3.0)){
      System.out.println(k);
    }
  }//至少三个。
    k%3.返回的是double类型
      b只是在if语句中赋值,并没有其他用图,可去除
      double类型不能赋值给byte类型
      if 语句中byte类型不能作为boolean类型进行判断
3.Java有哪些基本数据类型?它们的存储空间及取值范围是多少?
参考bedenc.bokee/2432444.html
参考blog.csdn/KingWolfOfSky/archive/2009/09/08/4533404.aspx
double    IEEE 754 单精度    2.22551E-208--1.7977E+308
float      IEEE 754 双精度  1.4013E-45--3.4028E+38
byte      -128~127
short      -32768~32767
int        -2147483648~2147483647
long      -9223372036854774808~9223372036854774807
char      0--65535
boolean  true,false
4.有哪些方法可以优化Java程序的性能?如何定位性能瓶颈?
1)尽量重用对象。特别是String 对象的使用中,出现字符串连接情况时应用StringBuffer 代替
2)有循环嵌套是,尽量把大循环(次数多的)放到小循环里面
3)尽量指定类的final修饰符
4)尽量使用局部变量,调用方法时传递的参数以及在调用中创建的临时变量都保存在栈(Stack)中,速度较快
5)不要重复初始化变量
6)Java 编程过程中,进行数据库连接、I/O流操作时务必小心,在使用完毕后,即使关闭以释放资源。因为对这些大对象的操作会造成系统大的开销,稍有不慎,会导致严重的后果。
7)保证过期对象的及时回收具有重要意义
8)在使用同步机制时,应尽量使用方法同步代替代码块同步
9)尽量减少对变量的重复计算
例如:for(int i = 0;i < list.size; i ++) {
}
应替换为:
for(int i = 0,int len = list.size();i < len; i ++) {
}
10)慎用异常,不要在循环中使用Try catch
  异常只能用于错误处理,不应该用来控制程序流程
11)当复制大量数据时,使用System.arraycopy()命令
12)可能的话,用移位操作替代乘法操作
13)在JSP页面中关闭无用的会话,及时清除不再需要的会话
对于那些无需跟踪会话状态的页面,关闭自动创建的会话可以节省一些资源。使用如下page指令:<%@ page session="false"%>
14)JDBC与I/O
如果应用程序需要访问一个规模很大的数据集,则应当考虑使用块提取方式。默认情况下,JDBC每次提取32行数据。
15)HashMap的遍历效率,使用entrySet
or(Entry<String, String[]> entry : Set()){
String appFieldDefId = Key();
String[] values = Value();
.......
}
16)尽量使用HashMap 和ArrayList ,除非必要,否则不推荐使用HashTable和Vector ,后者由于使用同步机制,而导致了性能的开销

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。