首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏JavaPark

    Java 面试高频问题之 JVM

    若一个对象具有强引用,就 相当于生活中必备的物品,垃圾回收器绝对不会回收它,当内存空间不足时,JVM 宁愿抛出 OOM 错误,也不会随意回收具有强引用的对象来解决内存不足问题,因此强引用是造成 Java 优点:解决了 标记-清理 算法存在的内存碎片问题; 缺点:仍需要进行局部对象移动,一定程度上降低了效率; ? 由于使用的是 标记 - 清除算法,所以会 导致收集结束后产生大量空间碎片; G1 收集器 G1(Garbage-First)收集器是 面向服务器的垃圾回收器,主要针对配备多个处理器和大内存的机器,以极高频率满足 /jvm/JVM%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6? id=_3-%e5%9e%83%e5%9c%be%e6%94%b6%e9%9b%86%e7%ae%97%e6%b3%95 [3] 浅析 JAVA 的垃圾回收机制(GC): https://www.jianshu.com

    48821发布于 2020-12-11
  • 来自专栏从流域到海域

    Java面试高频问题汇总 线程池专题

    Runnable接口和Callable接口的区别 Runnable自Java 1.0以来一直存在,但Callable仅在Java 1.5中引入,目的就是为了来处理Runnable不支持的用例。 线程池如何创建 《阿里巴巴Java开发手册》中强制线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,这中强制要求的目的在于让写的同学更加明确线程池的运行规则,

    70820发布于 2020-09-18
  • 来自专栏简尚

    Linux学习,高频问题

    21天打卡 ,从Linux服务器 及 Linux环境下部署,开始 。后续的多数打卡,基于Linux 环境 。

    70810发布于 2021-04-29
  • 来自专栏Java学习网

    Java中有关Null的9问题

    Java中有关Null的9问题 对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。 Java为什么要保留null呢?null出现有一段时间了,并且我认为Java发明者知道null与它解决的问题相比带来了更多的麻烦,但是null仍然陪伴着Java。 好吧,我真的不知道这个问题的答案,我知道的是不管null被Java开发者和开源社区如何批评,我们必须与null共同存在。 Object obj = NULL; // Not Ok Object obj1 = null //Ok 使用其他语言的程序员可能会有这个问题,但是现在IDE的使用已经使得这个问题变得微不足道。 9)你可以使用==或者!=操作来比较null值,但是不能使用其他算法或者逻辑操作,例如小于或者大于。

    1.8K50发布于 2018-02-26
  • 来自专栏后端架构师

    面霸篇:高频 Java 基础问题(核心卷一)

    Lambda 允许把函数作为一个方法的参数(函数作为参数传递到方法中),使用 Lambda 表达式使代码更加简洁,但是也不要滥用,否则会有可读性等问题,《EffectiveJava》作者 JoshBloch 面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事? 这是面向对象编程的一种设计原则,对于每一种设计原则,我们需要掌握它的设计初衷,能解决哪些编程问题,有哪些应用场景。 Error 此类错误一般表示代码运行时 JVM 出现问题。通常有 Virtual MachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误)等。 StringBuffer StringBuffer 是为解决上面提到拼接产生太多中间对象的问题而提供的一个类,我们可以用 append 或者 add 方法,把字符串添加到已有序列的末尾或者指定位置。

    61111发布于 2021-09-15
  • 来自专栏从流域到海域

    面试Python高频问题汇总

    functools.wraps可以解决函数被装饰后__name__变量变成用于装饰的函数的问题

    60120发布于 2020-09-03
  • 来自专栏Java开发

    应届生面试高频 Java 基础问题及详细答案解析

    在整理过程中,我选取了Java基础中极为高频且关键的问题,涵盖数据类型、关键字、核心类等关键领域。不仅给出精准答案,还搭配简洁示例助你理解。希望这份总结能助力你从容应对面试。 应届生面试最爱问的几道Java基础问题(含答案) 一、Java有哪些数据类型? Java数据类型分为基本数据类型和引用数据类型。 若你还想补充更多Java基础问题,或者对答案的详细程度有新要求,都能随时告诉我 。 应届生,Java 面试,Java 基础,面试问题,面试答案,Java 集合,Java 多线程,JVM,Java 并发,Java 异常,Java IO,Java 反射,Java 注解,Java 常用类,Java 基础高频问题

    40210编辑于 2025-06-19
  • 来自专栏IT技术订阅

    dubbo+zk面试高频问题

    超时时间的设置** 通过timeout属性配置超时时间, 服务的提供者和消费者都可以配置, 尽量在服务提供者中配置,因为服务的提供者会对自己提供的服务情况更清楚超时时间不要设置太大(1~5S),会影响并发性能问题 存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。 最少活跃调用数 相同活跃数的随机,活跃数指调用前后计数差。 ** dubbo序列化:阿里尚未开发成熟的高效java序列化实现,阿里不建议在生产环境使用它 hessian2序列化(默认推荐):hessian是一种跨语言的高效二进制序列化方式。 java序列化:主要是采用JDK自带的Java序列化实现,性能很不理想。 【面试题】- Zookeeper分布式锁(文件系统、通知机制)** 有了zookeeper的一致性文件系统,锁的问题变得容易。锁服务可以分为两类,一个是保持独占 ,另一个是控制时序 。

    59120编辑于 2022-06-23
  • 来自专栏IT杂谈学习

    Topk问题!(面试高频常考)

    前言 当你准备面试技术岗位时,经常会遇到一类问题,被称为Top-K问题。这些问题要求你找到数据集中的前K个最大或最小元素。这些问题出现在各种面试中,包括软件工程、数据科学和机器学习等领域。 这篇博客将为你提供有关Top-K问题的全面指南,包括常见的问题类型、解决方法以及一些面试技巧。 ️什么是Top-k问题? 在面试中,你可能会遇到多种Top-K问题的变体,这些问题要求你设计一个高效的算法来解决它们。 ️常见的Top-K问题类型 ☁️寻找Top-K最大元素 这是最常见的Top-K问题之一。 你可以使用哈希表或优先队列等数据结构来解决这个问题。 ️解决Top-K问题的方法 解决Top-K问题的方法主要是取决于问题类型和数据集的大小。 (int i = 0; i < k; i++) printf("%d ", arr[i]); } int main() { int arr[] = {1, 23, 12, 9,

    82210编辑于 2024-01-22
  • 来自专栏labuladong的算法专栏

    高频面试系列:单词拆分问题

    先说句题外话,前文 动态规划核心框架详解 说,标准的动态规划问题一定是求最值的,因为动态规划类型问题有一个性质叫做「最优子结构」,即从子问题的最优解推导出原问题的最优解。 单词拆分 I 首先看下力扣第 139 题「单词拆分」: 函数签名如下: boolean wordBreak(String s, List<String> wordDict); 这是一道非常高频的面试题 找到一个单词匹配 s[i..i+len) // ... } } 设wordDict的长度为M,字符串s的长度为N,那么这段代码的最坏时间复杂度是O(MN)(for 循环O(M),Java 我们刚才以排列组合的视角思考这个问题,现在我们换一种视角,思考一下是否能够把原问题分解成规模更小,结构相同的子问题,然后通过子问题的结果计算原问题的结果。 再加上 Java 中用+拼接字符串的效率并不高,且还要消耗备忘录去存储所有子问题的结果,所以这个算法的时间复杂度并不比回溯算法低,依然是指数级别。

    1K10编辑于 2022-09-01
  • 来自专栏程序猿DD

    Java 9 - 17 特性解读:Java 9

    所以胖哥抽时间梳理了一下从Java 9Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer Stream扩展 Stream API 是Java 8中引入的最重要的特性之一。在Java 9中Stream进一步得到了加强。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。

    56030编辑于 2023-04-04
  • 来自专栏码农小胖哥的码农生涯

    Java 9Java 17之Java 9

    所以胖哥抽时间梳理了一下从Java 9Java 17的一些常用API的变动。今天先来看看Java 9 都有什么东西。 Java 9 Java 9 最大的变化就是引入了一个JShell和模块化,日常并没有用太多,所以今天不花时间在这些功能上面。 Java 9改善了这一现状,现在你可以: // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} Set<Integer Stream扩展 Stream API 是Java 8中引入的最重要的特性之一。在Java 9中Stream进一步得到了加强。 总结 其实Java 9 还有一些底层的优化,不过对于普通开发者来说了解这些就够用了。上面几个特性,比较常用的就是静态不变集合、try-with-resources优化。

    98430发布于 2021-09-29
  • 来自专栏Java开发

    2025 年最新 Java 校招面试高频问题及详细答案汇总

    Java校招面试问题通常涵盖Java基础、并发编程、JVM、框架等方面,以下是一些常见问题及答案:Java基础Java语言有哪些特点?简单性:语法简洁,去除了C++中指针、多重继承等复杂易错特性。 ThreadLocal的原理和内存泄漏问题如何避免?原理:每个线程持有独立的ThreadLocalMap,Key为弱引用的ThreadLocal对象。 模块化编程(Java 9+)Java 9引入的模块系统(Jigsaw)允许将代码组织成独立的模块单元,明确声明依赖关系和暴露的API。 SortExample sorter = new SortExample(); List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 9) sorter.sortAscending(numbers, naturalOrder()); System.out.println(asc); // 输出: [1, 2, 5, 8, 9]

    59210编辑于 2025-06-26
  • 来自专栏Java开发

    应届生面试高频 Java 基础问题及实操示例详解

    实操示例:使用Java 8的Consumer接口演示引用传递虽然Java只有值传递,但可以通过Consumer接口实现类似引用传递的效果:import java.util.function.Consumer // 使用Java 9+的StringJoiner更方便地拼接字符串 StringJoiner joiner = new StringJoiner(", "); joiner.add 实操示例:使用Java NIO.2 API进行文件操作Java 7引入了NIO.2 API,提供了更简洁、更高效的文件操作方式:import java.io.IOException;import java.nio.file.Files ;import java.nio.file.Path;import java.nio.file.Paths;import java.util.List;public class NIO2Example 应届生,Java 面试,Java 基础,面试高频问题Java 集合,Java 多线程,Java 异常处理,Java 并发编程,JVM,Java IO,NIO,Spring 基础,MySQL, 数据结构

    25610编辑于 2025-06-19
  • 来自专栏Python爬虫与算法进阶

    【面试高频问题】线程、进程、协程

    并发解决了程序排队等待的问题,如果一个程序发生阻塞,其他程序仍然可以正常执行。 不过线程和线程之间由于某些资源是独占的,会导致锁的问题。例如Python的GIL多线程锁。 协程的好处: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 方便切换控制流,简化编程模型 高并发+高扩展性+低成本:一个CPU支持上万的协程都不是问题。所以很适合用于高并发处理。

    1.8K20发布于 2019-06-17
  • 来自专栏DPDK VPP源码分析

    带你应付TCPUDP高频面试问题

    有点措手不及,很多知识点都没有来得及准备,而在面试中经常被问到TCP和UDP的一些细节问题。于是就有了本篇文章的总结。是参考和复制了很多前辈的总结。希望准备跳到互联网公司的程序员都能顺利通过面试。 扩散问题: 既然 IP 层会分片,为什么 TCP 层还需要 MSS 呢?

    72020编辑于 2023-03-07
  • 来自专栏专注于java领域技术分析

    阿里P9整理Java 高频面试题聊一聊 JUC 下的 LinkedBlockingQueue

    本文聊一下 JUC 下的 LinkedBlockingQueue 队列,先说说 LinkedBlockingQueue 队列的特点,然后再从源码的角度聊一聊 LinkedBlockingQueue 的主要实现~

    50220发布于 2020-07-31
  • 来自专栏Java经验之谈

    Java高频面试题- 每日三连问?【Day9】 — 消息队列篇二

    问题导读 一、重复消费的情况出现过吗?如何解决的? 二、你是如何防止消息丢失的? 三、如何保证消息队列的高可用? 01 重复消费的情况出现过吗?如何解决的? ? 正经回答:   在一般网络环境下,都存在一定的网络延迟、网络抖动,网络问题导致消息重复发送的情况是难以避免的,毕竟网络环境无法预知。 因此MQ默认允许消息重复发送。 是的,只要通过网络交换数据,就无法避免这个问题。秉承着打不过就加入的原则,解决这个问题的办法就是绕过这个问题。 那么问题就变成了:如果消费端收到两条一样的消息,应该怎样处理?   RabbitMQ、RocketMQ、Kafka,都有可能会出现消息重复消费的问题。因为这问题通常不是 MQ 自己保证的,而是消费方自己来保证的。   如果是写 Redis,那没问题,反正每次都是set,天然幂等性。

    52530发布于 2021-08-16
  • 来自专栏前端时空

    高频前端开发面试问题

    首先,巧妙的使用“\9”这一标记,将IE游览器从所有情况中分离出来。 接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。 YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具,采用Java开发。 使用方法: //压缩JS java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js > packed.js //压缩CSS java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src.css > packed.css 详情请见:你需要掌握的前端代码性能优化工具 注:经过测试IE6,7,8,9均不支持严格模式。 缺点: 现在网站的JS 都会进行压缩,一些文件用了严格模式,而另一些没有。

    1.9K10编辑于 2022-09-22
  • 来自专栏面试经验贴

    分享13个高频面试问题

    本科/研究生期间在实验室/实习单位参与了XX项目,是否上线,担任什么角色,解决什么问题,遇到过什么问题。另外,在本科期间/研究所期间参与校内XX活动(技术之外有点爱好,点到为止)。 2 请问你有什么优点缺点 这个问题还是比较坑的,别上来就是优点能干大事儿,缺点太热爱打游戏。。。 当领导一个社团或者一个小组的时候,又是会因为太过和善显得魄力不足;有时候不怎么会拒绝别人,以后得多多改善 3 你还有什么问题要问? 是了解你对工作的期许。 我当初面试滴滴的时候被问了这个问题,我说完以后,HR马上来一句,如果你未来的主管是这样的性格怎么办?OMG,? 7 你最擅长的技术方向是什么? 希望准备面试的小伙伴,面试之前还是得去官网看看公司是干啥的吧,核心产品是什么,别真实突兀的就体验面试,这样很不友好的 9 除了本公司外,还应聘了哪些公司? 看你的求职意向。

    86910发布于 2020-06-05
领券