java面试刷题------笔试题一

参考:https://www.cnblogs.com/zhynew/p/6991725.html
太简单的 都不写了

  1. 下列哪一种叙述是正确的(D )
    A. abstract修饰符可修饰字段、方法和类 //abstract不能修饰字段
    B. 抽象方法的body部分必须用一对大括号{ }包住 //抽象方法为空
    C. 声明抽象方法,大括号可有可无 //只能是没有
    D. 声明抽象方法不可写出大括号

  2. 如下代码
    public class Test {
    public int aMethod() {
    static int i = 0; // 静态变量不能写在函数中
    i++;
    return i;
    }
    public static void main (String args[]) {
    Test test = new Test();
    test.aMethod();
    int j = test.aMethod();
    System.out.println(j);
    }
    }
    输出结果是什么? D
    A. 0
    B. 1
    C. 2
    D. 编译失败

  3. 下列哪种说法是正确的( D)
    A. 实例方法可直接调用超类的实例方法
    B. 实例方法可直接调用超类的类方法
    C. 实例方法可直接调用其他类的实例方法
    D. 实例方法可直接调用本类的类方法

  4. 如下代码:
    class Super {
    public Integer getLenght() { return new Integer(4); }
    }
    public class Sub extends Super {
    public Long getLenght() { return new Long(5); }
    public static void main(String[] args) {
    Super sooper = new Super();
    Sub sub = new Sub();
    System.out.println(sooper.getLenght().toString() + “,” +
    sub.getLenght().toString() );
    }
    }
    输出是什么? E 编译失败
    A. 4,4
    B. 4,5
    C. 5,4
    D. 5,5
    E. 编译失败.---------重定时不能改变返回类型

  5. 在Servlet处理请求的方式为: C
    A.以进程的方式
    B.以程序的方式
    C.以线程的方式
    D.以响应的方式

  6. JDBC中,用于表示数据库连接的对象是: B
    A.Statement
    B.Connection
    C.DriverManager
    D.PreparedStatement

  7. 用于调用存储过程的对象是: C
    A.ResultSet
    B.DriverManager
    C.CallableStatemet
    D.PreparedStatement

  8. 按照MVC设计模式,JSP用于实现: B
    A.Model
    B.View
    C.Controller
    D.容器

  9. 如下代码:
    class Base {
    Base() { System.out.print(“Base”); }
    }
    public class Alpha extends Base {
    public static void main( String[] args ) {
    new Alpha(); -----调用父类无参的构造方法
    new Base();
    }
    }
    结果是什么? B
    A. Base
    B. BaseBase //是两个Base System.out.print(“Base”); 不换行
    C. 编译失败.
    D. 代码运行但没有输出.
    E. 运行时抛出异常

  10. 在J2EE中属于Web层的组件有: A
    A.Servlet
    B.EJB
    C.Applet
    D.HTML

  11. 在Servlet的生命周期中,容器只调用一次的方法是: C D //一个是初始化 一个是销毁
    A.service
    B.getServletConfig
    C.init
    D.destroy

  12. 以下关于异常的说法正确的是:D
    A. 一旦出现异常,程序运行就终止了  
    B. 如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常 
    C. 在catch子句中匹配异常是一种精确匹配
    D. 可能抛出系统异常的方法是不需要申明异常的 //比如 除数为0 数组越界

  13. 如下代码:
    public class Foo {
    public static void main(String[] args) {
    try {
    return;
    } finally {
    System.out.println( “Finally” ); //无论是否出错都会执行
    }
    }
    }
    输出结果是什么? A
    A. Finally
    B.编译失败
    C. 代码正常运行但没有任何输出.
    D. 运行时抛出异常

  14. jsp指令中isELIgnored="boolean"的意思是(C )
    A.决定是否实现Servler的单线程模式,
    B.决定改页面是否是一个错误处理页面,
    C.决定是否支持EL表示,
    D.没有具体的含义。

  15. 下面关于Java的引用,说法正确的是:B
    A. 应用实际上就是指针  
    B. 应用本身是Primitive ???
    C. 引用就是对象本身
    D. 一个对象只能被一个引用所指引

  16. 对于import java.util包,以下那种说法是错误的?C
    A. Vector类属于java.util包  
    B. Vector类放在…/java/util/目录下  
    C. Vector类放在java.util文件中
    D. Vector类是Sun公司的产品

  17. 在一个线程中Sleep(1000)方法,将使得该线程在多少时间后获得对CPU的控制(假设睡眠过程中不会有其他事件唤醒该线程)?C
    A. 正好1000毫秒  
    B. 1000毫秒不到  
    C. =>1000毫秒
    D. 不一定

  18. 在WEB-INF目录下,必须存放的文件为: B
    A.class文件
    B.web.xml
    B.jar文件
    D.html文件

  19. 下面关于垃圾收集的说法正确的是:D
    A. 一旦一个对象成为垃圾,就立刻被收集掉。 //不一定
    B. 对象空间被收集掉之后,会执行该对象的finalize方法
    C. finalize方法和C++的析构函数是完全一回事情
    D. 一个对象成为垃圾是因为不再有引用指着它,但是线程并非如此。

  20. 下面的语句会产生什么样的输出? A
    System.out.println(4&7); // 4 0100 7 0111 &只有俩都是1才是1
    A.4
    B.5
    C.6
    D.7
    E.0

  21. 下面的程序中,temp的最终值是什么? B
    long temp=(int)3.9; //temp 3
    temp%=2; //temp = temp%2
    A .0
    B .1
    C .2
    D .3
    E .4

  22. 下列标识符(名字)命名原则中,正确的是( ) D
    A. 类名的首字母小写
    B. 变量和方法名的首写字母大写
    C. 接口名的首写字母小写
    D. 常量完全大写

  23. 类Test1定义如下:
    1.public class Test1{
    2. public float aMethod(float a,float b){ return 0;}
    3.
    4.}
    将以下哪种方法插入行3是不合法的。(B) //考察重载
    A、public float aMethod(float a, float b,float c){ return 0;}
    B、public float aMethod(float c,float d){ return 0;}
    C、public int aMethod(int a, int b){ return 0;}
    D、private float aMethod(int a,int b,int c){ return 0;}

  24. 下列哪个属于容器型构件( ) C
    A .JEdit B.JButton C.JPanel D.JTextField

  25. Java程序的执行过程中用到一套JDK工具,其中java.exe是指( ) B
    A.Java文档生成器 B.Java解释器
    C.Java编译器 D.Java类分解器

  26. 下列关于构造方法的叙述中,错误的是( ) C
    A. Java语言规定构造方法名与类名必须相同
    B. Java语言规定构造方法没有返回值,但不用vold声明
    C. Java语言规定构造方法不可以重载 //可以重载 有参和无参
    D. Java语言规定构造方法只能通过new自动调用

  27. break语句( ) D
    A、只中断最内层的循环 B、只中断最外层的循环
    C、借助于标号,可以实现任何外层循环中断 D、只中断某一层的循环

  28. Java语言中下面哪个可以用作正确的变量名称( ) B
    解析: 以下划线或者字母开头 不能是Java关键字
    A、3D B、name C、extends D、implements

  29. 在JavaScript中如何验证一个数据是否是数字(D)
    A.如果用Integer.parseInt(value)有误就不是数字
    B. int I = value 若报错就不是数字,
    C. 没有方法验证
    D .利用isNaN(value) 返回的boolean进行判断

  30. 下面哪项不是JSP操作指令( D )
    A. getProperty B. forward
    C. include D. import

  31. 在配置tomcat虚拟目录时,需要打开哪个文件? ( C )
    A. index.jsp B. web.xml C.server.xml D.以上都不是

  32. 下面哪项不是response对象的方法( C )
    A. setContentType(String contentTypestr)
    B. setHeader(String headername,String headervalue)
    C. getParameter(String str)
    D. sendError(int errorcode)

  33. 以下( B )是编写Servlet必须导入的包.
    A.java.sql.* B.java.servlet.* C.java.util.* D.java.lang.*

二:多选题

  1. 下列属于jsp中注释的有( AD )
    A.<%-- 与 --%>
    B. /
    C. /** 与 **/
    D. <!-- 与 -->

  2. 按照学生平均成绩(avg_grade) 将students表中的数据检索出来,下面SQL语句正确的是( ACD )
    A) SELECT * FROM students ORDER BY avg_grade
    B) SELECT * FROM students GROUP BY avg_grade ASC //分组干嘛
    C) SELECT * FROM students ORDER BY avg_grade DESC
    D) SELECT * FROM students ORDER by avg_grade asc

  3. 下列是jsp作用域的通信对象的有( ABC ) //JSP对象中没有cookie
    A.Session
    B. application
    C.pageContext
    D.cookie

  4. 在接口中以下哪条定义是正确的? ( AB ) //接口中的域自动是public的 只能是public
    A. void methoda();
    B. public double methoda();
    C. public final double methoda();
    D. static void methoda(double d1);
    E. protected void methoda(double d1);

  5. 下面哪个语句正确地声明一个整型的二维数组?CDE
    A. int a[][] = new int[][];
    B. int a[10][10] = new int[][];
    C. int a[][] = new int[10][10];
    D. int [][]a = new int[10][10];
    E. int []a[] = new int[10][10];

  6. 下面哪些不是java的简单数据类型? BC 这俩是包装类
    A. short B. Boolean C. Double D. float

  7. 下面哪些语句能够正确地生成5个空字符串? AB
    A.String a[]=new String[5];for(int i=0;i<5;a[i++]=“”);
    B.String a[]={“”,“”,“”,“”,“”};
    C.String a[5];
    D.String[5]a;
    E.String []a=new String[5];for(int i=0;i<5;a[i++]=null);

  8. 下列说法错误的有( BCD)
    A. 数组是一种对象
    B. 数组属于一种原生类
    C. int number=[]={31,23,33,43,35,63} //多一个等号
    D. 数组的大小可以任意改变 //不变

  9. 不能用来修饰interface的有(ACD ) //只能是public
    A.private B.public C.protected D.static

  10. 如下代码
    class A {
    A() { }
    }
    class B extends A {
    }
    哪两个说明是正确的? BD
    A. B类的构造器应该是 public.
    B. B类的构造器应该是没有参数 //
    C. B类的构造器应该调用this().
    D. B类的构造器应该调用super().

  11. 下列标识符不合法的有( ACD)
    A.new B.$Usdollars C.1234 D.car.taxi

  12. 以下哪四个能使用throw抛出? ADEF
    A. Error
    B. Event
    C. Object
    D. Throwable
    E. Exception
    F. RuntimeException

  13. 下面哪三个描述是正确的? BCE
    A. 默认构造器初始化方法变量 //默认构造器为空
    B. 默认构造器有和它所在类相同的访问修饰词.
    C. 默认构造器调用其父类的无参构造器.
    D. 如果一个类没有无参构造器,编译器会它创建一个默认构造器.//没有构造器时
    E. 只有当一个类没有任何构造器时,编译器会为它创建一个默认构造器

  14. 哪二种声明防止方法覆盖? AD
    A、final void methoda() {}
    B、void final methoda() {} // final 放前面
    C、static void methoda() {}
    D、static final void methoda() {}
    E、final abstract void methoda() {}

三:简答题

  1. 说出数据连接池的工作机制是什么?
    J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其标记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量由配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

  2. Overloaded的方法是否可以改变返回值的类型?
    Overloaded的方法是可以改变返回值的类型。

  3. 说出Servlet的生命周期,并说出Servlet
    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

  4. 写一个Singleton(单例模式)出来。
    public class LazySingleton {
    private static LazySingleton instance = null;
    private LazySingleton() { //私有构造方法
    }
    public static LazySingleton getInstance() { //静态方法 返回类的实例
    if (instance == null) {
    instance = new LazySingleton();
    }
    return instance;
    }
    public void pp(){
    System.out.println(“lazy ok”);
    }
    }

  5. 用循环控制语句打印输出:1+3+5+…….+99=?结果。
    int sum = 0;
    for(int i=1;i<100;i+=2){
    sum = sum+i;
    }
    System.out.println("1+3+5+…+99 = "+sum);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值