• java基础10题


    1.J2EE中,当把来自客户机的HTTP请求委托给servlet时,会调用HttpServlet的( )方法
    A.service
    B.doget
    C.dopost
    D.init
    2.下面代码的运行结果为

    public class Example{
        String str = new String("good");
        char[ ] ch = { 'a' , 'b' , 'c' };
        public static void main(String args[]){
            Example ex = new Example();
            ex.change(ex.str,ex.ch);
            System.out.print(ex.str + " and ");
            System.out.print(ex.ch);
        }
        public void change(String str,char ch[ ]){
            str = "test ok";
            ch[0] = 'g';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. class Line {
    2. public class Point { public int x,y;}
    3. public Point getPoint() { return new Point(); }
    4. }
    5. class Triangle {
    6. public Triangle() {
    7. // insert code here
    8. }
    9. }
      在第16行插入哪段代码可以获得一个Point对象的坐标?( )
      4.如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是()
      注:一个元素进栈后可以马上出栈,不用等全部进栈
      A.e3,e1,e4,e2
      B.e2,e4,e3,e1
      C.e2,e3,e4,e1
      D.任意顺序都有可能
      5.关于OutOfMemoryError,下面说法正确的是()?
      A.java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
      B.java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
      C.java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
      D.java.lang.OutOfMemoryError: nativeGetNewTLA这个异常只有在jRockit虚拟机时才会碰到
      6.在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。
      A.T
      B.F
      7.下列关于异常处理的描述中,错误的是()。
      A.程序运行时异常由Java虚拟机自动进行处理
      B.使用try-catch-finally语句捕获异常
      C.可使用throw语句抛出异常
      D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理
      8.以下多线程对int型变量x的操作,哪个不需要进行同步()
      A.++x
      B.x=y
      C.x++
      D.x=1
      9.要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( )
      A.让该类不使用任何关键字
      B.使用private关键字
      C.使用protected关键字
      D.使用void关键字
      10.下面结果正确的是
    public class Test {
        public static void main(String args[]) {
            String s = "tommy";
            Object o = s;
            sayHello(o); //语句1
            sayHello(s); //语句2
        }
        public static void sayHello(String to) {
            System.out.println(String.format("Hello, %s", to));
        }
        public static void sayHello(Object to) {
            System.out.println(String.format("Welcome, %s", to));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    A.这段程序有编译错误
    B.语句1输出为:Hello, tommy
    C.语句2输出为:Hello, tommy
    D.语句1输出为:Welcome, tommy
    E.语句2输出为:Welcome, tommy
    F.根据选用的Java编译器不同,这段程序的输出可能不同

    (1)A
    HttpServlet容器响应Web客户请求流程如下:
    1)Web客户向Servlet容器发出Http请求;
    2)Servlet容器解析Web客户的Http请求;
    3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;
    4)Servlet容器创建一个HttpResponse对象;
    5)Servlet容器调用HttpServlet的service方法,这个方法中会根据request的Method来判断具体是执行doGet还是doPost,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;
    6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;
    7)HttpServlet调用HttpResponse的有关方法,生成响应数据;
    8)Servlet容器把HttpServlet的响应结果传给Web客户。
    doGet() 或 doPost() 是创建HttpServlet时需要覆盖的方法.
    (2)good and gbc
    形参str只是栈上的一个引用,和ex.str是一个性质,但是是另个变量,str=“test ok”改变的是str的指向,和ex.str没有一毛钱关系
    (3)Line.Point p = (new Line()).getPoint();
    因为Point 在 类 Line 里面,属于内部类,直接 使用 Point p 肯定报错。
    而public class Point { public int x,y;} 是 Point 的构造方法, Line 肯定不能 获取到,Point
    只能获取到其Class
    Class c =Line.Point.class;
    但是如果是
    private class Point , Line.Point 将报错不到

    对象,只能通过
    getPoint()
    ,而 getPoint 不是静态方法,所以需要new Line ,
    (4)BC
    A.若e3先出,说明e1,e2肯定没出且是连着的,所以e1若出来的前提是e2先出来,故A错
    B,C以此类推
    要记住先进后出;
    且条件是一个元素进栈后可以马上出栈,不用等全部进栈,也就是说进了就可以立刻出去,不需要等后面的进栈之后再挨个出去
    (5)正确答案: A B C D
    (6)正确答案: A
    (7)D
    编译时异常必须显示处理,运行时异常交给虚拟机
    运行时异常可以不处理。当出现这样的异常时,总是由虚拟机接管。比如我们从来没有人去处理过Null Pointer Exception异常,它就是运行时异常,并且这种异常还是最常见的异常之一。出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往不对它处理罢了。也就是说,如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。
    (8)D
    x=y
    隐含着需要读取y才能赋值给x,存在数据依赖,需要禁止重排序,不然可能有同步问题
    (9)A在这里插入图片描述
    (10)正确答案: C D
    就近原则

  • 相关阅读:
    Python学习之Pytorch
    Docker 部署Jenkins
    vs2017 外网远程调试
    一个显示图像的Pyside6模板
    ElasticSearch8 8.3.0 安装 + kibana8.3.0 linux系统安装详细流程
    海外工具站 2022 复盘:50+ 条所见所思所感
    代码随想录训练营Day1:二分查找与移除元素
    二分查找(闭区间)
    make编译错误输出乱码的一种原因,与特殊符号的字符集相关
    Spring Boot报错 org.springframework.jdbc.BadSqlGrammarException
  • 原文地址:https://blog.csdn.net/Nicholas_giao/article/details/126965340