自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 资源 (1)
  • 问答 (6)
  • 收藏
  • 关注

转载 Linux下的SVN服务器搭建

鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结/开始***/系统环境:Centos 6.5第一步:通过yum命令安装svnserve,命令如下:>yum -y install subversion此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止...

2019-03-01 15:59:51 81

原创 JAVA API1.8中文版

百度网盘下载https://pan.baidu.com/s/1dml34pB7afqKKI-CQQLO3w

2018-09-20 14:34:15 891

原创 Java的简约哲学:运算符重载的缺席与编程思想

尽管这一决策可能让习惯于运算符重载的开发者感到不适应,但一旦你领略到Java的简约之美,你会发现这个世界其实可以变得更加清晰和美好。Java,作为一门深受欢迎的编程语言,以其“编写一次,到处运行”的理念和简约的设计哲学赢得了全球开发者的青睐。通过方法重载,Java鼓励开发者使用明确的方法名来描述操作,这样不仅提高了代码的可读性,也强化了对象的封装性。嗨,大家好,欢迎来到程序猿漠然公众号,我是漠然。

2024-03-29 10:15:00 370 1

原创 Fastjson库将JSONObject转换为实体类

Fastjson是一个由阿里巴巴开发的高性能JSON处理库,它简化了JSON数据的读写操作。总之,Fastjson提供了一套非常便捷的API来处理JSON和Java对象之间的转换,这在Web服务交互和数据传输中是非常有用的。在实际应用中,请确保处理异常和空指针检查,以保证程序的健壮性。方法接收两个参数,第一个参数是JSONObject转换成的JSON字符串,第二个参数是目标实体类Ztest的Class对象。

2024-01-14 12:49:49 764

原创 Docker安装详细教程

嗨,大家好,欢迎来到公众号,我是漠然。在Linux环境中,Docker有多个版本,包括CE(社区版)、EE(企业版)等。

2024-01-14 12:32:12 486

原创 锁的艺术:Java 中的锁类型与欢乐杂谈

记住,锁的世界就像是一部复杂的芭蕾舞剧,每个角色都有自己的舞蹈,而我们的任务就是确保每个人都能跳得开心。在这个过程中,我会尽量让你们在笑声中学习,所以请准备好你的笑脸和耳朵,因为这是一场关于锁的喜剧之旅。在偏向锁的管理下,锁会偏爱第一个访问它的线程,就像服务员总是优先服务他最喜欢的顾客一样。当线程尝试获取锁时,它不会直接放弃,而是会围着锁转来转去,就像是在跳一场不停旋转的探戈。轻量级锁就像是那个在舞蹈中轻盈跳跃的舞者。分段锁适用于高度并发的场景,通过将数据分成多个段,可以减少锁竞争,提高系统的并发性能。

2024-01-13 09:15:00 468

原创 Java 引用类型原理:深入剖析

嗨,大家好,欢迎来到公众号,我是漠然。在 Java 编程语言中,引用类型就像是一张神秘的地图,它指引着我们找到内存中的宝藏——也就是对象。引用类型主要有两类:对象类型和数组类型。别看它们长得差不多,其实它们可是有各自的秘密花园的。

2024-01-04 21:18:51 379

原创 100%会用到的hashCode()和equals()方法及使用规范

在Java编程中,正确使用equals()和hashCode()方法至关重要。我们需要根据业务逻辑重写这两个方法,并遵循上述规范。只有这样,我们才能保证对象的身份证系统正常运行,避免出现数据结构混乱和异常。记住,当你在Java的海洋中航行时,equals()和hashCode()就是你的指南针,没有它们,你可能会在茫茫代码中迷失方向。程序猿漠然,一个分享有趣后端知识的公众号。

2024-01-03 21:17:46 378

原创 深入理解 Union 和 Union All 的区别及优化技巧

在结果集方面,Union 和 Union All 的主要区别在于:Union 会去除重复的记录,而 Union All 不会。也就是说,如果student表、teacher表和doctor表中存在相同的数据,使用 Union 时,这些重复的数据只会显示一次;例如,在查询student、teacher和doctor时,我们要确保选择的字段是相同的,否则可能会出现数据对不齐的情况。需要注意的是,索引的使用要遵循最左前缀原则,即在进行联合查询时,要确保查询条件中使用了索引的最左列。这样,查询性能得到了提升。

2023-12-22 22:07:18 221

原创 Java序列化与反序列化三连问:是什么?为什么要?如何做?

总结: Java序列化和反序列化就像是神奇的魔法,让我们可以轻松地保存和恢复对象的状态。Java序列化,简单来说,就是将我们的Java对象转换成字节序列,以便于存储或传输。比如说,当我们需要将对象的状态保存到文件或数据库中,或者通过网络传输对象时,序列化和反序列化就派上了用场。原因其实很简单,它们为我们提供了一种便捷的方式,让我们可以在不同场景下轻松地保存和恢复对象的状态。而反序列化,则是序列化的逆过程。

2023-12-21 21:34:14 53

原创 说说Synchronized及实现原理

嗨,大家好,欢迎来到公众号,我是漠然。作为一名Java工程师,我相信大家都有过这样的经历:在开发多线程程序时,为了实现线程之间的通信,费尽了心思,有时甚至感到焦头烂额。那么,为什么线程之间的通信如此复杂?又有哪些方法可以实现线程之间的通信呢?今天,我将和大家一起探讨这个问题,并尝试用幽默风趣的语言和例子,让大家对线程通信有更深刻的理解。首先,让我们思考一下,为什么线程之间需要通信?简单来说,线程通信就是为了解决多线程环境下,不同线程之间需要协作完成某个任务的问题。

2023-12-20 21:03:19 49

原创 谈谈我对Java线程之间通信方式的理解

嗨,大家好,欢迎来到公众号,我是漠然。作为一名Java工程师,我相信大家都有过这样的经历:在开发多线程程序时,为了实现线程之间的通信,费尽了心思,有时甚至感到焦头烂额。那么,为什么线程之间的通信如此复杂?又有哪些方法可以实现线程之间的通信呢?今天,我将和大家一起探讨这个问题,并尝试用幽默风趣的语言和例子,让大家对线程通信有更深刻的理解。首先,让我们思考一下,为什么线程之间需要通信?简单来说,线程通信就是为了解决多线程环境下,不同线程之间需要协作完成某个任务的问题。

2023-12-19 21:13:15 33

原创 Map、List、Set 分别说下线程安全类和线程不安全的类

2. 线程不安全的类:HashMap HashMap 是 Java 提供的一个非线程安全的 HashMap 实现类。总结 本文介绍了 Map、List、Set 三个集合类型的线程安全类和线程不安全的类,并给出了示例代码。Map、List、Set 是 Java 中非常常用的集合类,它们在多线程环境下有各自的线程安全类和线程不安全的类。本文将分别介绍这三个集合类型的线程安全类和线程不安全的类,并举例说明。

2023-12-18 21:44:47 159

原创 数据量很大的情况下,分页查询的优化方案

嗨,大家好,欢迎来到公众号,我是漠然。在数据量很大的情况下,分页查询往往会导致查询速度变慢,影响用户体验。作为一Java工程师,我认为可以从以下几个方面来优化分页查询。

2023-12-17 21:26:56 368

原创 Delete、Truncate、Drop的区别有哪些,该如何选择

Delete、Truncate、Drop的区别有哪些,该如何选择?​嗨,大家好,欢迎来到公众号,我是漠然。我们经常需要处理数据库的操作,其中delete、truncate、drop是三种常用的数据删除方式。虽然它们都可以用来删除数据,但是它们之间存在一些重要的区别。在这篇文章中,我将详细解释这三种方式的区别,并提供一些选择建议。

2023-12-16 21:33:16 48

原创 你知道为什么要加 final 关键字了吗?

​ ​嗨,大家好,欢迎来到公众号,我是漠然。在Java编程中,我们经常会遇到需要使用final关键字的情况。那么,为什么要使用final关键字呢?它到底有什么作用?本文将从以下几个方面来详细解析final关键字的作用以及它在Java8和Java7中的区别当我们使用final关键字修饰一个变量时,这个变量的值在初始化后就不能再被改变。这对于那些需要保持不变的对象特别有用,例如常量。在多线程环境下,不可变对象可以避免因线程安全问题导致的错误。

2023-12-15 22:13:35 73

原创 深入解析MySQL中内连接、外连接的区别及实践应用

在数据库查询中,连接是一种常用的操作,用于从两个或多个表中获取数据。本文将详细介绍MySQL中的内连接、外连接的概念、区别以及实践应用,帮助大家更好地理解这一技术。

2023-12-14 21:13:45 145

原创 Object类详解

解答:hashCode()方法和equals()方法都是用来描述对象状态的方法,但它们的目的和实现方式不同。解答:toString()方法和equals()方法都是用来描述对象状态的方法,但它们的目的和实现方式不同。toString()方法返回一个字符串,该字符串是对象状态的文本表示,主要用于打印对象信息。默认的实现方式是,如果两个对象的类相同,且所有属性都相等,那么它们就相等。这个方法返回对象的类对象。

2023-12-12 22:33:00 28

原创 深入解析Java中的String:特点、重要方法及源码分析

Java的String类是Java语言中最常用的类之一。作为一位Java高级工程师,了解String类的特性和方法对于编写高效和优化的Java代码至关重要。在这篇技术博客中,我们将深入探讨String类的特点,介绍其中一些重要的方法,并分析其源码以获得更深入的理解。

2023-12-11 22:25:36 45

原创 1 亿个数据取出最大前 100 个有什么方法?

在计算机科学和数据处理领域,我们经常会遇到需要从海量的数据中找出最大或最小的若干个元素的情况。最直观的方法是先将这 1 亿个数据排序,然后取排序后的前 100 个。以上就是从 1 亿个数据中取出最大前 100 个的几种方法,各有优缺点,可以根据实际情况选择合适的方法。大家好,这是一道经常在面试中被遇到的一个问题,我之前面试也是被问到过得,现在一起学习下,下次再被问到就可以轻松地用对。

2023-12-10 10:01:36 139

原创 深入理解Java中的volatile关键字

volatile是Java中的一个关键字,它用于声明一个变量在多线程环境中的可见性和禁止指令重排。可见性:当一个线程修改了一个volatile变量的值,其他线程能够立即看到修改后的值。禁止指令重排:编译器和处理器不会对volatile变量的操作进行重排序。

2023-12-07 21:33:18 36

原创 ReadWriteLock 和 StampedLock 的比较与解析

ReadWriteLock和StampedLock都是Java中常用的读写锁实现。ReadWriteLock适用于读多写少的场景,可以提高系统的并发性能;而StampedLock适用于各种场景,性能优于ReentrantLock,但略逊于ReadWriteLock。在实际应用中,我们可以根据业务场景选择适合的锁实现。

2023-12-06 21:19:31 47

原创 int(1)和int(10)之间的区别

在Java编程语言中,int(1)和int(10)之间的区别主要在于它们的初始化值和类型。

2023-12-05 20:59:00 342

原创 Condition原码分析及实现原理

Condition是Java并发编程中一个重要的接口,它用于在多线程环境下实现条件等待和通知。Condition接口继承自java.util.concurrent.locks.Condition,可以与ReentrantLock配合使用,实现线程间的同步和通信。

2023-11-29 19:59:58 54

原创 线程池在Java中的应用实践

在实际业务场景中,线程池发挥着重要作用。本文将详细解答在高并发、任务执行时间短、并发不高、任务执行时间长以及并发高、业务执行时间长的业务场景下,如何使用线程池进行优化。

2023-11-28 18:34:51 58

原创 Hutool是一个小而全的Java工具类库

以上仅为Hutool部分功能的示例,实际使用中,您可以根据需求选择相应的工具类进行操作。更多关于Hutool的详细用法和示例,请参考官方文档:https://jb51.net/softs/549331.html。Hutool是一个小而全的Java工具类库,它包含了众多实用的静态方法,可以提高Java开发效率。欢迎大家关注,一起探讨,学习!

2023-11-27 15:58:47 224

原创 Java中wait()方法在synchronized方法中调用的奥秘

作为一名Java程序员,我们深知synchronized关键字和wait()方法在多线程编程中的重要性。在本文中,我们将探讨为什么wait()方法需要在synchronized方法中调用,以及它们是如何协同工作的。首先,让我们了解一下synchronized关键字和wait()方法的基本概念。synchronized关键字用于实现临界区(代码块)的同步,确保同一时刻只有一个线程可以访问共享资源。当一个线程进入synchronized方法或代码块时,它会获得锁,其他线程需要等待直到锁被释放。

2023-11-26 16:06:49 291

原创 JVM内存模型及调优

本文将为大家详细介绍JVM内存模型及如何对JVM内存进行调优。

2023-11-24 09:24:25 46

原创 Java深拷贝与浅拷贝技术解析及实例演示

深拷贝进行了彻底的复制,无论是基本数据类型还是引用数据类型,都不会受到原对象的影响;而浅拷贝则只是对基本数据类型进行值传递,对引用数据类型进行引用传递,导致对象间的关系仍然存在,容易受到原对象的影响。在实际开发中,我们需要根据不同的场景选择合适的拷贝方式,以满足程序的设计需求。摘要:本文将详细介绍Java中的深拷贝和浅拷贝概念,通过分析源码和举例说明,帮助读者更好地理解这两种拷贝方式的区别及应用场景。对引用数据类型进行拷贝时,只是进行了引用传递,没有真实创建新的对象。来源:Java技术栈公众号。

2023-11-22 22:38:00 125

原创 Multimap用法详解

Multimap

2023-08-10 16:18:04 990

原创 no sheet found with r:id rid1

查找资料,是因为没有找到sheet页,因为文件是刚导出,没打开过rid 找不到。-1是读取所有的sheet. 这个解决方案不满足我的需要。这种情况适用于只有一个sheet 页,是可以读取到,Java 导入使用得是。

2023-05-31 15:37:05 222

原创 在高并发情况下,如何做到安全的修改同一行数据

要安全的修改同一行数据,就要保证一个线程在修改时其它线程无法更新这行记录。一般有悲观锁和乐观锁两种方案~

2023-05-12 14:27:13 1278

原创 聚集索引与非聚集索引的区别

需要注意的是,InnoDB里面只能存在一个聚集索引,原因很简单,如果存在多个聚集索引,那么意味着这个表里面的数据存在多个副本,造成磁盘空间的浪费,以及数据维护的困难。由于在 InnoDB 引擎里面,一张表的数据对应的物理文件本身就是按照 B+树来组织的一种索引结构,而聚集索引就是按照每张表的主键来构建一颗 B+树,然后叶子节点里面存储了这个表的每一行数据记录。所以基于 InnoDB 这样的特性,简单来说,聚集索引就是基于主键创建的索引,除了主键索引以外的其他索引,称为非聚集索引,也叫做二级索引。

2023-05-09 14:16:54 110

原创 数据库索引的原理,为什么要用 B+树,为什么不用二 叉树?

总体来说,我认为技术方案的选型,更多的要根据具体的业务场景来决定,并不一定是说B+树就是最好的选择,就像MongoDB里面采用B树结构,本质上来说,其实是关系型数据库和非关系型数据库的差异。

2023-05-08 11:42:17 984 1

原创 InnoDB 与MyISAM 的区别

MyISAM和InnoDB都是Mysql里面的两个存储引擎。在Mysql里面,存储引擎是可以自己扩展的,它的本质其实是定义数据存储的方式以及数据读取的实现逻辑。不同存储引擎本身的特性,使得我们可以针对性的选择合适的引擎来实现不同的业务场景。从而获得更好的性能。在Mysql 5.5之前,默认的存储引擎是MyISAM,从5.5以后,InnoDB就作为了默认的存储引擎。在实际应用开发中,我们基本上都是采用InnoDB引擎。

2023-05-06 17:18:45 709

原创 如何进行MySQL的性能优化?

MySQL的性能优化主要在于对SQL执行的优化,因为慢的SQL执行会带来不好的用户体验,所以我们要关注SQL的执行时间,比如有些没有创建索引的列我们要创建索引.不合理的联表查询我们要简化或者规避.比如,在我以前的一个项目中,我的SQL没有索引执行,所以平均执行都需要很多的时间.后面我加上了索引就好多了.

2023-05-06 10:52:07 253

原创 MySQL遇到过死锁问题吗,你是如何解决的?

MySQL遇到过死锁问题吗,你是如何解决的?

2023-05-05 17:35:31 700

原创 MySQL 数据库操作小技巧有哪些?

MySQL是一种开源的关系型数据库管理系统,它可以在各种操作系统平台上运行。MySQL使用SQL语言进行数据管理,能够支持多用户、多线程、多表等高级特性,具有高效、稳定、易用等优点。MySQL广泛应用于Web应用程序的后端,如电子商务系统、论坛系统和博客平台等。同时,MySQL也被许多大型企业用作其关键业务系统的后台数据库管理系统。

2023-04-27 14:58:36 399

原创 java8对list进行统计合并

Collectors.groupingBy根据一个或多个属性对集合中的项目进行分组

2022-09-27 14:54:03 1438

原创 Linux 下修改mysql默认安装目录

mysql安装完成后,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常的重要数据库目 /var/lib/mysql/配置文件 /usr/share/mysql(mysql.server命令及配置文件)mysql5.5之后的默认安装路径,mysql5.5之前的是/usr/local/mysql进入正题 ,通常我们的mysql安装都是默认路径 /var/lib/mysql/。 而我们的Java的应用在home 文件夹下,查看系统的磁盘情况df -h1[ro.

2022-04-23 19:53:18 5736

java反编译工具exe

对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。 对于没有源码,只有class文件进行编译,能够看到源码。

2018-09-18

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除