
Java
文章平均质量分 74
木南曌
从藩而始,笃志笃行
展开
-
数据库连接池Druid
Druid是阿里巴巴开源的一款高性能数据库连接池和监控工具,它不仅仅是一个简单的连接池,还集成了数据源管理、SQL解析、性能监控、安全防护等多种功能,为开发者提供了一个全方位的数据访问优化平台.Druid作为一款功能强大、性能卓越的数据库连接池,为开发者提供了高效的数据库连接管理、强大的SQL优化、全面的监控诊断以及可靠的安全防护等功能。它在高并发的互联网应用、数据密集型应用和企业级应用等场景中都有着广泛的应用前景。原创 2024-12-22 17:42:41 · 817 阅读 · 0 评论 -
JIT(Just-In-Time Compilation)编译器及其原理实现
JIT编译器是一种特殊的编译器,它在程序运行期间动态地将字节码(Bytecode)转换为机器码。这种转换发生在程序执行时,而不是在程序启动之前。JIT编译器的主要目的是提高程序的执行速度和效率,同时保留字节码带来的平台无关性和易于更新的优势。原创 2024-09-23 23:07:38 · 922 阅读 · 0 评论 -
Java字符串为何是不可变的?
Java中字符串是一个非常常用的数据类型,它不仅在日常编码中频繁使用,也是面试中常见的考点之一。一个经常被讨论的话题是Java中的字符串为何是不可变的。本文将探讨这个问题,并解释其背后的原因。原创 2024-09-05 22:32:05 · 484 阅读 · 0 评论 -
Jooq 框架介绍及其核心要点
通过上述示例,我们可以看到 Jooq 如何简化了与数据库交互的过程。它不仅提供了类型安全的 SQL 构建器,还支持 ORM 功能,使得开发者可以更高效地进行数据库操作。Jooq 的灵活性和扩展性也非常强,无论是简单的 CRUD 操作还是复杂的查询逻辑,都能轻松应对。对于希望在 Java 应用中实现高效数据库操作的开发者来说,Jooq 是一个非常值得推荐的选择。原创 2024-08-06 22:26:48 · 791 阅读 · 0 评论 -
spring 循环依赖
在大多数情况下,构造器注入是一个良好的实践,因为它可以确保Bean的不可变性和完整性。然而,在构造器注入不能解决问题时,可以考虑使用setter注入或其他方式来避免循环依赖。最好的做法是尽量避免设计中出现循环依赖,因为这通常是设计上的缺陷。如果确实需要依赖循环,那么应该考虑使用其他设计模式,例如观察者模式,来减少耦合度。原创 2024-07-26 07:19:04 · 449 阅读 · 0 评论 -
Dubbo配置指南:全面解析配置文件与核心配置项实战
Dubbo 的配置文件是服务治理、服务提供、服务消费等关键操作的基础,支持通过多种格式进行配置,包括 XML、YAML、Properties 文件以及通过编程 API 的方式。原创 2024-06-13 22:08:31 · 851 阅读 · 0 评论 -
Dubbo的Cluster策略与Directory实现
Dubbo是一个高性能的Java RPC框架,它提供了丰富的集群容错机制和灵活的路由策略。在Dubbo中,Cluster和Directory是两个核心概念,它们共同工作以实现服务的负载均衡和集群管理。原创 2024-06-10 15:28:52 · 442 阅读 · 0 评论 -
Dubbo底层RPC原理深度解析
Dubbo作为一款高性能的分布式服务框架,其核心在于其底层的RPC实现,它允许服务在分布式系统中的不同节点间透明地进行远程调用。通过上述机制,Dubbo构建了一个高效、可靠、易于管理的分布式服务调用环境,极大地简化了微服务架构下的服务通信与治理难题。原创 2024-05-26 18:43:14 · 639 阅读 · 0 评论 -
Dubbo与Spring Cloud等微服务框架的深度比较及选型指南
在当今的微服务架构领域,Dubbo与Spring Cloud作为两大主流框架,各自拥有独特的设计理念与技术优势,广泛应用于不同规模和类型的项目中。本文将从多个维度深入比较Dubbo、Spring Cloud以及其他代表性微服务框架(如gRPC、Istio),以帮助开发者和架构师根据项目需求做出更合适的选择。综上所述,选择合适的微服务框架需依据具体项目需求、团队技术栈、未来可扩展性等多方面因素综合考量。每种框架都有其独到之处,正确选型能极大提升开发效率和系统稳定性。原创 2024-05-26 12:39:06 · 884 阅读 · 0 评论 -
Dubbo在微服务架构中的角色与价值探析
Dubbo 采用微内核+插件的设计理念,提供了丰富的SPI(Service Provider Interface)扩展点,允许用户轻松地替换或添加自定义组件,以满足特定的业务需求,例如自定义负载均衡策略、序列化方式等。Dubbo 内置了一系列服务治理功能,包括负载均衡、容错机制、服务降级、流量控制等,帮助开发者管理服务的生命周期,确保服务的高可用性和稳定性。自动化的服务注册与发现机制,以及内置的服务治理策略,减轻了运维负担,使微服务架构的管理和维护变得更加高效和自动化。原创 2024-05-24 17:45:31 · 461 阅读 · 0 评论 -
Dubbo的发展历程与项目背景
Dubbo从阿里巴巴内部的分布式服务框架成长为国际开源社区的明星项目,其发展历程见证了中国开源力量的崛起和微服务架构的演变。从解决企业内部问题出发,到成为全球开发者信赖的技术选择,Dubbo的成功不仅在于其技术的先进性,还在于其开放合作的社区精神和持续迭代的创新活力。如今,Dubbo已经成为构建高性能、可扩展的微服务系统不可或缺的工具之一。原创 2024-05-23 17:51:32 · 442 阅读 · 0 评论 -
生成4位不重复的字符串
实际的业务场景中需要生成4位不重复的字符串,这个场景比较特殊,不具有普遍性,正常场景的唯一单号都不会只有4位。最先想到的是随机生成4位字符串,字符包括数字、大小写字母一共62位,基本可以满足使用要求,但是越到后面,重复的概率就会越大。想要保证不重复,可以加入时间戳,机器id等,类似雪花算法的思路,但是长度都比较长,将其映射为4位长度的字符串有点困难。只能换一个思路,通过递增的方式来保证唯一性,递增可以借助数据库实现。同时将10进制转换为62进制可以满足4位长度的限制。这样10进制的最大值为 147763原创 2020-11-20 15:08:27 · 2427 阅读 · 0 评论 -
单例模式的实现方法
单例模式(Singleton)是一种使用率非常高的设计模式,其主要目的在于保证某一类在运行期间仅被创建一个实例,并为该实例提供了一个全局访问方法。下面分别给出 java 和 python 的实现方式:java 的 6 种实现方法:1 懒汉式,线程不安全public class SingletonModle1 { private static SingletonModle1 inst...原创 2020-05-05 19:05:17 · 210 阅读 · 0 评论 -
java 高并发
线程安全 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的。...原创 2018-07-29 17:08:06 · 178 阅读 · 0 评论 -
spring batch
参考:Spring Batch 批处理框架介绍原创 2018-07-08 14:29:11 · 195 阅读 · 0 评论 -
Java9 新特性详解
参考资料:Java9新特性原创 2018-02-24 12:57:25 · 792 阅读 · 0 评论 -
Java 反射
参考资料:Java 基础之反射原创 2018-03-07 15:55:15 · 168 阅读 · 0 评论 -
阻塞队列
参考:什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?原创 2018-03-15 12:50:44 · 157 阅读 · 0 评论 -
Java 正则表达式
1. 正则表达式的构造摘要简介1.1 字符类[abc] a、b 或 c(简单类)[^abc] 任何字符,除了 a、b 或 c(否定)[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)[a-z&&[def]] d、e 或 f(交集)[a-z&&...原创 2017-05-24 16:04:05 · 199 阅读 · 0 评论 -
Java 编码问题汇总
问题一:在java中读取文件时应该采用什么编码?Java读取文件的方式总体可以分为两类:按字节读取和按字符读取。按字节读取就是采用InputStream.read()方法来读取字节,然后保存到一个byte[]数组中,最后经常用new String(byte[]);把字节数组转换成String。在最后一步隐藏了一个编码的细节,new String(byte[]);会使用操作系统默认的字符集来解码...转载 2017-03-21 21:24:27 · 224 阅读 · 0 评论 -
Java 中使用 IO 流实现大文件的分拆与合并
记录一下大文件的拆分和合并,代码如下: Java分割文件的方法: //文件分割的方法(方法内传入要分割的文件路径以及要分割的份数) private static void splitFileDemo(File src, int m) { if(src.isFile()) { //获取文件的总长度 long l = ...转载 2016-12-22 21:21:11 · 428 阅读 · 0 评论 -
Java 多线程
线程的创建Java 使用 Thread 类代表线程,所有的线程对象都必须是 Thread 类或其子类的实例。Java 可以用三种方式来创建线程,如下所示:继承 Thread 类创建线程 一般步骤如下: 定义 Thread 类的子类,并重写该类的 run() 方法,该方法的方法体就是线程需要完成的任务,run() 方法也称为线程执行体创建 Thread 子类的实例,也就是创建了线程对...原创 2018-03-06 10:57:51 · 110 阅读 · 0 评论 -
Java 代理
参考: 代理模式实现方式及优缺点对比原创 2018-03-13 12:52:50 · 133 阅读 · 0 评论 -
Spring 知识点
Spring父子容器Spring,Spring MVC 共存时,会有两个容器一个Spring MVC的Servlet WebApplicationContext为子容器。 一个Spring的Root WebApplicationContext 为父容器。当子容器找不到对应的bean时会委托父容器中的bean。 Root WebApplicationContext (父容器)中的b...原创 2018-03-06 12:58:09 · 120 阅读 · 0 评论 -
Java 内存模型
概念Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共享变量的可见性以及如何在需要的时候对共享变量进行同步。原始的Java内存模型效率并不是很理...原创 2018-04-29 15:04:42 · 961 阅读 · 0 评论 -
精确地测量java对象的大小
参考:如何精确地测量java对象的大小原创 2018-05-28 12:47:03 · 266 阅读 · 0 评论 -
IDEA 小技巧
参考:Intellij IDEA神器那些让人爱不释手的小技巧原创 2018-06-05 19:53:55 · 176 阅读 · 0 评论 -
Java8 新特性
1、接口改善a.接口中可以定义静态方法b.更重要的是,接口中的方法,可以用default修饰后,添加方法体2、函数式接口 核心概念就是函数式接口。如果一个接口定义个唯一一个抽象方法,那么这个接口就成为函数式接口。比如,java.lang.Runnable就是一个函数式接口,因为它只定义一个抽象方法: public abstract void run();原创 2017-07-04 19:08:53 · 242 阅读 · 0 评论