林寻星辰_社区达人页

个人头像照片
林寻星辰

java后端小白

暂无精选文章
暂无更多信息

2023年02月

  • 02.14 16:52:06
    发表了文章 2023-02-14 16:52:06

    java面试题(十)集合篇

    2.21 请介绍TreeMap的底层原理 参考答案 TreeMap基于红黑树(Red-Black tree)实现。映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。TreeMap的基本操作containsKey、get、put、remove方法,它的时间复杂度是log(N)。 TreeMap包含几个重要的成员变量:root、size、comparator。其中root是红黑树的根节点。它是Entry类型,Entry是红黑树的节点,它包含了红黑树的6个基本组成:key、value、left、right、parent和color。E
  • 02.14 16:51:43
    发表了文章 2023-02-14 16:51:43

    java面试题(九)集合篇

    2.1 Java中有哪些容器(集合类)? 参考答案 Java中的集合类主要由Collection和Map这两个接口派生而出,其中Collection接口又派生出三个子接口,分别是Set、List、Queue。所有的Java集合类,都是Set、List、Queue、Map这四个接口的实现类,这四个接口将集合分成了四大类,其中 ● Set代表无序的,元素不可重复的集合; ● List代表有序的,元素可以重复的集合; ● Queue代表先进先出(FIFO)的队列; ● Map代表具有映射关系(key-value)的集合。 这些接口拥有众多的实现类,其中最常用的实现类有HashSet、TreeSet、
  • 02.14 16:51:11
    发表了文章 2023-02-14 16:51:11

    java面试题(八)

    1.36 遇到过异常吗,如何处理? 参考答案 在Java中,可以按照如下三个步骤处理异常: 1. 捕获异常将业务代码包裹在try块内部,当业务代码中发生任何异常时,系统都会为此异常创建一个异常对象。创建异常对象之后,JVM会在try块之后寻找可以处理它的catch块,并将异常对象交给这个catch块处理。 2. 处理异常在catch块中处理异常时,应该先记录日志,便于以后追溯这个异常。然后根据异常的类型、结合当前的业务情况,进行相应的处理。比如,给变量赋予一个默认值、直接返回空值、向外抛出一个新的业务异常交给调用者处理,等等。 3. 回收资源如果业务代码打开了某个资源,比如数据库连接、网络连接
  • 02.14 16:50:42
    发表了文章 2023-02-14 16:50:42

    java面试题(七)

    1.21 说一说hashCode()和equals()的关系 参考答案 hashCode()用于获取哈希码(散列码),eauqls()用于比较两个对象是否相等,它们应遵守如下规定: ● 如果两个对象相等,则它们必须有相同的哈希码。 ● 如果两个对象有相同的哈希码,则它们未必相等。 扩展阅读 在Java中,Set接口代表无序的、元素不可重复的集合,HashSet则是Set接口的典型实现。 当向HashSet中加入一个元素时,它需要判断集合中是否已经包含了这个元素,从而避免重复存储。由于这个判断十分的频繁,所以要讲求效率,绝不能采用遍历集合逐个元素进行比较的方式。实际上,HashSet是通过获取对
  • 02.14 16:50:20
    发表了文章 2023-02-14 16:50:20

    java面试题(六)

    1.11 int和Integer有什么区别,二者在做==运算时会得到什么结果? 参考答案 int是基本数据类型,Integer是int的包装类。二者在做==运算时,Integer会自动拆箱为int类型,然后再进行比较。届时,如果两个int值相等则返回true,否则就返回false。 1.12 说一说你对面向对象的理解 参考答案 面向对象是一种更优秀的程序设计方法,它的基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。它从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以现实世界中的事物为中心来思考,认识问题,并根据这些事物的本质特点
  • 02.14 16:49:56
    发表了文章 2023-02-14 16:49:56

    java面试题(五)

    1.1 为什么Java代码可以实现一次编写、到处运行? 参考答案 JVM(Java虚拟机)是Java跨平台的关键。 在程序运行前,Java源代码(.java)需要经过编译器编译成字节码(.class)。在程序运行时,JVM负责将字节码翻译成特定平台下的机器码并运行,也就是说,只要在不同的平台上安装对应的JVM,就可以运行字节码文件。 同一份Java源代码在不同的平台上运行,它不需要做任何的改变,并且只需要编译一次。而编译好的字节码,是通过JVM这个中间的“桥梁”实现跨平台的,JVM是与平台相关的软件,它能将统一的字节码翻译成该平台的机器码。 注意事项 1. 编译的结果是生成字节码、不是机器码,
  • 02.14 16:49:27
    发表了文章 2023-02-14 16:49:27

    java面试题(四)

    1、什么时候用断言(assert)? 答: 断言在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。一 般来说,断言用于保证程序最基本、关键的正确性。断言检查通常在开发和测试 时开启。为了保证程序的执行效率,在软件发布后断言检查通常是关闭的。断言 是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true;如果表 达式的值为 false,那么系统会报告一个 AssertionError。 断言的使用如下面的代码所示: assert(a > 0); // throws an AssertionError if a <= 0 断言可以有两种形式: assert
  • 02.14 16:43:05
    发表了文章 2023-02-14 16:43:05

    java面试题(三)

    1、Java 中会存在内存泄漏吗,请简单描述。 答: 理论上 Java 因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是 Java 被 广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无 用但可达的对象,这些对象不能被 GC 回收,因此也会导致内存泄露的发生。例如 Hibernate 的 Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收 这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close) 或清空(flush)一级缓存就可能导致内存泄露。 下面例子中的代码也会导致内存泄露。 import java.util.A
  • 02.14 16:42:26
    发表了文章 2023-02-14 16:42:26

    java面试题(二)

    1、用最有效率的方法计算 2 乘以 8? 答: 2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)。 补充:我们为编写的类重写 hashCode 方法时,可能会看到如下所示的代码,其 实我们不太理解为什么要使用这样的乘法运算来产生哈希码(散列码),而且为 什么这个数是个素数,为什么通常选择 31 这个数?前两个问题的答案你可以自己 百度一下,选择 31 是因为可以用移位和减法运算来代替乘法,从而得到更好的性 能。说到这里你可能已经想到了:31 * num 等价于(num << 5) - num,左移 5 位相当于乘以 2 的 5 次
  • 02.14 16:35:07
  • 02.10 20:40:47
    发表了文章 2023-02-10 20:40:47

    初级算法之树

    树比链表稍微复杂,因为链表是线性数据结构,而树不是。 树的问题可以由 广度优先搜索 或 深度优先搜索 解决。 在本章节中,我们提供了一个对于练习 广度优先遍历 很好的题目。 我们推荐以下题目: 二叉树的最大深度,验证二叉搜索树,二叉树的层次遍历 和 将有序数组转换为二叉搜索树。 剑指 Offer 55 - I. 二叉树的深度 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 递归法: class Solution { public int maxDepth(TreeNode root) {
  • 发表了文章 2023-02-14

    高并发编程之阻塞队列

  • 发表了文章 2023-02-14

    高并发编程之ThreadPool 线程池

  • 发表了文章 2023-02-14

    高并发编程之JUC 三大辅助类和读写锁

  • 发表了文章 2023-02-14

    高并发编程之多线程锁和Callable&Future 接口

  • 发表了文章 2023-02-14

    高并发编程之线程间通信和集合的线程安全

  • 发表了文章 2023-02-14

    高并发编程之什么是 Lock 接口

  • 发表了文章 2023-02-14

    高并发编程之什么是 JUC

  • 发表了文章 2023-02-14

    设计模式日常学习(七)

  • 发表了文章 2023-02-14

    设计模式日常学习(六)

  • 发表了文章 2023-02-14

    设计模式日常学习(五)

  • 发表了文章 2023-02-14

    设计模式日常学习(四)

  • 发表了文章 2023-02-14

    设计模式日常学习(三)

  • 发表了文章 2023-02-14

    设计模式日常学习(二)

  • 发表了文章 2023-02-14

    设计模式日常学习(一)

  • 发表了文章 2023-02-14

    初级算法之数组(完结)

  • 发表了文章 2023-02-14

    高度平衡的二叉搜索树简介

  • 发表了文章 2023-02-14

    数据结构和算法(二叉搜索树)

  • 发表了文章 2023-02-14

    数据结构和算法(树Tree)

  • 发表了文章 2023-02-14

    算法小白成长之路(一)

  • 发表了文章 2023-02-14

    数据结构和算法之图的认识

正在加载, 请稍后...
滑动查看更多
  • 回答了问题 2023-02-14

    问答最高荣誉,乘风问答官招募中!每周积分活动、每月排位赛等权益专享!

    积极参加

    踩0 评论0
正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息