• java面试题汇总二


    第一部分 Java SE基础(2)

    1.8   Session 和 COOKIE

    1.session 和 cookie 区别

    cookie 是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个 Web服务器存储 cookie。以后浏览器在给特定的 Web 服务器发请求的时候,同时会发送所有为
    该服务器存储的 cookie。下面列出了 session 和 cookie 的区别补充:

    1.无论客户端浏览器做怎么样的设置,session 都应该能正常工作。客户端可以选择禁用cookie,但是,session 仍然是能够工作的,因为客户端无法禁用服务端的 session。

    2.在存储的数据量方面 session 和 cookies 也是不一样的。session 能够存储任意的 Java 对象,cookie 只能存储 String 类型的对象。
    1.9  equls 和 == 的区别

    注意:equals 方法不能用于基本数据类型的变量,如果没有对 equals 方法进行重写,则比较的是引用类型的变量所指向的对象的地址。

    1.10  ArrayList和LinkedList的区别?

    ArrayList底层使用的是数组,LinkedList使用的是链表

    数组具有索引,查询特定的元素比较快,而插入和删除,修改比较慢 (数组在内存中是一块连续的内存,如果插入或删除时需要移动内存)

    链表不要求内存时连续的,在当前元素中存放下一个或上一个元素的地址,查询时需要从头开始,一个一个地找,查询效率低,而插入时不需要移动内存,只需要改变引用指向即可。所以插入或删除效率高

    ArrayList适用于查询比较多,但是插入和删除比较少的情况。

    而LinkedList使用在查询比较少,但是插入和删除比较多的情况。

    1.11  HashMap和HashTable的区别?

    1.HashMap和HashTable都可以使用来存储key-value的数据。

    2.HashMap是可以吧null作为key或者value的,而hashTable是不可以的。

    3.HashMap是线程不安全的,效率较高。HashTable是线程安全的,效率较低。

    问题:我想线程安全又想效率高?使用CurrentHashMap

    通过把整个Map分为N个Segment(类似于HashTable),可以提供相同的线程安全,但效率提升N倍,默认是提升16倍。

    1.12 & 和 && 的区别

    &运算符有两种用法:(1)按位与;(2)逻辑与。

    &&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。

    &&
    之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。
    很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为 username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,
    因为第一个条件如果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。
    注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。
    1.13 是否可以继承 String

    String 类是 final 类,不可以被继承。

    继承 String 本身就是一个错误的行为,对 String 类型最好的重用方式是关联关系(Has-A)和依赖关系(Use-A)而不是继承关系(Is-A)。
    1.14 值传递与引用传递

    值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.
    引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。一般认为,java 内的传递都是值传递. java 中实例对象的传递是引用传递。
    1.15 字节流 字符流

     

    InputStreamReader 类是从字节流到字符流的桥梁:它读入字节,并根据指定的编码方式,将之转换为字符流。

     参考文章:与https://www.cnblogs.com/creative-work/p/12494798.html参考相同

  • 相关阅读:
    Visual Studio中配置Beyond Compare为版本比较工具
    Restsharp常见格式的发送分析
    dex2jar反编译dex文件
    Apktool反编译apk资源文件
    远程桌面复制粘贴突然失效的问题
    C#4.0 HTTP协议无法使用TLS1.2的问题
    TFS-Git官方教程
    git 换行符问题
    NPM升级
    NodeJS笔记(一)-免安装设置
  • 原文地址:https://www.cnblogs.com/creative-work/p/12495104.html
Copyright © 2020-2023  润新知