• 面试官常问的20道Java题目(附答案)-来自Java1234


    1. 以下代码的输出结果是(A)

    int i =3;

    i = i++;

    System.out.println(i);

    A .3  B.4  C.5

    a=b++是先将b值赋值给a后b再自增。

    2. Math.round(11.5)等于多少? Math.round(-11.5)等于多少?

    Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;向上取整

    3. Collection 和 Collections的区别。

    Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

    4. java中实现多态的机制是什么?

    方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

    5. java中向上转型、向下转型是什么?

    向上转型:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。

    向下转型:父类引用的对象转换为子类类型成为向下转型

    6. 多线程创建有几种方式?

    三种,分别是:继承Thread类;实现Runnable接口;实现Callable接口。

    7. GC是什么?为什么要有GC?

    GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:

    System.gc()

    Runtime.getRuntime().gc()

    8. thorw与thows的区别?

    throw抛出的是异常对象;throws抛出的是类,如果有多个类则使用逗号间隔

    throw用于代码块或方法体;throws只能用于方法参数列表后边,不能用于代码块

    如果throw抛出的异常是运行时异常,则可以不使用throws;否则必须显示处理:try-catch或者throws

    9. ArrayList与 LinkedList 的区别?

    最明显的区别是ArrrayList 底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构书链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。LinkedList是双向链表、

    10. Class.forName()和ClassLoader的区别?

    Class.forName()除了将类的.class文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法。

    ClassLoader只将.class文件加载到jvm中,不会执行static中的内容。

    11. Log4j常用的四个日志级别是哪四个?优先级顺序是怎样的?

    优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。

    12. 拦截器和过滤器有什么区别?程序中是先执行拦截器还是过滤器?

    ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。

    ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

    ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

    ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

    ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。

    ⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

    程序中先执行过滤器。

    13. 请描述Mybatis结果集中 ResultMap 和ResultType的区别。

    resultType和resultMap功能类似  ,都是返回对象信息  ,但是resultMap要更强大一些 ,可自定义。因为resultMap要配置一下,表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来,但是,resultType就比较鸡肋了,必须字段名一样,比如说 cId和c_id 这种的都不能映射 。

    14.  Java中 @PostConstruct和@PreDestroy注解有什么作用?

    l 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的init()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。

    l 被@PreDestroy修饰的方法会在服务器卸载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的destroy()方法。被@PreDestroy修饰的方法会在destroy()方法之后运行,在Servlet被彻底卸载之前

    15. 编写Webservice接口服务端(框架)有几种方式?

    Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF等

    16. 常用的缓存框架有哪几个?

    Ehcache、Memcache、Redis

    17. 如何在谷歌浏览器中跟踪调试页面

    浏览器中打开开发者工具(F12)跟踪调试。

    Elemetts:跟踪页面DOM元素

    Console:跟踪控制台输出

    Network:跟踪网络请求

    18. 简述TCP三次握手的理解

    第一次

    第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

    第二次

    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

    第三次

    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

    19. Linux下你常用的命令有哪些?

    cd命令用来改变所在目录。cd /  转到根目录中cd ~  转到用户目录下

    ls命令用来查看目录的内容。

    cp命令用来拷贝文件cp <source filename> <target filename>

    mv命令 mv t.txt Document    把文件t.txt 移动到目录Document中。

    20. Nginx有什么作用?

    反向代理  

    负载均衡

    动静分离

  • 相关阅读:
    在Node.js环境下使用npm命令安装OpenLayers6.4.3时,提示错误“rollbackFailedOptional: verb npm-session”的解决办法
    Windows7-64环境中部署OpenLayers6.4.3详细步骤
    Navicat 导出csv数据乱码如何处理?
    Win10 如何右键新建.md文件
    关于loading加载的问题
    X度文库越来越不要脸了!
    Layui date 插件 闪烁 无法选择
    每日识字
    如何生成项目目录结构
    小米招聘 hiring
  • 原文地址:https://www.cnblogs.com/zsh-blogs/p/11325058.html
Copyright © 2020-2023  润新知