Java
-
前谷歌CEO盛赞!GitHub Copilot 神秘竞争对手浮出水面,市值直逼独角兽!
最近,那位曾经把Java带成Sun巅峰的CTO、前谷歌CEO 施密特(Eric Schmidt)也再度挥刀编程领域,并投资了一家新的编程Copilot应用,有意思的是,这款产品背后的发起者是有微软的背景。
-
一种避免大量If-else代码的新思路
今天,我要给大家带来一个超级无敌霹雳的编码新招式,只要看完,保证你的代码像用了某某洗发水一样,不仅去屑还更柔顺。
-
Java的栈帧和动态链接是什么?
总的来说,符号引用转为直接引用是Java类加载过程中解析阶段的一个重要步骤,它确保了符号引用能够被正确地解析为内存中的直接引用,从而实现Java程序的正常运行。
-
秒挂了!与快手无缘了....
当线程池的任务队列满了之后,线程池会执行指定的拒绝策略来应对,常用的四种拒绝策略包括:CallerRunsPolicy、AbortPolicy、DiscardPolicy、DiscardOldestPolicy,此外,还可以通过实现RejectedExecutionHandler接口来自定义拒绝策略。
-
Java对象不再使用时,为什么要赋值为 null ?
有的语言垃圾回收算法是引用计数法,简单来说就是计算一个对象有多少个引用,如果对象引用为0时,那么该对象会判定为垃圾进行回收,但是会有循环引用的问题,比如三个无用对象互相引用,计算引用个数一直会是1。
-
面试官:MyBatis中ResultMap的实现原理是什么?
MyBatis支持自动映射,可以根据查询结果的列名和Java对象的属性名自动匹配。在使用自动映射时,结果集中的列名会与Java对象的属性名进行匹配,无需在Mapper XML文件中手动配置映射关系,简化了开发。
-
Stream.parallel():开启并行流处理之旅
在复杂的异步处理场景中,可以结合 CompletableFuture 与并行流,进一步提升程序的并发性和响应能力。通过合理使用并行流,开发者可以显著提升大规模数据集处理的性能,充分发挥现代多核处理器的潜力。
-
京东二面:Sychronized的锁升级过程是怎样的?
Synchronized锁升级机制是Java虚拟机为优化多线程环境下同步操作性能而设计的一种动态调整策略。
-
聊聊架构设计流程:设计备选方案
从高性能消息读取的单机系统设计来看,由于团队主要使用 Java,备选方案 2 和 3 均采用了基于 Netty 的高性能网络库。这反映了团队的技术背景对选择范围的影响。一般而言,成熟的团队不易频繁更换技术栈,而新成立的团队则更可能尝试新技术。
-
实战:如何编写一个 OpenTelemetry Extensions
这次我准备编写的插件也是和 Metrics 有关的,因为 Pulsar 的 Java sdk 中并没有暴露客户端的一些监控指标,所以我需要在插件中拦截到一些关键函数,然后执行暴露出指标。
-
你了解Java中的猴子补丁技术吗?
在本文中,我们了解到猴子补丁在某些场景中可能是有帮助和强大的。它可以通过各种技术实现,每种技术都有其优点和缺点。然而,这种方法应该谨慎使用,因为它可能导致性能、可读性、可维护性和安全问题。
-
面试官追问的STW,到底什么是STW?有什么影响?
所谓的STW,在Java中,当需要执行垃圾回收时,垃圾回收器会停止应用程序的所有线程,以便安全地识别和回收不再使用的对象。这个过程被称为“Stop The World”。
-
阿里一面:如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆?
Java 正则表达式使用的引擎实现是 NFA(Non deterministic Finite Automaton,确定型有穷自动机)自动机,这种正则表达式引擎在进行字符匹配时会发生回溯(backtracking),而一旦发生回溯,那其消耗的时间就会变得很长,有可能是几分钟,也有可能是几个小时,时间长短取决于回溯的次数和复杂度。
-
Thread.onSpinWait()有什么作用?为什么要睡眠0毫秒?
Java中,使用Thread.sleep(0)的目的是让当前线程主动放弃CPU的执行时间片,以便给其他具有相同优先级的线程执行的机会。虽然参数为0,但实际上并不是让线程休眠0毫秒,而是让线程进入就绪状态,等待重新获取CPU执行时间。
-
什么年代了,还在用Arrays.asList()?
Java中的List.of、Map.of和Set.of方法为开发人员提供了一种简洁、安全且高效的方式来创建不可变集合对象。与传统的集合创建方式相比,这些静态工厂方法可以使代码更加清晰易懂,并且能够确保集合对象的不可变性。