- 博客(109)
- 资源 (1)
- 收藏
- 关注
原创 MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同
MySQL tinyint(1) 、int(32) 与 varchar(255) 长度含义不同
2023-02-24 17:44:53 1251
原创 JAVA1.8阅读String类源码心得体会
JAVA1.8阅读String类源码心得体会前几天在二面某大厂的时候被问到String类的问题,没有回答上来。所以回来恶补了一下String类的源码。确实阅读源码感受到了设计者代码的优雅和巧妙,在此记录一下自己印象比较深刻的心得体会。equals()用来判断两个字符串是否相等,这里使用了很巧妙的判断逻辑,来尽量节省时间。首先判断待比较的对象是不是自己本身,然后判断和待比较对象是不是同一个类...
2019-09-05 16:37:08 203
原创 响应式编程上下文
方案1:使用ThreadLocal,但是这会有个缺点,在我们自定义线程池的时候,在调度的时候几个订阅关系可能会共用一个线程池,故不同订阅关系之间可能会由于ThreadLocal而产生数据泄露。这种情况会带来一个问题,若存在这么一种情况:我们需要在线程的上下文中存储一些对象数据,方便我们在整个执行的过程中使用他们,在生命周期结束的时候将存储的数据进行销毁。所以我们该如何存储呢?Mono.deferContextual(c-> c.get(key)):获得Context中指定Key对应的Value值。
2024-02-21 17:05:47 937
原创 基于 debian 发行版本的密码设置策略
需要安装 pam 扩展包 libpam-pwquality 或 libpam-cracklib。安装成功后 /etc/pam.d/common-password 文件会新增一行配置策略。自动登出策略已经设置了 5m ,来自配置文件 /etc/ssh/sshd_config。修改 /etc/pam.d/common-password 的配置策略。以三级等保的要求为例,要求如下(如值为 -1 代表不限制)修改 /etc/login.defs 中的选项。我们将该值改为 90。
2023-05-17 21:07:14 3924
原创 Java 读取本地txt文件
普通方式和行为参数化方式public class ProcessFileDemo { public static void main(String[] args) throws IOException { String line = processFile(); System.out.println("readline "+line); String lambdaLine = processFileLambda((BufferedReader br
2022-03-17 17:04:51 2539
原创 ES 创建索引Template
{ "mappings": { "properties": { "complexLabelId": { "type": "integer" }, "createTime": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss" },
2022-03-03 17:33:31 1106
原创 【Docker】镜像地址改为国内
选择 docker-engine输入这段:“registry-mirrors”:[ “https://registry.docker-cn.com” ]{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "features": { "buildkit": true }, "experimental": false, "registry
2022-03-03 11:32:40 388
原创 单例 vs 依赖注入
先说结论看了几篇文章,我个人对依赖注入的理解是,依赖注入更擅长解决一个 ”引用传递“ 的问题;对单例的理解是,如果某类被许多类引用,且是一个比较稳定的变量不需要逐层传递,则使用单例更好;单例模式单例是一种设计模式,它表示在整个应用程序的声明周期中,某个类只有一个实例。单例模式的典型实现如下:public class BankGateway { public static BankGateway Instance = new BankGateway(); private Bank
2022-02-08 16:41:58 1548
原创 git找回服务端分支
本地分支和服务端分支都被删除了,在此情况下根据提交信息恢复服务端分支根据 commit id 创建本地分支可以根据 git log 命令或其他方式找回 commit id然后 通过 git branch {branch-name} {commit-id} 命令 根据commit id 创建本地代码分支如:git branch recover_video_bucket 9e7fae6f257e3edbc7e504be33a81d3bd0fas此时本地会成功创建一个代码分支名为 recover
2021-10-22 11:19:42 208
转载 取得inputStream的长度
网络文件URL url = new URL(strUrl);HttpURLConnection httpconn = (HttpURLConnection)url.openConnection(); httpconn.getContentLength();本地文件InputStream inputStream = urlCon.getInputStream();inputStream.available();
2021-03-10 21:29:59 5910
原创 k8s命令行操作
1)控制台输出较少日志kubectl logs b612-engine-789dd998bf-wvvvm -c b612-engine | less -R2)输入/ 向下搜索,输入?向上搜索3)B 向前backN 向后nextshift + F 向后翻页shift + B 向前翻页
2021-03-04 14:16:05 676 1
原创 git切换远程分支为develop
git切换远程分支为developgit push --set-upstream origin 分支名git push --set-upstream origin develop
2021-02-05 15:52:32 1238
原创 JAVA Bean转换为MAP,兼容@JsonProperty
public static <T> Map<String, Object> bean2Map(Object object) { Map<String,Object> maps = new HashMap<>(); try{ Field[] fields = object.getClass().getDeclaredFields(); if (fields!=null &&a
2021-01-16 11:49:06 680 7
原创 git本地未提交代码找回
1.git stash list查看暂存列表,最近的一次暂存是stash@{0}。(查看暂存修改内容git show stash@{0})2.git stash apply stash@{0} 取出暂存号为stash@{0}的代码。即git stash apply xxxx(暂存号)参考:https://www.cnblogs.com/liuyongfa/p/13995329.htmlhttps://www.cnblogs.com/xzdm/p/11064514.html...
2021-01-07 11:44:02 3419
原创 stream操作符demo
public class TransMain { public static void main(String[] args) { Set<String> set = Set.of("lilei","hanmeimei","michael","kangkang","jane","liulei"); Stream<String> stream = set.stream(); stream.filter(s -> s.l
2020-11-27 18:12:48 131
原创 函数式编程与接口的对比
函数式编程与接口实现的对比lambda表达式表达的是接口函数,箭头左侧是函数参数,箭头右侧是函数体。函数的参数类型和返回值类型都可以省略,程序会根据接口定义的上下文自动确定数据类型。package design.mode.reactivex.function;public class SimpleFuncMain { interface Body{ String lowwer(String low); } interface Printer{
2020-11-27 15:12:31 223
原创 设计模式之命令模式 Command
模式之命令模式1)先创建一个command接口,里面只有一个execute() 方法等待实现public interface Command { void execute();}2)创建一个灯类作为demopackage design.mode.command;public class Light { public void on(){ System.out.println("light on now"); } public void off
2020-11-26 10:38:11 147
原创 基于Flow.Publisher/Flow.Subscriber的观察者模式
基于Flow.Publisher/Flow.Subscriber的观察者模式基于Flow.Publisher/Flow.Subscriber的观察者模式发布者Sender实现Flow.Publisher接收者Receiver实现Flow.SubscriberMain函数验证结果基于Flow.Publisher/Flow.Subscriber的观察者模式此Demo代码由三部分组成,分别是发布者、观察者、执行函数发布者Sender实现Flow.Publisherpackage design.mode.o
2020-11-25 15:45:39 591
原创 JAVA设计模式-观察者模式(PropertyChangeEven、PropertyChangeListener实现)
因为Observable类在jdk1.9后已被标记为启用状态,推荐使用PropertyEvent等方式替代。所以以下代码是PropertyChangeEven、PropertyChangeListener 实现的观察者模式。1,创建一个很简单的主类public class PropertyMain { public static void main(String[] args) { PropertyProvider propertyPublishService = new Pr
2020-10-26 14:00:18 592 1
原创 JAVA设计模式-观察者模式(Observer、Observable实现)
1,首先设置一个主题类(即被观察者),继承自Observable类,代码如下@Slf4jpublic class SubjectDemo extends Observable { String message ; public void setMessage(String s){ this.message = s; log.info("set message {}",this.message); setChanged();
2020-10-26 11:02:50 199
原创 Mysql根据生日birthday计算年龄age
核心函数TIMESTAMPDIFFTIMESTAMPDIFF( YEAR, rel.birthday, CURDATE()) AS age完整sql如下SELECT mem.user_id, rel.`name`, rel.actual_name, rel.birthday, TIMESTAMPDIFF( YEAR, rel.birthday, CURDATE()) AS age FROM t_membership mem LEFT JOIN t_related_
2020-10-13 19:29:50 1555
原创 JAVA << 和 >>位运算
log.info("op accept is {} ",opAccept); log.info("op 1<<3 is {} ",1<<3); log.info("op 1<<2 is {} ",1<<2); log.info("op 1<<1 is {} ",1<<1); log.info("op 1<<0 is {} ",1<<0); ..
2020-10-12 17:12:25 107
原创 JAVA IO中的ByteBuffer, FileChannel
package com.yaeher.community.test.nio;import lombok.extern.slf4j.Slf4j;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java
2020-10-12 15:19:32 180
原创 java stream 流式写法过滤条件
public class Java8Test { public static void main(String[] args) { Person p1 = new Person("麻子", 31); Person p2 = new Person("李四", 20); Person p3 = new Person("王五", 26); List<Person> personList = new ArrayList
2020-07-28 14:27:05 2008
原创 Error occurred during initialization of boot layer,java.lang.module.FindException: Module java.instr
**Error occurred during initialization of boot layer java.lang.module.FindException: Module java.instrument not found**启动项目时遇到了这个问题,Application不能启动,但是gradle 没有问题,怀疑是启动参数配置错了,尝试调整了一下,果然解决了。解决方案如下:打开Edit->Application界面,选择JRE,选择Default...
2020-07-20 19:21:10 5373 1
原创 多态成员访问的特点
Parent p = new Child();多态成员访问的特点成员变量编译看左边(基类),运行看左边(基类);无论如何都是访问基类的成员变量。成员方法编译看左边(基类),运行看右边(派生类),动态绑定。Static方法编译看左边(基类),运行看左边(基类)。只有非静态的成员方法,编译看左边,运行看右边。这样,我们也可以得出多态的局限:不能使用派生类特有的成员属性和派生类特有的成员方法。代码举例:创建父类Animal类public class Animal { int
2020-07-16 17:03:26 821
原创 MySql字段添加随机时间
update t_question set create_time=date_add(create_time, interval (SELECT FLOOR(RAND()*100+7)) minute ) where id<380;示例为添加随机分钟 minute;date_add() 增加date_sub()减少month 月份minute 分钟second 秒
2020-05-21 10:11:01 961
转载 MySQL重置自增ID的值
alter table users AUTO_INCREMENT=10000;转自:https://www.jb51.net/article/42883.htm
2020-03-02 18:27:12 1347
原创 getSystemProperty("line.separator")的作用
最近项目中在用阿里巴巴的canal,看到代码里有一句是这样写的。public static final String LINE_SEPARATOR = getSystemProperty("line.separator");打印出来的效果就是,换行符。那么为什么要这样写呢?原因是想要使用系统的换行符号,避免操作系统不同带来的不同后果。...
2020-03-02 15:39:16 421
原创 操作无法完成,因为文件已在另一个程序中打开
1)打开任务管理器选择性能,选择打开资源监视器2)打开资源监视器搜索关联的句柄,将搜索结果结束任务,即可。
2020-02-26 17:47:42 3167
原创 自动创建ES的index
PUT /_cluster/settings{ "persistent" : { "action": { "auto_create_index": "true" } }}
2020-02-26 16:47:50 4943 1
原创 ElasticSearch设置自定义_id
在请求的URL上附加上想要设置的_id的值POST /yaeher-article/_doc/sergivandebunorwichpublishid{ "author":"Sergi·Van·Debunorwich", "authorFullName":"谢尔盖·范·德彪诺维奇", "authorOpenId":"wodeopenid", "category":"一级", "con...
2020-02-26 16:46:20 4195
原创 idea配置maven解决"Dependency 'xxxx‘ not found"
1)官网下载maven 地址:http://maven.apache.org/download.cgi2)在本地解压缩。配置环境变量。环境变量MAVEN_HOME配置path3) 设置maven 配置文件,设置alibaba仓库,避免依赖下载时报错。打开maven安装路径下的conf文件夹下面的,settings.xml文件。一,设置本地仓库地址localRepository...
2020-02-19 18:03:12 1487
原创 Mockito之@Mock和@InjectMocks的不同,搬运自Stack Overflow
这里举一个简单的例子来展示@Mock 和 @InjectMocks的不同有game 和 player 两个类class Game { private Player player; public Game(Player player) { this.player = player; } public String attack() { ...
2019-12-11 14:51:21 678
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人