自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 使用Java程序批量重建ES索引

由于项目目前的数据量较小,每次往索引中新增字段都是采用重建索引的方式来进行,单个索引重建手动处理还比较简单,多个索引重建操作起来就比较繁琐了,为此特意编写个程序脚本用于解决此问题。

2023-04-27 20:27:41 174

原创 Java将手写科学计数法转化为Double类型数据

在开发大屏系统时遇到个问题,客户提供的数据中存在 1.02×10³ 样式的数据,此数据Java无法直接解析成 Double类型数据进行运算操作,需要编写程序进行处理,为此特意编写出此工具类方法用于解决这个问题。核心思路为通过对字符串进行切割处理得到相应的底数和指数,最终得到幂值。

2023-04-26 21:10:32 549

原创 解决Jpa中实体数据自动变更问题

最近发现个问题,使用jpa对实体进行操作时,即使未调用保存或更新方法,对于实体的相关设值也会自动更新到数据库中。

2023-02-20 21:51:44 2129

原创 解决Fastjson的下划线与大小写映射问题

主要解决infoId、infoid、info_id的取值映射问题

2022-12-03 12:05:21 1648

原创 多字段、多关键字模糊查询实现

需求说明:1. 搜索框只有一个文本输入框2. 支持多字段的关键字模糊查询,如输入一个字符,同时搜索商品名称和商品编码中是否存在该字符3. 搜索框内支持逗号分隔输入,逗号不区分全角和半角(一般中文逗号为全角,英文逗号为半角)4. 搜索框内容为全逗号或为空,不将该内容作为过滤条件进行查询...

2022-06-20 12:57:03 3679 2

原创 python读取指定目录下所有txt文件,并生成xls表目录

import osimport xlwtimport re'''1.读取指定目录下的所有文件,获取TXT文件,根据文件大小进行倒序排序,生成xls表'''def createNovelDirectory(): path = r'D:\文件夹' fileMap = {} for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: # 判

2022-04-16 23:07:57 1749

原创 使用Android Killer反编译apk成功,回编译打包失败问题记录

问题:直接使用Android Killer对apk进行反编译,反编译成功,未做任何修改,直接点击“编译”,编译报错,提示相关代码未找到,无法进行下一步apk签名操作。排查:检查apktool版本,版本已是当前最新版本检查JDK版本,版本为JDK8,没有问题检查apk是否加壳,使用Android Killer和网上其他方式进行查询,未发现apk有加壳最后发现是电脑用户账户名问题,账户名是中文,导致相关文件路径中存在中文,编译打包失败总结: 本次使用Android Killer反编译apk成

2022-02-27 15:49:57 5466

原创 使用Python解析地址获取其所属省份

原理:主要是通过调用百度地图的开放接口,先通过输入具体地址调用获取地理编码接口(http://api.map.baidu.com/geocoding/v3/?ak=你申请的ak&output=json&address=地址)获取该地址的地理编码,得到经纬度,再通过逆地理编码服务接口(https://api.map.baidu.com/reverse_geocoding/v3/?ak=你申请的ak&output=json&location=经纬度数据) 将位置坐标解析成对应的行

2022-01-02 01:50:59 2434

原创 设计模式:模板方法模式

—《Head First设计模式(中文版)》模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。(个人理解:其实就是将已经确定要执行的相关步骤提前写好在方法中,可不具体实现,但是提前准备好位置,方便后续扩展完善)举例:​ 购物可以简单分为三个步骤:1.挑选好自己需要的商品;2.放入购物车;3.结账离开,但是去不同的市场挑选的商品种类是不同的,此时就可以先定义好去市场购物的相关操作,选择商品这个操作等到具体到哪.

2021-11-01 22:41:35 66

原创 设计模式:外观模式

—《Head First设计模式(中文版)》外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。(个人看法:其实就是将一堆细小的操作通过一个大的方法包装起来,方便其他人进行调用)举例:吃饭可以简单分为洗手、拿碗、盛饭、夹菜、吃、洗碗六个步骤,每个步骤可以单独封装成一个方法,但为了方便调用,我们还可以将吃饭封装成一个方法,里面包含这六个步骤小方法即完成了吃饭的操作。package cn.shentianlan.studytest.designmode.

2021-11-01 22:40:40 54

原创 设计模式:适配器模式

—《Head First设计模式(中文版)》适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。对象适配器:Client(客户)只能看到目标接口,由Adapter(适配器)实现目标接口,Adapter(适配器)与Adaptee(被适配者)组合,所有的请求都委托给被适配者。类适配器:类适配器不是使用组合来适配被适配者,而是继承被适配者和目标类(Java中普通类无法实现多继承的)类适配器和对象适配器唯一的差别就是类适配器同时继承了Target和Ad.

2021-11-01 22:39:34 61

原创 设计模式:命令模式

—《Head First设计模式(中文版)》命令模式将"请求"封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 结构如下所示Client (客户)负责创建ConcreteCommand(具体命令)Invoker(调用者)持有一个命令对象,并在某个时间点调用命令对象的execute()方法,将请求具体实现Command为所有命令声明一个接口,调用命令对象的的execute()方法,就可以让Receiver(接收者)进行相关的动作。这个接口也具备一个u.

2021-10-31 00:29:00 60

原创 设计模式:单例模式

–《菜鸟教程:单例模式》单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建普通单例模式package cn.shentianlan.studytest.designmode.singleton;/** * @author 渊蓝 * @version 1.0 * @description 普通单例模式,.

2021-10-24 22:45:32 91

原创 设计模式:工厂模式

–《维基百科》工厂方法模式(英語:Factory method pattern)是一种实现了"工厂"概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是"定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。"[1]创建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中。创建对象可能会导致大量的重复代码,可能会需要复合对象访问不到的信息,也可能提供不了足够级别的抽象,还可能并不.

2021-10-24 13:35:09 85

原创 设计模式:装饰者模式

1 简介–《百度百科 装饰模式》3种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。2 具体操作及实现举例:蛋糕的制作抽象构件角色:Dessert 甜点package cn.shentianlan.studytest.designmode.decorator.example;/** * @author 渊蓝 * @version

2021-10-18 22:39:15 89

原创 设计模式:观察者模式

1.简介–《百度百科 观察者模式》观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者模式中,主体是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。观察者模式不仅被广泛应用于软件界面元素之间的交互,在业务对象之间的交互、权限管理等方面也有广泛的应用。 [1]观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业

2021-10-12 23:45:20 106

原创 设计模式:策略模式

简介策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。​ --《Head First设计模式(中文版)》策略模式是指有一定行动内容的相对稳定的策略名称。策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式:定义了一组算法(业务规则);

2021-10-11 21:03:19 67

原创 对于阿里巴巴《Java开发手册》中switch 括号内的变量类型为 String 并且此变量为外部参数时,必须先进行 null判断的理解

【强制】当 switch 括号内的变量类型为 String 并且此变量为外部参数时,必须先进行 null 判断。反例:如下的代码输出是什么?package cn.shentianlan.studytest.common;public class SwitchString { public static void main(String[] args) { method(null); } public static void method(String param) .

2021-08-14 02:59:29 562

原创 对于Arrays.asList()的理解

【强制】使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关的方法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。说明:asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。Arrays.asList 体现的是适配器模式,只是转换接口,后台的数据仍是数组。String[] str = new String[] { “yang”, “hao” };List list...

2021-08-10 22:32:46 266

原创 对于Collectors.toMap(Pair::getKey, Pair::getValue, (v1, v2) -> v2)的理解

package cn.shentianlan.studytest.common;import javafx.util.Pair;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.function.BinaryOperator;import java.util.function.Function;import java

2021-08-10 21:49:10 1108

原创 注解和反射

一、注解的基本介绍二、内置注解三、元注解四、自定义注解五、反射5.1 静态语言和动态语言5.2 Java Reflection5.3 Class类5.4 Java 内存分析5.5 类的加载过程5.6 类的加载与ClassLoader的理解5.7 什么时候会发生类的初始化5.8 类加载器的作用5.9 获取类的完整结构5.10 动态创建对象执行方法5.11 通过反射操作泛型5.12 通过反射获取注解信息一、注解的基本介绍Annotation 是从JDK 5.0开始引入的新技术Annotation的作用.

2021-08-07 09:54:16 95

原创 JUC编程

一、基础知识介绍二、线程状态三、Lock锁3.1 Lock锁相关介绍3.2 Synchronized和Lock的区别3.3 生产者和消费者问题3.4 Lock版的生产者和消费者问题(Condition)四、线程八锁五、集合类不安全5.1 List集合5.2 Set集合5.3 Map集合六、Callable集合七、常用的辅助类7.1 CountDownLatch7.2 CyclicBarrier7.3 Semaphor八、读写锁(ReadWriteLock)九、阻塞队列十、同步队列(SynchronousQ.

2021-08-01 05:18:57 356

原创 Java多线程基础

文章目录一、基础概念介绍二、线程的创建2.1 继承Thread类2.2 实现Runnable接口2.3 实现Callable接口2.4 总结三、线程状态四、线程方法五、停止线程六、线程休眠七、线程礼让八、Join九、线程状态十、线程优先级十一、守护线程十二、线程同步机制十三、同步方法十四、同步块十五、死锁十六、Lock(锁)十七、synchronized与Lock的对比十八、线程通信十九、线程池简介使用线程池一、基础概念介绍程序:程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念

2021-06-30 00:47:11 178

原创 Lamba表达式

Lamba表达式(JDK1.8之后才有的)任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口public interface Runnable{ public abstract void run();}对于函数式接口,可以通过Lamda表达式来创建该接口的对象Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法,jdk 8 中有另一个新特性:default, 被 default 修饰的方法会有默认实现,不是必须被实现的方法,所以不影响

2021-06-22 01:09:20 115

原创 Python基础知识

一、常用的转义字符 转义字符的分类 要表示的字符 转义字符 备注 无法表示的字符 换行 \n newline光标移动到下一行的开头 回车 \r return 光标移动到本行的开头 水平制表符 \t tab键,光标移动到下一组4个空格的开始处 退格 \b 键盘上的

2021-05-25 10:33:41 371

原创 计算机相关知识记载

一、冯·诺依曼结构(非约翰·冯·诺伊曼个人发明指出)​ 冯·诺伊曼结构这个词出自约翰·冯·诺伊曼的论文:First Draft of a Report on the EDVAC , 于1945年6月30日。冯·诺依曼由于在曼哈顿工程中需要大量的运算,从而使用了当时最先进的两台计算机Mark I和ENIAC,在使用Mark I和ENIAC的过程中,他意识到了存储程序的重要性,从而提出了存储程序逻辑架构。虽然冯·诺伊曼的概念非常新颖,但冯·诺伊曼结构这个词,对冯·诺伊曼的合作伙伴、时人甚至先辈都不公平。(

2021-05-11 12:18:48 167

原创 Win8系统使用Sublime Text3汉化时出现的一些问题及解决方案

问题一:点击Install Package报错如下:解决方案:查看控制台,按照控制台的提示,前往https://packagecontrol.io/installation ,可以看到中文翻译后下载Package Control.sublime-package文件,将其放到Installed Packages/目录下,Installed Packages/可通过以下方式快速到达问题二:解决问题一之后重新点击Install Package出现以下问题解决方案:查看控制台可知是解析

2021-02-03 23:51:14 241

原创 并发编程学习笔记

并发编程学习笔记前言​ 此为我在B站看传智播客的并发编程视频教程的学习笔记,个人目前感觉还不错,点此可前往观看1.进程和线程1.1 进程和线程进程​ 进程是用来加载指令、管理内存、管理IO的,在Java中,进程是资源分配的最小单位;在windows中,进程是作为线程的容器存在的,一个进程包含多个线程。线程​ 线程可以看成一个指令流,将指令流中的一条条指令以一定的顺序交给CPU执行,在Java中,线程是最小调度单位二者对比进程基本上相互独立的,线程存在于进程之内,是进

2021-01-31 15:01:09 221 1

原创 IDEA常用快捷键

记录IDEA需要常用的快捷键(后期会不断更新)idea快速查看接口的方法的实现类ctrl + alt +B

2020-12-05 22:08:01 48

原创 MySQL的事务

MySQL的事务​ 事务的四种隔离级别(ACID)原子性事务执行要么都成功,要么都失败一致性事务执行前后的数据完整性要保持一致,例如甲转账给乙100元,甲减少100元,乙就要增加100元持久性事务执行结束后得到的数据会保存到数据库中,不可回滚(事务一旦提交则不可逆,被持久化到数据库中)隔离性多个事务并发执行时,相互之间会隔离开,相互之间不受干扰(多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离)

2020-12-02 11:05:54 55

空空如也

空空如也

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

TA关注的人

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