前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础错题汇总(一)

Java基础错题汇总(一)

作者头像
FunTester
发布2021-12-16 14:28:10
2650
发布2021-12-16 14:28:10
举报
文章被收录于专栏:FunTesterFunTester

这段时间工作比较忙,技术上用到的不多,感觉公司的测试还是以业务为准,技术为辅。技术只是一种提升效率的手段,但是现在被神话了,无论你是测试什么岗位,都需要会有代码基础。

抱怨归抱怨,既然大环境这样,我们就抓紧补补短板吧。编程语言搞起来,这里给大家分享一下,我在练习Java基础过程中手机的错题集。

在 JAVA 编程中, Java 编译器会将 Java 程序转换为( )

  • 字节码
  • 可执行代码
  • 机器代码
  • 以上都不对

选择A

  • 编译器将Java源代码编译成字节码class文件
  • 类加载到JVM里面后,执行引擎把字节码转为可执行代码
  • 执行的过程,再把可执行代码转为机器码,由底层的操作系统完成执行。

以下Java程序运行的结果是:

复制代码

代码语言:javascript
复制
public class Tester{
public static void main(String[] args){
   Integer var1=new Integer(1);
   Integer var2=var1;
   doSomething(var2);
   System.out.print(var1.intValue());
   System.out.print(var1==var2);
}
public static void doSomething(Integer integer){
    integer=new Integer(2);
    }
}

java中引用类型的实参向形参的传递,只是传递的引用,而不是传递的对象本身。

自己画的图,而且没有visio!直接画图画的!

以下代码执行的结果显示是多少()?

代码语言:javascript
复制
public class Demo{
    public static void main(String[] args){
        System.out.print(getNumber(0));
        System.out.print(getNumber(1));
        System.out.print(getNumber(2));
        System.out.print(getNumber(4));
    }
    public static int getNumber(int num){
        try{
            int result = 2 / num;
            return result;
        }catch (Exception exception){
            return 0;
        }finally{
            if(num == 0){
                return -1;
            }

            if(num == 1){

                return 1;

            }

        }

    }

}

规则:

1.try块是必须的,catch块和finally块都是可选的,但必须存在一个或都存在。try块不能单独存在。

2.try块里的语句运行中出现异常会跳过try块里其他语句,直接运行catch里的语句。

3.无论try块中是否有异常,无论catch块中的语句是否实现,都会执行finally块里的语句。

4.如果try块或catch块中有return语句,finally块里的语句会执行在try块或catch块中的return语句前。

5.如果finally块里有return语句,则直接返回,而不执行try块或catch块里的return语句。

6.只有一种办法不执行finally块里的语句,那就是调用System.exit(1);方法,即退出java虚拟机。

强调:finally块里的语句在try或catch里的return前执行!!!

下列有关Servlet的生命周期,说法不正确的是?

代码语言:javascript
复制
在创建自己的Servlet时候,应该在初始化方法init()方法中创建Servlet实例
代码语言:javascript
复制
在Servlet生命周期的服务阶段,执行service()方法,根据用户请求的方法,执行相应的doGet()或是doPost()方法
代码语言:javascript
复制
在销毁阶段,执行destroy()方法后会释放Servlet 占用的资源
代码语言:javascript
复制
destroy()方法仅执行一次,即在服务器停止且卸载Servlet时执行该方法

Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。

(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet

(2)创建:通过调用servlet构造函数创建一个servlet对象

(3)初始化:调用init方法初始化

(4)处理客户请求:每当有一个客户请求,容器会创建一个线程来处理客户请求

(5)卸载:调用destroy方法让servlet自己释放其占用的资源

对于构造方法,下列叙述正确的是( )。

代码语言:javascript
复制
构造方法的优先级一般比代码块低。
代码语言:javascript
复制
构造方法的返回类型只能是void型。
代码语言:javascript
复制
构造方法的主要作用是完成对类的对象的初始化工作。

一般在创建新对象时,系统会自动调用构造方法。

A:静态成员变量或静态代码块>main方法>非静态成员变量或非静态代码块>构造方法

B:think in java中提到构造器本身并没有任何返回值。

C: 构造方法的主要作用是完成对类的对象的初始化工作。

D: 一般在创建(new)新对象时,系统会自动调用构造方法。

以下程序的输出结果是

复制代码

代码语言:javascript
复制
public class Print{
    static boolean out(char c){
        System.out.println(c);
        return true;
    }
    public static void main(String[] argv){
        int i = 0;
        for(out('A');out('B') && (i<2);out('C')){
            i++;
            out('D');
        }
    }
}

for循环执行开始

首先执行out('A') 输出A;

然后执行out('B')&&(i<2)此时输出B,i=0,判断条件为真,执行for循环的循环体;

执行i++,out('D'),输出D i=1;

执行out('C'),输出C

然后执行out('B')&&(i<2) 此时输出B,i=1 判断条件为真 ,执行for循环的循环体;

执行i++,out('D'),输出D i=2;

执行out('C'),输出C

然后执行out('B')&&(i<2) 此时输出B,i=2,不满足i<2 判断条件为假 ,跳出循环;

所以结果为ABDCBDCB

好的,今天就先到这里了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档