Java
-
简直了,被“Java并发锁”问题追问到自闭
本文咱们就来聊聊这些Java并发锁的理解吧。我们将从以下这些方面来一起回顾一下Java中的并发锁。
-
并发协调神器CountDownLatch和CyclicBarrier
CountDownLatch的适用场景更倾向于等待其他线程的任务完成,而CyclicBarrier更适用于多个线程在特定位置同步后继续执行。两者都是非常有用的并发控制工具,能够帮助程序员更加灵活地管理多线程任务的执行顺序。
-
代码是如何被被编译的?
在我们使用的所有编程语言,比如Java、C、javascript等,我们都会编写文本格式的源代码,编译器或解释器会将源代码按照语言语法解析成对应的语法结构树,基于该结构一来可以实现语法检查、代码高亮等功能,同时针对特定代码块可以有很多其他操作。
-
Go 开发踩过的那些坑,你踩过几个?
Go 能够调用 SayHello 方法,调用 GetName() 时,在 return s.Name 报错了,而不是在 GetName 的调用行数报错。说明它走到方法里面了。问了下通义千问,大意是,方法并不属于对象的内部数据结构,因此对 nil 访问方法会转到该结构体的方法表,但如果访问 nil 的内部数据结构,则一定会抛 nil pointer reference。
-
Redis为什么在6.0之后变成了多线程
Redis 6.0是一款功能强大、性能卓越的键值对存储数据库,适用于各种复杂的存储需求场景。如需更多信息,建议访问Redis官网或查阅相关技术文档。
-
使用 Java 进行大数据分析公众号阅读量 10 万+ 文章标题的秘密
无论是Java编程技巧的分享,还是公众号的运营管理,都需要我们深入掌握一门技术或者一项业务的精髓,并辅以实践的锻炼和自我迭代的能力。
-
深入理解Java虚拟机:堆详解
内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。
-
Netty 编程看上去懵懵的...
本文只是介绍了 Java NIO 在 Netty 中的体现、Netty 对 Java NIO 的封装,让大家更方便的理解 Netty,并不涉及 Netty 的高效、强大的设计之处,下文将会对此进行介绍。
-
面试官问:Java中的new关键字做了什么事情?
1. 64位开启指针压缩的情况下,存放Class指针的空间大小是4字节,MarkWord是8字节,对象头为12字节。数组长度4字节+数组对象头8字节(对象引用4字节(未开启指针压缩的64位为8字节)+数组markword为4字节(64位未开启指针压缩的为8字节))+对齐4=16字节。
-
深入理解Java虚拟机:程序计数器与虚拟机栈详解
在Java源文件被编译到字节码文件中时,所有的变量和方法引用都作为符号引用(Symbolic Reference)保存在class文件的常量池里。
-
被问到JVM类加载机制中双亲委派模型是什么,三次被破坏指什么?
双亲委派模型并不是一个具有强制性约束的模型,而是Java设计者推荐给开发者们的类加载器实现方式。在Java的世界中大部分的类加载器都遵循这个模型,但也有例外的情况,直到Java模块化出现为止,双亲委派模型主要出现过3次较大规模“被破坏”的情况。
-
使用Java代码混淆工具保护代码安全
混淆的意义在于保护代码的安全性和知识产权,防止代码被反编译、逆向工程或者恶意篡改。通过混淆,可以使得代码变得难以理解,增加攻击者分析和修改代码的难度,从而提高代码的安全性。同时,混淆也可以减小代码的体积,提高代码的执行效率。
-
网易面试官:请你实现一下JS重载?可不是TS重载哦!
我第一次看到重载这个词还是在以前学习Java的时候,我一直觉得JavaScript是没有重载的,直到TypeScript的出现,所以我一直觉得JavaScript没有重载,TypeScript才有,但是现在看来我是错的。
-
如何编写高性能的Java代码
在当今软件开发领域,编写高性能的Java代码是至关重要的。Java作为一种流行的编程语言,拥有强大的生态系统和丰富的工具链,但是要写出性能优异的Java代码并不容易。
-
Java中的锁升级机制:偏向锁、轻量级锁和重量级锁
我们需要重点分析MarkWord对象头,因为Markword 是保存锁状态的关键,对象锁状态可以从偏向锁升级到轻量级锁,再升级到重量级锁,加上初始的无锁状态,可以理解为有 4 种状态。想在一个对象中表示这么多信息自然就要用位来存储。