随笔分类 -  Java核心技术

掌握核心科技
摘要:本文结论:在使用 mongo-java-driver 时,如果需要扫描全表的情况下,创建多个cursor分页查询的效率不及只用一个cursor查全表效率高。 阅读全文
posted @ 2022-05-11 17:18 极客子羽 阅读(568) 评论(0) 推荐(0) 编辑
摘要:需求描述 我在 pom.xml 中添加了一个节点: <properties> <app.build.name>testApp</app.build.name> </properties> 我怎么能在 Java 代码中得到这个 "testApp" 值? String name = System.get 阅读全文
posted @ 2022-05-09 16:05 极客子羽 阅读(577) 评论(0) 推荐(0) 编辑
摘要:一、问题背景 在Java解析XML文件时,遇到一个情况: <glyph glyph-name="back" unicode="&#59030;" /> 比如,上面这个标签的 unicode 属性,在用 SAX 方式解析为字符串后,打印成了一个奇怪的中文: 因此,我希望还原 unicode 的“原码” 阅读全文
posted @ 2022-05-01 16:27 极客子羽 阅读(3160) 评论(0) 推荐(0) 编辑
摘要:一、开端 Dubbo 2.7.12 及其以下版本,均默认使用 CuratorZookeeperClient 从Dubbo 2.7.13 开始 ZookeeperTransporter 接口 getExtension 方法根据是否可以加载到 CuratorCache 这个类来判别当前依赖的 Curat 阅读全文
posted @ 2022-03-22 14:39 极客子羽 阅读(1479) 评论(0) 推荐(0) 编辑
摘要:EnumUtil 阅读全文
posted @ 2022-03-11 13:39 极客子羽 阅读(2093) 评论(0) 推荐(0) 编辑
摘要:一、Slf4j Java 日志组件, SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 1.1 Maven依赖 这里推荐一下,鲁班大叔开发的 Maven 依赖版本在线查询 http://mvn.coderead 阅读全文
posted @ 2021-11-18 14:46 极客子羽 阅读(1869) 评论(0) 推荐(0) 编辑
摘要:问题背景 现在,公司前人写的 javaagent 类型的 jar 包。线上的Web应用服务器,正常使用该 jar 包,现在我因为某些原因,需要调试其代码。 比如,你通过 XShell 登录测试环境的服务器,执行以下命令: ps -ef | grep java | grep -v grep 然后,我们 阅读全文
posted @ 2021-08-24 16:40 极客子羽 阅读(3010) 评论(0) 推荐(0) 编辑
摘要:问题背景 我的日志路径是 /opt/logs/xxxx.log,集群中共有两台服务器: 一台服务器的**日志文件最新更新时间** 是今天, 另一台服务器的**日志文件最新更新时间** 却是昨天甚至更久之前。 换言之,**一台服务器从过去某个时间点开始,日志就不能正常打印了。**另外,交代一下,这个项 阅读全文
posted @ 2021-08-11 15:29 极客子羽 阅读(1263) 评论(0) 推荐(0) 编辑
摘要:本文主要是记录阅读 MQTT3.1.1协议中文版 时的心得感悟。 环境信息 使用Docker运行emqx,作为MQTT的服务端 使用mqtt-spy.jar作为MQTT的客户端 使用Paho写一个简单的Java-MQTT客户端 使用WireShark进行协议抓包 MQTT 简介 MQTT(Messa 阅读全文
posted @ 2021-08-05 19:25 极客子羽 阅读(525) 评论(0) 推荐(1) 编辑
摘要:环境信息 IntelliJ IDEA 2019.2.4 (Ultimate Edition) Build #IU-192.7142.36, built on October 29, 2019 1.下载源码 方式一:从国外 Github 下载 zookeeper 源码 Go: git clone -- 阅读全文
posted @ 2021-07-30 15:36 极客子羽 阅读(454) 评论(0) 推荐(0) 编辑
摘要:系统环境 软件 版本 备注 VMware 16.1.2 build-17966106 16 Pro,虚拟机 Ubuntu 20.04.2 LTS 安装在虚拟机中的操作系统 CLion 2021.1.2 运行C++项目的软件 1.安装SDK 1、安装JDK(编译运行Java语言的) sudo apt 阅读全文
posted @ 2021-07-26 23:34 极客子羽 阅读(784) 评论(0) 推荐(0) 编辑
摘要:Redis中也用到了“跳表”这种数据结构,但是Redis是用C/C++语言编写的,对Java程序员来说不是特别友善。所以我们借助阅读java.util.concurrent.ConcurrentSkipListMap来了解一下“跳表”吧。 1.认识数据结构 索引与数据分开:ConcurrentSki 阅读全文
posted @ 2021-07-01 17:39 极客子羽 阅读(88) 评论(0) 推荐(0) 编辑
摘要:JDK1.7 中 HashMap 多线程成环问题,几乎已经成了Java程序员人人需要了解的知识了,本文就带大家来一切重现一下 HashMap 死循环 。 阅读全文
posted @ 2021-02-23 15:49 极客子羽 阅读(844) 评论(0) 推荐(0) 编辑
摘要:前言 通过上一篇博客 here 的讲述,我们已经找到了有价值的“官方文档”。 本文自然是要来用 jol-core 来实战和深入理解 synchronized 锁和 Java 对象头之间的 “纠葛” 了。 Object header is the common structure at the beg 阅读全文
posted @ 2021-01-13 17:29 极客子羽 阅读(1219) 评论(0) 推荐(3) 编辑
摘要:在 jdk1.6 以后, synchronized 锁借鉴了 Doug Lea 的锁设计思想,对 synchronized 锁的实现进行了优化。OpenJDK 和 Oracle Java 高度相似,因此我们可以学习 OpenJDK 来掌握 Java 底层原理。对象头主要由 mark word 和 klass pointer 两部分组成。 阅读全文
posted @ 2021-01-07 17:31 极客子羽 阅读(143) 评论(0) 推荐(1) 编辑
摘要:本文用 Externalizable 接口代替 Serializable,实现了对不需要序列化的字段,在反序列化创建对象时,初始化空集合的目标,但是引发了一个疑问:Java反序列化时是否通过默认构造函数创建对象?本文从Java源码的角度来分析此问题。 阅读全文
posted @ 2020-09-28 21:08 极客子羽 阅读(2350) 评论(1) 推荐(0) 编辑
摘要:一方面,可以通过getter方法或者过滤器SimplePropertyPreFilter指定需要的属性进行序列化,另一方面,可以通过@JSONField(serialize = false)限制不需要的属性不参与序列化。 阅读全文
posted @ 2020-09-27 23:07 极客子羽 阅读(2945) 评论(0) 推荐(0) 编辑
摘要:Jdbc的事务隔离级别数据库事务的基本特性 A 原子性 (atomicity) 事务中的各项操作被看成一个逻辑单元,要么全做,要么全不做,任何一项操作的失败都会导致整个事务的失败。 C 一致性 (consistency) 保证了当事务结束后,系统状态是一致的。 I 隔离性 (isolation) 使得并发执行的事务,彼此 阅读全文
posted @ 2020-08-28 23:31 极客子羽 阅读(737) 评论(0) 推荐(0) 编辑
摘要:本文介绍如何使用 Maven 来打包一个 javaagent.jar,我们选用的插件是 maven-jar-plugin,我们的方式有两种,一种是在 manifestFile 标签指定 MANIFEST.MF 文件路径,另一种是在 manifestEntries 标签设置属性键值对。如果是打包可运行 jar 包,除了前两种方法外,,第三种是使用 manifest 标签。 阅读全文
posted @ 2020-08-27 22:01 极客子羽 阅读(4146) 评论(0) 推荐(0) 编辑
摘要:Stream 流处理,首先要澄清的是 java8 中的 Stream 与 I/O 流 InputStream 和 OutputStream 是完全不同的概念。 Stream 机制是针对集合迭代器的增强。流允许你用声明式的方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。 本文后半部分将拿 Stream 中查询语句与我们熟悉的 SQL 查询语句做一些类别,方便大家的理解和记忆。 阅读全文
posted @ 2020-07-17 23:03 极客子羽 阅读(6744) 评论(0) 推荐(5) 编辑