java技术圈 为您找到相关结果 558

Java序列化框架Kryo

Kryo 是一个Java序列化框架,它以其高效和快速的性能而闻名,通常用于高性能场景如网络通信、缓存、持久化存储以及大数据处理等。Kryo 通常比 Java 内置的序列化机制更快并且产生的序列化数据更小。以下是 Kryo 序列化库的一些关键特性:高效的性能:Kryo 是为了高性能而设计的,它在速度和序列化结果的尺寸上通常优于许多其他序列化库。易用性:Kryo 提供了一个简单的API,这使得进行序列化和反序列化操作变得容易。灵活的配置:Kryo 允许用户对序列化过程进行自定义配置,例如可以选择是否注册类,是否使用字段名进行序列化等。可插拔的序列化策略:可以为不同的类型指定不同的序列化器,也可以自定义序列化器。前向/后向兼容的版本控制:通过配置,可以允许不同版本的类之间相互序列化。Kryo 在 ...阅读全文

博文 2024-05-12 12:31:11 zhidiantech

[完结11章]技术大牛成长课,从0到1带你手写一个数据库系统课程

[完结11章]技术大牛成长课,从0到1带你手写一个数据库系统 参考资料下载地址1:https://pan.baidu.com/s/1ANB63p3Alsu6ivFGlKKNLg 提取码: ksn2 参考资料下载地址2:https://share.weiyun.com/Tp6ewDIJ 密码:6crcwd 大家好,今天我将给大家分享关于如何开发一个数据库系统的知识,将从0到1手把手带着一步步去开发这个项目,希望我的分享对大家的学习和工作有所帮助,如果有不足的地方还请大家多多指正。 一、什么是数据库系统 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成 二、数据库管理系统的主要功能包括 数据定义功能:DBMS提供数据定义语言(Data Definition La...阅读全文

博文 2023-11-29 14:23:57 giadnbhaytgw

Jedis-分布式缓存服务Redis版-快速入门-连接实例-多语言连接-Java客户端

更多的客户端的使用方法,请参考https://redis.io/clients。 如果创建Redis实例时设置了密码,使用Jedis客户端连接Redis时,需要配置密码进行连接,建议不要将明文密码硬编码在代码中。如果使用JedisCluster连接Redis4.0/5.0 Cluster集群,集群内部拓扑结构会自动刷新,客户端需要自己处理重连问题。前提条件已成功申请Redis实例,且状态为“运行中”。已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器用户指南》。如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装java编译环境操作步骤步骤 1 查看并获取待连接Redis实例的IP地址/域名和端口。具体步骤请参见 查看实例信息。步骤 2 登录弹性云服务器。步骤 3 首先...阅读全文

博文 2023-07-20 03:22:42 天翼云

Java单列集合Set:HashSet与LinkedHashSet详解,为什么它比List接口更严格?

上篇我们介绍了单列集合中常用的list接口,本篇我们来聊聊单列集合中的另外一个重要接口Set集合。 ### 1 Set 介绍 java.util.Set接口和java.util.List接口一样,同样实现了Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,只是比Collection接口更加严格了。 与List接口不同的是,Set接口中元素无序,并且都会以某种规则保证存入的元素不出现重复,这里的某种规则,我们在后面中给大家揭秘,大家不要着急。 - 无序 - 不可重复 它没有索引,所以不能使用普通for 循环进行遍历。 >Set 集合 遍历元素的方式 迭代器,增强for 来,我们通过案例练习来看看 ``` //创建集合对象 ...阅读全文

博文 2023-11-21 18:17:32 YDYXCODE

基于SpringBoot3.x+Vue3.x整合从0到1一步一步实现酒店管理系统

基于SpringBoot3.x+Vue3.x整合从0到1一步一步实现酒店管理系统 给大家分享一套课程——基于SpringBoot3.x+Vue3.x整合从0到1一步一步实现酒店管理系统,附源码+笔记+数据库脚本下载。 Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架...阅读全文

博文 2023-12-28 19:44:41 woaiwodejia333

【完结26章】Java主流分布式解决方案多场景设计与实战

【完结26章】Java主流分布式解决方案多场景设计与实战 给大家分享一套java课程——Java主流分布式解决方案多场景设计与实战,已完结26章,附源码+文档下载。 Ceph的核心组件包括Client客户端、MON监控服务、MDS元数据服务、OSD存储服务,各组件功能如下: Client客户端:负责存储协议的接入,节点负载均衡 MON监控服务:负责监控整个集群,维护集群的健康状态,维护展示集群状态的各种图表,如OSD Map、Monitor Map、PG Map和CRUSH Map MDS元数据服务:负责保存文件系统的元数据,管理目录结构 OSD存储服务:主要功能是存储数据、复制数据、平衡数据、恢复数据,以及与其它OSD间进行心跳检查等。一般情况下一块硬盘对应一个OSD。 分布式文件系统(D...阅读全文

博文 2023-12-22 11:30:36 woaiwodejia333

源码分析之byte & 0xFF

在阅读java源代码时会经常发些代码里面会出现诸如byte & 0xFF之类的代码,之前没深究,感觉是多此一举的操作。 后经过仔细研究发现里面涉及底层数据存储基本原则正数存储的二进制原码,负数存储的是二进制的补码。 在netty源码中,会使用Bytebuf来接收网络数据。如明确知道是一个字节无符号的数字,会调用ByteBuf.readUnsignedByte方法获取该字节的内容 public short readUnsignedByte() { return (short) (readByte() & 0xFF); } 复制代码其中readByte()会返回该字节对应的byte,但为什么后面有和 0xFF 进行按位与操作然后转换为short呢。 首先netty在接收网络数据时,会以相应大小的...阅读全文

博文 2023-05-18 04:43:02 掘金

真正解决方案:java.lang.ClassNotFoundException: javax.xml.bind.JAXBException

真正解决方案:java.lang.ClassNotFoundException: javax.xml.bind.JAXBException 1. 故障描述2. 故障原因分析3.解决方案3.1 解决方案一3.2 解决方案二(亲测可行)3.3 解决方案三 1. 故障描述 今天在使用JDK 9.0 环境下使用Hibernate 时候出现了这个错误,错误日志如下: 2. 故障原因分析 JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。 java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包 而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的 3.解决方案 3.1 解决方案一 降低JDK 9...阅读全文

博文 2023-12-13 14:53:09 CSDN博客

Java开发者必备:Maven简介及使用方法详解!

今天我们来介绍一个在Java开发中非常重要的工具——Maven。如果你是一名Java开发者,那么你一定不会对Maven感到陌生。但是,对于一些新手来说,可能还不太了解Maven是什么,它有什么作用,以及如何使用它。接下来,就让我们一起来深入了解一下Maven吧! ## 一、maven简介 ### Maven是什么 Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。maven是基于Ant 的构建工具,Ant 有...阅读全文

博文 2023-12-07 16:23:53 YDYXCODE

集成SpringSecurity,访问接口报401 unauthorization无权限_springsecurity登录接口401_wang0112233的博客

集成了spring Security的时候启动项目,如果没有设置默认的账号密码,系统会自动给你生成一个密码,默认用户为user 在postman中访问的时候只需要设置 这样就可以简单的访问接口并正确返回。 因为你没有设置密码,这样每次重启会给你一个随机新的密码,这样很不方便,那么我们可以在配置文件中定义固定的账号密码 当然也可以直接在java文件中定义账号密码,首先需要我们创建一个 Spring Security 的配置类,集成自 WebSecurityConfigurerAdapter 类,如下: @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override prote...阅读全文

博文 2023-04-12 07:13:38 CSDN博客

Java IO学习笔记三:MMAP与RandomAccessFile - Grey Zeng

作者:Grey 原文地址:Java IO学习笔记三:MMAP与RandomAccessFile 关于RandomAccessFile 相较于前面提到的BufferedReader/Writer和FileReader/Writer 普通的Reader和Writer只能顺序读写数据,RandomAccessFile提供了一个独有的seek方法,可以修改文件内容的指针,从而可以方便读取和修改文件中的任意位置。示例: import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import static java.nio.charset.Standar...阅读全文

博文 2023-05-12 16:32:23 博客园

一课掌握Java并发编程精髓(完结13章)

一课掌握Java并发编程精髓(完结13章) 分享一套Java课程——一课掌握Java并发编程精髓(完结13章),附源码+PDF课件下载。 并发编程 1.多线程 Java 是最先支持多线程的开发的语言之一,Java 从一开始就支持了多线程能力。由于现在的 CPU 已经多是多核处理器了,是可以同时执行多个线程的。 多线程优点 多线程技术使程序的响应速度更快 ,可以在进行其它工作的同时一直处于活动状态,程序性能得到提升。 性能提升的本质 就是榨取硬件的剩余价值(硬件利用率)。 并行与并发 单核 cpu 下,线程实际是串行执行的。操作系统中有一个组件叫做任务调度器,将 cpu 的时间片,分给不同的线程使用,只是由于 cpu 在线程间(时间片很短)的切换非常快,人类感觉是同时运行的。 总结为一句话就是...阅读全文

博文 2023-12-20 16:06:06 woaiwodejia333

JDBC快速入门:看我如何用JDBC数据库连接池,轻松解决大量并发请求问题!

我们已经知道JDBC是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,也是大多数Java开发者与数据库打交道的必备工具。但是,你是否知道,JDBC在处理大量并发请求时,可能会遇到一些问题?这就是我们今天要讨论的主题——JDBC数据库连接池。 首先,让我们来了解一下什么是数据库连接池。 ## 一、数据库连接池简介 JDBC连接池,全称为Java多线程数据库连接池,是一种用于管理数据库连接的技术。其主要作用是减少每次请求时创建和释放数据库连接的开销,以此提高系统性能。 在应用程序和数据库之间,JDBC连接池会建立一个连接池,当需要访问数据库时,无需每次都重新创建连接,而是直接从池中获取已有的连接。 ![image.png](http://static.itsharecircle.c...阅读全文

JVM自定义类加载器在代码扩展性的实践

作者:vivo互联网服务器团队-Wang Fei一、背景名单管理系统是手机上各个模块将需要管控的应用配置到文件中,然后下发到手机上进行应用管控的系统,比如各个应用的耗电量管控;各个模块的管控应用文件考虑到安全问题,有自己的不同的加密方式,按照以往的经验,我们可以利用模板方法+工厂模式来根据模块的类型来获取到不同的加密方法。代码类层次结构示意如下:获取不同加密方法的类结构图利用工厂模式和模板方法模式,在有新的加密方法时,我们可以通过添加新的handler来满足"对修改关闭,对扩展开放"的原则,但是这种方式不可避免的需要修改代码和需要重新发版本和上线。那么有没有更好的方式能够去解决这个问题,这里就是我们今天要重点讲的主题。二、类加载的时机 一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它...阅读全文

博文 2023-04-12 07:21:32 mp.weixin.qq.com

重新认识 Java 中的内存映射 mmap

mmap 基础概念mmap 是一种内存映射文件的方法,即将一个文件映射到进程的地址空间,实现文件磁盘地址和一段进程虚拟地址的映射。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页到对应的文件磁盘上,即完成了对文件的操作而不必再调用 read,write 等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。操作系统提供了这么一系列 mmap 的配套函数void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); int munmap( void * addr, size_t len); int msync(...阅读全文

博文 2023-05-15 03:54:19 知乎

告别繁琐操作!Maven常用命令一网打尽,让你的项目开发事半功倍!

Maven作为一款强大的项目管理工具,已经成为了Java开发者的必备技能。那么,如何才能更好地利用Maven来管理我们的项目呢?本文将为你介绍Maven的常用命令,让你的项目构建更轻松! ## 一、maven 的概念模型 Maven 包含了一个项目对象模型 ,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 ![image.png](http://static.itsharecircle.com/231216/2df7096d761d101ecc0f27e0f0c7beb7.png) #### 项目对象模型 (Project Object Model) 一个 maven 工程都有一个 pom.xml 文...阅读全文

博文 2023-12-16 16:38:44 YDYXCODE

双列集合Map不再难懂:轻松掌握这些知识点!

## 1 概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,学号与学生等,这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util.Map接口。 Map 接口下的集合与Collection 接口下的集合,他们的存储形式有所不同,如下图: ![image.png](http://static.itsharecircle.com/231205/ebb5393154fd764d6d07353910a6296c.png) Collection 集合,元素是独立的,存储的元素是一个一个的存储。Map中的集合,元素是成对出现。每个元素由键与值两部分组成,通过键可以找到所对应的值。所以我们前面所说 Collection是单列集...阅读全文

博文 2023-12-05 10:47:07 YDYXCODE

Content type 'application/json;charset=UTF-8' not supported异常的解决过程 - 背着泰山找黄河

首先说一下当时的场景,其实就是一个很简单的添加操作,后台传递的值是json格式的,如下图 ,后台对应的实体类, @Data @EqualsAndHashCode(callSuper = false) public class Route implements Serializable { private static final long serialVersionUID = 1L; /** * id */ private String id; /** * 设备id */ private String deviceId; /** * 路由地址 */ private String destNetwork; /** * 下一跳 */ private String nextHop; /** * 路...阅读全文

博文 2024-05-22 11:28:55 博客园

JVM自定义类加载器在代码扩展性的实践

导语 类加载器算是 JVM 的核心技术,也是比较难懂的知识,因此当然也就是成为了 java 面试中不可少内容,JVM自定义类加载器在代码扩展性在现实中也是我们经常遇到的问题,本次介绍的是VIVO技术团队在类加载器上的实践! 一、背景 名单管理系统是手机上各个模块将需要管控的应用配置到文件中,然后下发到手机上进行应用管控的系统,比如各个应用的耗电量管控;各个模块的管控应用文件考虑到安全问题,有自己的不同的加密方式,按照以往的经验,我们可以利用模板方法+工厂模式来根据模块的类型来获取到不同的加密方法。代码类层次结构示意如下: 获取不同加密方法的类结构图 利用工厂模式和模板方法模式,在有新的加密方法时,我们可以通过添加新的handler来满足"对修改关闭,对扩展开放"的原则,但是这种方式不可避免的...阅读全文

博文 2023-04-12 07:23:09 HeapDump性能社区

【Java实战项目】SpringBoot + Vue3打造你的在线电子书平台!

今天给大家分享一个基础的Java实战项目,用SpringBoot和Vue3开发一个电子书平台,大家可以尝试做一下这个项目,以此来检验这段时间的学习成果!废话不多说,下面正式进入项目: ### 一、项目介绍 #### 1. 项目简介 在线电子书微实战项目是一个实践性的基础项目,主要目的是通过开发一个在线电子书网站来帮助入门学习和实践相关的技术。 预览链接:https://www.ydcode.cn/onLineBookList ![image.png](http://static.itsharecircle.com/240302/3d9959ac8a62edceb0f5d99d72c2ce82.png) 该项目涵盖了以下主要功能: - 电子书管理:主要包括电子书的基本信息、电子书的章节管理、章...阅读全文

博文 2024-03-02 15:33:39 YDYXCODE

初识 NIO, 你了解io 和nio吗? 了解直接缓冲区和非直接缓冲区的区别吗?_兮家小二的博客

一、nio 是什么? 1、Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始) 2、Java NIO提供了与标准IO不同的IO工作方式。 3、nio 主要面向于网络编程 二、nio 和 io 的区别? 1、IO基于字节流和字符流进行操作的 2、NIO是基于通道(Channel)和缓冲区(Buffer)进行操作,数据总是从通道读取到缓冲区中,或者从缓冲区写入到通道中。 3、NIO引入了选择器的概念,选择器用于监听多个通道的事件(比如:连接打开,数据到达)。因此,单个的线程可以监听多个数据通道。 io 流实现过程 数据传递是单向的,写数据只管把数据往文件丢,读也是同理 并且 io 基本都是非直接缓冲区传递(速度慢) nio 实现过程 先...阅读全文

博文 2023-09-13 16:43:52 CSDN博客

[升级16章+电子书]SpringBoot+Vue3 项目实战,打造企业级在线办公系统

![1.png](http://static.itsharecircle.com/231221/63b4e56185c6b291f708be52646cf255.png) SpringBoot+Vue3 项目实战,打造企业级在线办公系统,2023年升级版16章,附电子书!未来,在线协同办公将成为企业常态化的工作方式,今天就给大家讲讲关于在线办公的一个项目,项目采用了当下最流行的前后端分离架构及技术( Java、SSM、Vue3.0、工作流 )。 我将以业务为基础,贯穿前后端技术栈,获得企业级项目开发经验,结合Vue3、SSM、ElementUI等主流技术栈,打造流程完整、功能齐全、模块多样,真实可用的在线办公系统,喜欢大家会喜欢这样的一个项目。 下面我们就开始代码实践,感兴趣的朋友可以跟着一...阅读全文

博文 2023-12-21 10:10:26 muandhbw

从入门到精通:集合工具类Collections全攻略!

>在之前的文章中,我们学习了单列集合的两大接口及其常用的实现类;在这些接口或实现类中,为我们提供了不少的实用的方法。 本篇文章我们来介绍一种java开发者为我们提供了一个工具类,让我们更好的来使用集合 ## Collections 工具类 ### 介绍 Collections 是一个操作Set,List,Map等的集合工具类。它提供了一系列静态的方法对集合元素进行排序、查询和修改等的操作,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。 ### 常用功能 通过java的api文档,可以看到Collections了很多方法,我们在此就挑选几个常用的功能,为大家演示一下使用: - public static void shuffle(List list) 打乱顺序:打乱集合顺序...阅读全文

博文 2023-11-28 14:20:48 YDYXCODE

Java集合浅学(二)了解集合的框架体系结构及常用实现类,从入门到精通!

### 前言 通过Java基础的学习,我们掌握了主要的Java语言基本的语法,同时了解学习了Java语言的核心-面向对象编程思想。 从集合框架开始,也就是进入了java这些基础知识及面向对象思想进入实际应用编码的过程,通过jdk中集合这部分代码的阅读学习,就能发现这一点。 本计划在这篇中把框架体系和一些集合的常用方法一起编写。仔细考虑之后,本着不让突出重点,结构清晰的思路,所以把框架体系单独拉出来,为让各位看官对java的集合框架有个清晰的认识,最起码记住常用的几种常用实现类! 好的,我们进入正题。 ### 集合的框架体系结构 可以在很多书籍或者教程中看到,JAVAEE进阶知识的学习,JDK中提供了满足各种需求的API,主要是让我们去学习和了解它提供的各种API,在使用这些API之前,我们往...阅读全文

博文 2023-10-30 10:38:22 YDYXCODE

数据库连接神器:JDBC的基本概述、组成及工作原理全解析!

>JDBC(Java DataBase Connectivity)是一种用于执行SQL语句的 Java API,是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够交给数据库执行SQL语句。 在信息化时代,数据库已经成为了存储和管理数据的重要工具。而Java作为一种广泛使用的编程语言,其与数据库的交互就显得尤为重要。JDBC就是为了解决这个问题而生的。通过JDBC,我们可以在Java程序中轻松地执行SQL语句,实现对数据库的增删改查操作。今天我们就来聊一聊JDBC的相关概念。 ## 一、JDBC简介 #### 概念: - JDBC(Java DataBase Connectivity) :Java数据库连接技术。 - 具体讲就是通过Java连接广泛的数据库,并对表中数据执行增、删...阅读全文

博文 2023-12-22 10:24:27 YDYXCODE

基于C++从0到1手写Linux高性能网络编程框架-15章

参考资料地址1:https://pan.baidu.com/s/1i8FuLluEUV3BJFphjKWvhQ 提取码:zvet 参考资料地址2:https://pan.baidu.com/s/1MgD4BdeD6V6HfXkoMAZ5Hw 提取码:l5t4 网络编程概述 管道(父子进程)、消息队列(内核经营消息队列)、共享内存(创建一个空间)、信号(通过pid号通信)、信号量(对临界资源,共享内存做P、V控制) 。 特点:依赖于Linux内核 A B两个通信基于内核。缺陷:无法多机通信 (不适用与两台不同的电脑) TCP和UDP对比: TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前 不需 要建立连接 TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无...阅读全文

博文 2023-12-06 15:18:14 giadnbhaytgw

【小家java】Java线程池之---ForkJoinPool线程池的使用以及原理_forkjoinpool自定义线程池

相关阅读 【小家java】java5新特性(简述十大新特性) 重要一跃 【小家java】java6新特性(简述十大新特性) 鸡肋升级 【小家java】java7新特性(简述八大新特性) 不温不火 【小家java】java8新特性(简述十大新特性) 饱受赞誉 【小家java】java9新特性(简述十大新特性) 褒贬不一 【小家java】java10新特性(简述十大新特性) 小步迭代 【小家java】java11新特性(简述八大新特性) 首个重磅LTS版本 【小家java】Java中的线程池,你真的用对了吗?(教你用正确的姿势使用线程池) 小家Java】一次Java线程池误用(newFixedThreadPool)引发的线上血案和总结 【小家java】BlockingQueue阻塞队列详解以及5...阅读全文

博文 2023-12-01 10:52:18 CSDN博客

Java集合:双列集合HashMap的概念、特点及使用

HashMap是Java中的一个集合类,它实现了Map接口,提供了一种存储键值对的方式。你可以把它想象成一个没有固定大小和形状的储物柜,你可以随时往里面放东西,也可以随时取出东西。而且,这个储物柜还有一个神奇的功能,那就是无论你放进去的是什么,取出来的总是你放进去的那个。 上篇文章讲了Map接口的概念,以及Map接口中的常用方法和对Map集合的遍历,本篇文章我们将继续介绍另一个十分重要的双列集合—HashMap。 ## HashMap 概念 HashMap集合是Map接口的一个实现类,它用于存储键值映射关系,该集合的键和值允许为空,但键不能重复,且集合中的元素是无序的。 #### 特点 HashMap底层是由哈希表结构组成的,其实就是“数组+链表”的组合体,数组是HashMap的主体结构,链...阅读全文

博文 2023-12-12 10:40:31 YDYXCODE

MyBatis实战指南(二):工作原理与基础使用详解

MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。那么,它是如何工作的呢?又如何进行基础的使用呢?本文将带你了解MyBatis的工作原理及基础使用。 ## 一、MyBatis的工作原理 ### 1.1 MyBatis的工作原理 工作原理图示: ![image.png](http://static.itsharecircle.com/240111/fb3da40016d1dcdc2b11db5767113d68.png) **1、读取MyBatis配置文件** mybatis-config.xml为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息,例如数据库连接信息。 **2、加载映射文件(SQL映射文件,一般是XXXMapper.xml)** ...阅读全文

博文 2024-01-11 14:49:32 YDYXCODE

利用 Arthas 精准定位 Java 应用 CPU 负载过高问题_arthas cpuusage

Arthas 官方社区正在举行征文活动,参加即有奖品拿哦~点击投稿 作者 | 张云翔 最近我们线上有个应用服务器有点上头,CPU总能跑到99%,我寻思着它流量也不大啊,为啥能把自己整这么累?于是我登上这台服务器,看看它到底在干啥! 以前碰到类似问题,可能会考虑使用 top -Hp 加 jstack 命令去排查,虽然能大致定位到问题范围,但有效信息还是太少了,多数时候还是要靠猜。今天向大家推荐一款更高效更精准的工具:Arthas!Arthas 是 Alibaba 开源的 Java 诊断工具,能够帮助我们快速定位线上问题。基本的安装使用可以参考官方文档:https://alibaba.github.io/arthas 这次我们利用它来排查 CPU 负载高的问题。CPU 负载过高一般是某个或某几个...阅读全文

博文 2024-03-13 11:20:01 CSDN博客

Java并发编程指南15:Fork/join并发框架与工作窃取算法剖析

创文章,转载请注明: 转载自并发编程网 – ifeve.com 1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+。。+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和,最终汇总这10个子任务的结果。Fork/Join的运行流程图如下: 2. 工作窃取算法 工作窃取(work-stealing)算法是指某个线程从其他队列里窃取任务来...阅读全文

博文 2023-12-01 10:42:03 阿里云开发者社区

Hive中rlike,like,not like,regexp区别与使用详解_hive rlike

1.like的使用详解 1.语法规则: 格式是A like B,其中A是字符串,B是表达式,表示能否用B去完全匹配A的内容,换句话说能否用B这个表达式去表示A的全部内容,注意这个和rlike是有区别的。返回的结果是True/False.B只能使用简单匹配符号 _和%,”_”表示任意单个字符,字符”%”表示任意数量的字符like的匹配是按字符逐一匹配的,使用B从A的第一个字符开始匹配,所以即使有一个字符不同都不行。 2.操作类型: strings3.使用描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B 的正则语法,则为TRUE;否则为FALSE。尤其注意NULL值的匹配,返回的结果不是FALSE和TRUE,而是null,其实除了is null ,is not...阅读全文

博文 2024-03-14 10:38:02 CSDN博客

Java 8 将List转换为Map_java stream流list转map

(3)确认好系统应用的专业技术,开展线上确定系统所划分的用户角色,而且依据用户角色划分明确所要构思的功能模块,对考试成绩分析系统系统设计关键划分别为管理人员和用户角色,并所采用的功能模块也随之不一样,可是系统的数据库系统完成内容就是互动的,用户随时都可以根据自己的喜好开展课程内容信息,针对系统工作员要根据自己的主抓信息进行线上信息的处理方法及实际操作,管理人员掌握到全部用户的基本数据信息,并依据实际需求第一时间处理处理。该系统的设计执行为成绩分析系统的运转打好基础,为成绩分析系统提供更好的标准...阅读全文

博文 2024-03-05 14:04:52 CSDN博客

MyBatis实战指南(一):从概念到特点,助你快速上手,提升开发效率!

>MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程。 大家好,今天我们要来聊聊一个在Java开发中非常实用的框架——MyBatis。你是否曾经因为数据库操作而感到困扰?是否曾经因为SQL语句的编写而烦恼?那么,MyBatis或许就是你的救星。 接下来,让我们一起来了解一下MyBatis的概念与特点吧! ## 一、MyBatis基本概念 - MyBatis 是一款优秀的半自动的ORM持久层框架,它支持自定义 SQL、存储过程以及高级映射。 - MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。 - MyBatis 可以通过简单的 XML 或注解来配置和映射原...阅读全文

博文 2024-01-08 15:23:26 YDYXCODE

MyBatis实战指南(三):常用注解及使用方法

在前面的两篇文章中,我们已经详细介绍了MyBatis的工作原理和基本使用。今天,我们将深入探讨MyBatis的一个重要特性——注解。如果你对MyBatis的注解还不熟悉,那么这篇文章将为你打开一扇新的大门。 ## 一、什么是注解(Annotation) 首先,我们需要明白什么是注解。注解 Annotation 是从JDK1.5开始引入的新技术。 在Java中,注解是一种用于描述代码的元数据,它可以被编译器、库和其他工具读取和使用。MyBatis的注解就是用来简化XML配置的,它们可以让你的代码更加简洁、易读。 **注解的作用:** - 不是程序本身,对程序作出解释 - 可以被其他程序读取到 **Annotation格式:** 注解是以@注解名的方式在代码中实现的,可以添加一些参数值 如:@S...阅读全文

博文 2024-01-18 16:18:24 YDYXCODE

Java可视化UML工作流系统(Activiti7+SpringBoot)

下载地址:百度网盘章节目录:第1章 清晰的学习目标,让学习更轻松首先项目演示了解项目整体情况,便于小伙伴通过本课程学习,能够最终做出的怎样的项目效果。同时,明确学习activiti工作流对今后工作的重要性,确立学习目标。1-1 玩转黑马项目,“技术+业务”能力齐飞试看第2章 开发前准备:环境搭建篇【选修】所谓“君欲善其事,必先利其器”,因此本章带着小伙伴们将课程所需环境一一构建起来,小伙伴们可以结合自己情况,有选择有重点的去学习。注意:MySQL安装时讲解了如何开启远程访问、设置电脑防火墙;Maven国内镜像仓库修改等。...2-1 JDK安装2-2 Maven安装2-3 MySQL安装2-4 SpringBoot项目创建2-5 BPMN插件第3章 项目从git下载与打包部署很多小伙伴在别的...阅读全文

博文 2020-08-19 10:20:30 jmterorh

理解 Java类加载器与Agent字节码插桩中的类加载问题

引言在 Java 编程中,理解类加载器的机制对开发复杂的应用和工具非常重要,尤其是在涉及 Java Agent 这样高级技术时更是如此。在本文中,我们将深入探讨 Java 类加载器的工作机制,并通过一个实际的 Java Agent 示例来展现如何解决类加载的问题。类加载器概述Java 的类加载器是负责将类文件加载到 JVM 中的组件。类加载器的工作分为三个主要的过程:加载、链接和初始化。类加载器通常按以下层次结构工作:引导类加载器(Bootstrap ClassLoader):JVM 自带的类加载器,用于加载核心类库如 java.lang.*。扩展类加载器(Extension ClassLoader):加载扩展目录中的类库应用类加载器(App ClassLoader):加载应用的类路径中的类...阅读全文

博文 2024-06-22 00:09:04 zhidiantech

maven-shade

[TOC] 一、 缘起编写java agent插件的时候,用到javassist修改字节码,插件用来记录调用链的,需要在方法的前后插入代码。突发奇想,用来看看javassist是怎么调用的,结果达不到预期效果,因为java agent中,javassist的代码已经加载过了,没插入记录调用链的代码,刚好看到guava中有介绍用maven-shade-plugin将guava repackage重命名包名,因此记录下。 二、maven-shade-plugin介绍maven-shade-plugin是一个maven打包插件,提供的功能比较丰富,使用也简单易懂。 1、简单打包简单打包只需要增加execution, 指定执行package的phase,为这个phase绑定global shade就...阅读全文

博文 2024-01-25 20:15:46 plugin介绍 | ZhengRun's Blog

Java如何打印Hbase rowkey

步骤1: 设置HBase环境与连接确保已经正确配置了HBase的客户端依赖(如hbase-client、hbase-common等),并设置了HBase的ZooKeeper地址。以下是一个简化的示例,假设您已经有了一个配置好的Configuration对象(conf)和表名(tableName):import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.TableName;import org.apache.hadoop.hbase.client.Connection;import org.apache.hadoop.hbase.client.ConnectionFactory;// 创建...阅读全文

博文 2024-05-12 12:49:11 zhidiantech

Linux新手村必备!这些常用操作命令你掌握了吗?

在计算机的世界里,Linux操作系统以其强大的功能和灵活性受到了广大程序员和IT爱好者的喜爱。然而,对于初学者来说,Linux的操作命令可能会显得有些复杂和难以理解。 今天,我们就来一起探索一些Linux常用操作命令,让你的计算机操作更加流畅。 ### 一、目录操作 首先带大家了解一下Linux 系统目录: ``` ├── bin -> usr/bin # 用于存放二进制命令 ├── boot # 内核及引导系统程序所在的目录 ├── dev # 所有设备文件的目录(如磁盘、光驱等) ├── etc # 配置文件默认路径、服务启动命令存放目录 ├── home # 用户家目录,root用户为/root ├── lib -> usr/lib # 32位库文件存放目录 ├── lib64 -> ...阅读全文

博文 2024-01-25 15:09:28 YDYXCODE

使用CompletableFuture优化你的代码执行效率 - 冬至饮雪

这篇文章详细讲解java8中CompletableFuture的特性,方法以及实例. 在java8以前,我们使用java的多线程编程,一般是通过Runnable中的run方法来完成,这种方式,有个很明显的缺点,就是,没有返回值,这时候,大家可能会去尝试使用Callable中的call方法,然后用Future返回结果,如下: public static void main(String[] args) throws Exception { ExecutorService executor = Executors.newSingleThreadExecutor(); Future stringFuture = executor.submit(new Callable阅读全文

博文 2024-04-12 15:39:19 博客园

tron波场区块链智能合约交互入门到精通(基于6.x.x版本)

tron波场区块链智能合约交互入门到精通(基于6.x.x版本) 波场TRON以推动互联网去中心化为己任,致力于为去中心化互联网搭建基础设施。旗下的波场TRON协议是基于区块链的去中心化应用操作系统协议之一。 为协议上的去中心化应用运行提供高吞吐,高扩展,高可靠性的底层公链支持。 有限的高计算性能节点被用户选为网络维护节点。 波场的目标是通过提供一个去中心化的平台来改善互联网的体验,包括数字内容分发、娱乐和社交媒体等领域。它使用了自己的加密货币TRX(TRONix)来支持其生态系统。 波场项目的核心是其区块链技术,这使得开发者可以构建去中心化的应用程序(DApps)和智能合同,而不依赖于传统的中心化互联网架构。波场还采用了代表性的DPoS(DelegatedProof of stake)共识机...阅读全文

博文 2024-08-12 16:59:04 woaidaqipaiqiu1122

阿里 P7二面:Redis 执行 Lua,到底能不能保证原子性?

你好,我是猿java。 Redis 和 Lua,两个看似风流马不相及的技术点,为何能产生“爱”的火花,成为工作开发中的黄金搭档?技术面试中更是高频出现,Redis 执行 Lua 到底能不能保证原子性?今天就来聊一聊。 要想弄清楚这个问题,需要对“原子性”这个概念有一个清晰的认识,因此,首先要分析的是原子性的概念。 一、原子性通常意义的原子性通常意义上,我们说的原子性是指关系型数据库 RDBMS(比如 MySQL)的原子性,也就是 ACID(Atomicity、Consistency、Isolation、Durability)中 Atomicity这一项特性。 ACID 中的原子性指:事务中的所有操作要么全部执行,要么全部不执行。 这里以银行转账,账户A 给账户B 转账100元为例来解释原子性...阅读全文

博文 2024-08-22 17:32:15 猿java

说说 Spring 表达式语言(SpEL)中的各种表达式类型

1 文本表达式 文本表达式支持字符串、 日期 、 数字(正数 、 实数及十六进制数) 、 布尔类型及 null。其中的字符表达式可使用单引号来表示,形如:'Deniro'。如果表达式中包含单引号或者双引号字符,那么可以使用转义字符 /。 ExpressionParser parser = new SpelExpressionParser(); //字符串解析 String str = (String) parser.parseExpression("'你好'").getValue(); System.out.println(str); //整型解析 int intVal = (Integer) parser.parseExpression("0x2F").getValue(); System...阅读全文

博文 2024-02-23 16:15:35 掘金

6种常用Bean拷贝工具一览|Java 刷题打卡

本文正在参加「Java主题月 - Java 刷题打卡」,详情查看 活动链接 在我们日常的工作中,经常需要做对象的拷贝或转化,例如在传递参数时,把入参的DTO转化为PO存入数据库,在返回前端时把PO再转化为VO。如果再分的细一点,可能还会有DO(Domain Object),TO(Transfer Object) ,BO(business object)等对象,随着业务的划分越来越细,对象的拷贝工作也越来越频繁,所以本文就来梳理一下常用的对象拷贝工具和它们的差异。 常用的工具大概有以下几种: Apache BeanUtils Spring BeanUtils cglib BeanCopier Hutool BeanUtil Mapstruct Dozer 准备工作,创建两个类PO和DTO: @...阅读全文

博文 2024-03-29 14:40:30 掘金

解锁Mysql中的JSON数据类型,怎一个爽字了得 - 码农Academy

引言 在实际业务开发中,随着业务的变化,数据的复杂性和多样性不断增加。传统的关系型数据库模型在这种情况下会显得受限,因为它们需要预先定义严格的数据模式,并且通常只能存储具有相同结构的数据。而面对非结构化或半结构化数据的存储和处理需求,选择使用非关系型数据库或者创建子表存储这些变化的结构可能会变得复杂。在这种情况下,我们可以利用MySQL的JSON字段类型来解决这个问题。JSON字段提供了灵活的数据存储方式,能够轻松应对数据结构的变化和动态性,从而更好地满足业务需求。 MySQL5.7.8版本引入了JSON数据类型,允许在数据库表中存储和操作符合JSON格式的数据。这种原生支持JSON(JavaScript对象表示法)的数据类型遵循RFC 7159标准,提供了有效存储复杂、半结构化数据的方式。...阅读全文

博文 2024-07-12 10:22:24 博客园

javaagent使用指南 - rickiyang

今天打算写一下 Javaagent,一开始我对它的概念也比较陌生,后来在别人口中听到 字节码插桩,bTrace,Arthas后面才逐渐了解到Java还提供了这么个工具。 JVM启动前静态Instrument Javaagent 是什么? Javaagent是java命令的一个参数。参数 javaagent 可以用于指定一个 jar 包,并且对该 java 包有2个要求: 这个 jar 包的 MANIFEST.MF 文件必须指定 Premain-Class 项。 Premain-Class 指定的那个类必须实现 premain() 方法。 premain 方法,从字面上理解,就是运行在 main 函数之前的的类。当Java 虚拟机启动时,在执行 main 函数之前,JVM 会先运行-javaa...阅读全文

博文 2024-06-24 10:37:14 博客园