自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mary~fighting的博客

初级Java程序员

  • 博客(133)
  • 收藏
  • 关注

原创 Mybatis学习笔记

mybatis

2023-05-03 01:15:46 775

原创 正则表达式

正则表达式

2022-10-02 12:34:01 270

原创 驼峰转下划线

驼峰、下划线

2022-09-27 23:58:09 861

原创 时间转换工具类

时间戳

2022-09-25 02:03:48 184

原创 23种设计模式——(4) 代理模式

代理模式

2022-08-27 00:06:03 108

原创 SNMP协议相关知识点

SNMP 协议

2022-08-26 01:05:54 131

原创 Spring的相关知识点

Spring

2022-08-24 00:27:41 200

原创 【Java】文件读取相关知识点

File

2022-08-21 11:30:33 280 1

原创 【Kafka】 Kafka 相关知识点以及踩坑记录

文章目录1、 kafka连接生产者报错Connection to XXX could not be established. Broker may not be available.2、Failed to send data to Kafka1、 kafka连接生产者报错Connection to XXX could not be established. Broker may not be available.参考链接:https://blog.csdn.net/pbrlovejava/article

2022-05-20 01:37:30 404

原创 23种设计模式——(4) 模版模式

1、定义模板设计模式—基于抽象类的,核心是封装算法模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供具体实现模板(模板方法)模式(Servlet、AQS)在一个方法中定义一个算法的骨架,并将一些具体步骤延迟到子类中实现。模板模式使得子类可以在不改变算法结构的基础上,重新具体定义算法中的某些步骤。好莱坞原则别调用(打电话给)我们,我们会调用(打电话给)你。2、具体实现2.1 咖啡因饮料是一个抽象类 CaffeineBeverage/** * 咖啡因饮料是一个抽象类 **/

2022-05-19 00:18:13 71

原创 Java 判空

1、常用实现 @Test public void test_empty() { // 1、 Map的判空:数据量大,效率高 Map<String, String> map = new HashMap<>(); // (1) 使用工具 Assert.assertTrue(MapUtils.isEmpty(map)); // (2) 普通方法 Assert.assertFals

2022-05-18 01:20:08 236

原创 使用Map+Function替换if-else

1、 static 初始化Map:Function<String, String>static class MapFunctionTest1 { /** * 业务逻辑分派Map * Function为函数式接口,下面代码中 Function<String, String> 的含义是接收一个Stirng类型的变量,返回一个String类型的结果 */ private static Map<St

2022-05-16 00:42:47 708

原创 23种设计模式——(3) 状态模式

概述状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。定义: 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。简单理解,一个拥有状态的context对象,在不同的状态下,其行为会发生改变。**意图:**允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。**主要解决:**对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。**何时使用:**代码中包含大量与对象状态有关的条件语句。

2022-05-15 15:35:27 90

原创 java读取文件工具类

参考链接:(1) JAVA怎么读取.csv文件以及只读取.csv文件的某行某列的值https://blog.csdn.net/qq_37591637/article/details/86487481Maven依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 --> <dependency> <group

2022-03-01 04:46:23 377

原创 【Redis】 Redis 相关知识点以及踩坑记录

1、 遍历 Redis 中的海量数据问题现象直接用了keys user_token*方式进行查询,导致redis不可用,假死。分析原因我们线上的登录用户有几百万,数据量比较多;keys算法是遍历算法,复杂度是O(n),也就是数据越多,时间复杂度越高。数据量达到几百万,keys这个指令就会导致 Redis 服务卡顿,因为 Redis 是单线程程序,顺序执行所有指令,其它指令必须等到当前的 keys 指令执行完了才可以继续。解决方案那我们如何去遍历大数据量呢?这个也是面试经常问的。我们可以采用re

2022-02-19 11:33:49 98

原创 Java网络相关知识点总结

返回码设计约定虽说是返回码设计,但是只有code是不行的,还要有对应的message,让人可以看懂通过这样的设计,不论是程序还是人都可以非常方便的区分API的返回结果,关键是统一!原文参考链接:https://ken.io/note/api-errorcode-or-resultcode-desgin...

2022-02-13 15:37:36 371

原创 Java基础知识总结

知识点1: 关于new ArrayList()和Collections.emptyList()结论:(1) Collections.emptyList()可以看出它并没有Collection集合的那些增加,修改删除方法。如果用它来创建的list来进行增加修改等操作会出现异常。相关链接:https://www.cnblogs.com/threadThread/p/15569243.html(2) Collections.EMPTY和Collections.empty()都是空列表,并且是共用同一个,

2022-01-18 23:21:52 255

原创 Bean 自动映射工具

总结其实对象属性转换的操作无非是基于反射、AOP、CGlib、ASM、Javassist 在编译时和运行期进行处理,再有好的思路就是在编译前生成出对应的get、set,就像手写出来的一样。所以我更推荐我喜欢的 MapStruct,这货用起来还是比较舒服的,一种是来自于功能上的拓展性,易用性和兼容性。MapStruct@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE, unmappedSou

2022-01-13 00:55:36 265

原创 领域模型中的实体类(VO、DTO、DO、PO)

主要结论是:在项目应用中,VO对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据。概念和模型概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,

2022-01-13 00:50:42 306

原创 【Flink】 Flink 相关知识点以及踩坑记录

1、 Flink任务调度原理之逻辑数据流与执行图参考链接:(1) Flink任务调度原理之逻辑数据流与执行图https://blog.csdn.net/qq_39657909/article/details/105957694

2021-12-24 00:26:27 1166

原创 单元测试学习汇总

原文链接:https://www.jianshu.com/p/e39bafff77141、 创建一个被测试类:FileUtilpackage UT_Test;import java.io.File;import java.io.FileNotFoundException;public class FileUtil { private static final String LOG_FILE = "root.log"; public boolean mkdirs(String

2021-12-16 01:50:35 219

原创 java反射获取private static final String成员变量_单元测试

今天一不小心写了个以“private static final String filePath=“XXX””为成员变量的util类,所以代码都写完了,就差个UT,实在不愿意重写,然后就开始摸鱼解决这个傻X代码的一天~~~1、 仿写工具类:Constantspublic class Constants { private static final String param2 = new String("参数2"); public static String get() {

2021-12-09 00:49:52 2536

原创 MAC搭建kafka客户端以及实现生产消费

一、 mac kafka安装简单使用原文链接:https://blog.csdn.net/weixin_42357472/article/details/1050444411.采用homebrew的方式终端执行命令:brew install kafka2.修改Kafka服务配置文件server.properties执行命令: vi /usr/local/etc/kafka/server.properties解除注释:listeners=PLAINTEXT://localhost:9092(如无

2021-12-06 01:01:15 1771

原创 踩坑记录_sort方法抛异常Comparison method violates its general contract

1、 问题现象jdk的版本:1.8.XXX测试环境出现该异常:java.lang.IllegalArgumentException: Comparison method violates its general contract!2、 出问题的代码仿照实际使用构造了测试用例:3、 问题原因分析原因Collections.sort()在JDK6和JDK7中实现的底层排序算法变了,在JDK6中使用的时MergeSort排序,而在JDK7中使用的是TimSort。TimSort比较器Compa

2021-12-04 15:11:57 231

原创 数据库相关知识点总结

1、 基本语句2、 常见优化方案2.1 业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。SQL不再使用count,而是改用LIMIT 1,让数据库查询时遇到一条就返回,不要再继续查找还有多少条了, 业务代码中直接判断是否非空即可。##### SQL写法:SELECT 1 FROM table WHERE a = 1 AND b = 2 LIMIT 1##### Java写法:Integer exist = xxDao.existXxxxByXxx(params);

2021-11-23 10:15:11 200

原创 封装多线程的工具类

1. 构建一个线程池管理的工具类:ThreadManagerpackage com.example.design.thread;import java.util.concurrent.*;import java.util.concurrent.atomic.AtomicInteger;/** * 线程池管理的工具类:ThreadManager */public class ThreadManager { //通过ThreadPoolExecutor的代理类来对线程池的管理

2021-11-21 23:11:22 456

原创 枚举类的使用

枚举

2021-11-21 22:10:10 87

原创 Stream API

1、 通过groupingBy进行分组通过嵌套使用groupingBy进行多级分类Map<Type, List<Dish>> result = menu.stream().collect(groupingBy(Dish::getType, groupingBy(dish -> { if (dish.getCalories() <= 400) return CaloricLevel.DIET; e

2021-11-21 17:11:20 167

原创 java加载properties配置文件_ResourceBundle

用ResourceBundle读取配置文件同样也需要放在resource文件夹下如果是在使用到配置文件的时候再去加载,可能会因为IO造成的时间损耗较大,所以可以使用ResourceBundle在类加载的时候提前读取配置文件中的内容并放到指定数据结构中(比如hashmap),一定程度上可以减少程序执行的时间1、封装一个Util类:PropertiesUtilspackage com.example.design.configUuil;import org.apache.commons.loggi

2021-11-14 16:35:55 791

原创 23种设计模式——(2) 策略模式

23种设计模式——(2) 策略模式1. 介绍策略模式(Strategy):他定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,他可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。简要描述:猫和狗都继承自Animal,都会叫:猫–喵喵;狗–汪汪;1、 接口PayStrategy:public interface PayStra

2021-10-25 01:55:03 69

原创 23种设计模式——(1) 单例模式

23中设计模式——单例模式单例模式保证了系统内存中该类只存在一个对象,节省了系统资源,对于一些频繁创建销毁的对象,使用单例模式可以提高系统性能;当想实例化一个单例类的时候,必须要记住使用相应的获取对象的方法,而不new;单例模式的使用场景:相应频繁创建和销毁的对象,创建对象时耗时过多或者耗费资源过多(重量级对象),但有经常用到的对象,工具类对象,频繁访问数据库和文件的对象(如:数据源,session工厂等).1. 懒汉式(双重检查)线程安全,延迟加载,效率较高public class L

2021-10-25 01:09:13 82

原创 学习笔记__Sharding-JDBC分库分表

原文链接:https://blog.csdn.net/unique_perfect/article/details/1161344901、 分库分表的原因随着公司业务快速发展,数据库中的数据量猛增,访问性能也变慢了,优化迫在眉睫。分析一下问题出现在哪儿呢? 关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。方案1:通过提升服务器硬件能力来提高数据处理能力,比

2021-07-12 00:54:56 287 1

原创 java实现寻找有向图的的闭环_Mary

java实现寻找有向图的的闭环(1) 需要从txt文件中获取源数据;(2) java实现寻找有向图的的闭环源代码package p17;import java.io.*;import java.util.ArrayList;import java.util.List;public class DsfCycle { /** * 限制node最大数 */ private static int MAX_NODE_COUNT = 100; /**

2021-07-06 01:12:59 349

原创 Nginx基础知识

相关链接:https://www.cnblogs.com/hellokuangshen/p/14334300.html什么是Nginx ?Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx作用?(1) 反向代理(2)负载均衡(3)动静分离相关配置:upstream lb{ server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 we

2021-06-21 00:46:06 32

原创 554. 砖墙

554. 砖墙你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。你现在要画一条 自顶向下 的、穿过 最少 砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。给你一个二维数组 wall ,该数组包含这堵墙的相关信息。其中,wall[i] 是一个代表从左至右每块砖的宽度的数组。你需要找出怎样画才能使这条线 穿过的砖块数量最少 ,并且返回 穿过的砖块数量

2021-05-04 13:50:20 67

原创 938. 二叉搜索树的范围和

938. 二叉搜索树的范围和给定二叉搜索树的根结点 root,返回值位于范围 [low, high] 之间的所有结点的值的和。输入:root = [10,5,15,3,7,null,18], low = 7, high = 15输出:32提示:树中节点数目在范围 [1, 2 * 104] 内1 <= Node.val <= 1051 <= low <= high <= 105所有 Node.val 互不相同/** * Definition for a bi

2021-05-04 12:38:08 49

原创 SpringBoot 学习笔记

SpringBoot 学习笔记一、参考链接狂神说SpringBoot二、关键名词1、 Spring 1.1 什么是Spring Spring是一个开源框架,是为了解决企业级应用开发的复杂性而创建的,简化开发。 1.2 Spring是如何简化Java开发的 为了降低Java开发的复杂性,Spring采用了以下4种关键策略: (1)、基于POJO的轻量级和最小侵入性编程,所有东西都是bean; (2)、通过IOC,依赖注入(DI)和面向接口实现松耦合; (3)、基于切面(AOP)和惯例进

2021-05-04 12:17:23 297 2

原创 flink的依赖

<dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.0&l...

2020-03-25 01:01:14 498

原创 Java每日练习之根据字符出现频率排序

此题来源于力扣——451. 根据字符出现频率排序;这道题之所以进行发表是因为学习到了map存储形式的集合进行排序,留做纪念~~~题目描述:给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2...

2019-09-14 22:01:57 405

原创 Java每日练习之求解方程

这个题是力扣上面的——640. 求解方程;题不难,写上来是因为很麻烦,调了很久,总要留做一个纪念~~~题目描述:求解一个给定的方程,将x以字符串"x=#value"的形式返回。该方程仅包含’+’,’ - '操作,变量 x 和其对应系数。如果方程没有解,请返回“No solution”。如果方程有无限解,则返回“Infinite solutions”。如果方程中只有一个解,要保证返回值 x...

2019-09-14 21:55:43 627

空空如也

空空如也

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

TA关注的人

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