- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 两张不同编码(utf8, utf8mb4)的MySQL表JOIN, 导致索引失效
两张不同编码(utf8, utf8mb4)的MySQL表JOIN, 导致索引失效
2022-07-09 11:13:17 1836 1
原创 java.text.SimpleDateFormat踩坑 (lenient=false)
java.text.SimpleDateFormat踩坑 (lenient=false)
2022-06-23 20:03:36 379
原创 腾讯云Linux服务器中毒, sshd恶意进程导致CPU占用100%
top 命令, 发现有sshd恶意程序运行, 导致CPU占用100%2.3 加强防火墙控制访问该linux的来源IP, 因为是开发用的机器, 只要配置公司和家里的外网出口IP即可.头痛, 做完 2.1, 2.2, 2.3 后, 恶意程序过一段时间后, 还是会重新下载到/var/tmp目录, 并运行.最终, 无意中, 发现有恶意的linux定时任务存在, 删除即可!......
2022-06-15 01:10:31 5380 2
原创 maven安装jar包到本地仓库的三种方式(install-file)
1.背景 mvn install:install-file 本地安装的jar包, 没有传递依赖! ![指定GAVP并自动生成最小化的pom.xml](https://img-blog.csdnimg.cn/3f52b305f39243d79c70aab278aa1fd8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Z2Z5rmW5a2k5a2Q,size_20,color_FFFFF
2022-04-18 11:32:49 5807 1
原创 Java反编译技术-CFR(class file reader)
1. 命令行使用- 下载wget https://www.benf.org/other/cfr/cfr-0.152.jar- 手册java -jar cfr-0.152.jarjava -jar cfr-0.152.jar --help- 反编译java -jar cfr-0.152.jar DemoController.classjava -jar cfr-0.152.jar DemoController.class --methodname demojava -jar cfr-0.
2022-04-10 20:00:46 1961
原创 一个有趣的小例子, 计算Java线程池爆掉的时刻点
1. 示例package demo.java;import java.io.IOException;import java.util.concurrent.*;public class ExecutorsTest { public static void main(String[] args) throws InterruptedException, IOException { // 消费者线程 (速率: [1个/30秒, 2个/30秒, 3个/30秒, 4个/30秒]
2022-04-09 16:08:07 1919
原创 Java字符编码(US_ASCII, ISO_8859_1(Lantin1), UTF-8, UTF-16, UTF-32)
1. 测试代码package demo.java.security;import cn.hutool.core.util.HexUtil;import cn.hutool.core.util.ReflectUtil;import java.math.BigInteger;import java.nio.charset.Charset;import java.nio.charset.StandardCharsets;public class UTF8Test { public st
2021-12-26 16:25:25 1274
原创 MyBatis加载表统计
1.引入MyBatis加载表统计2.原理1.Spring容器中, 依次获取 SqlSessionFactory, Configuration, MappedStatement2. 获取SQL (mappedStatement.getBoundSql(params).getSql())3. 解析SQL (druid sql parser)3.源码package com.clx.variablemanage;import com.alibaba.druid.sql.SQLUtils;impo
2021-11-22 13:58:48 579
原创 Spring容器启动耗时分析 (Bean启动耗时)
1. 引入Spring容器启动耗时过长, 主要原因是有些Bean做了复杂初始化的工作.找到这些Bean, 再做针对性的优化, 才能把Spring容器启动耗时降下来.如果开发对应用代码还不太熟悉, 本文提供了一种方式, 快速找出这些启动非常耗时的Bean.2. 源码LaunchTimeBeanPostProcessor.java (Bean启动时间抓取)import org.springframework.beans.BeansException;import org.springframe
2021-11-17 20:11:41 4051 4
原创 [MySQL] 字符长度 vs 字节长度
1. 数据CREATE TABLE `encode` ( `id` bigint NOT NULL, `latin1` varchar(30) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT 'Latin1, 别名 ISO-8859-1 (定长, 1字节)', `gbk` varchar(30) CHARACTER SET gbk COLLATE gbk_chinese_ci NULL DEFA
2021-11-15 14:02:02 830
原创 virtualbox安装多个centos8虚拟机, 注意事项
可以先安装一个虚拟机, 然后再复制调整 CPU, 内存, 显存(看具体资源情况, 防止过载)修改 “连接方式” 为 桥接网络, 刷新 “MAC地址”, 防止MAC地址重复(本机和虚拟机, 虚拟机和虚拟机, 都可直接通信)路由器, 指定MAC地址, 绑定到固定IP(虚拟机IP固定, 便于后期实验)修改 网络为自动连接(虚拟机启动后, 自动连接网络)控制面板 > Window防火墙 > 家庭网络/工作网络, 关闭防火墙(如果虚拟机ping不..
2021-07-16 19:11:15 293
原创 Canal初探 (mysql8)
1. binlog开启, 并设置为ROW格式修改my.cnf, 重点关注两个参数log_bin = ONbinlog_format = ROWselect version(); # mysql version (8.0)show master logs; # master binlogshow master status; # master 状态show global variables like
2021-06-18 20:21:50 635
原创 MySQL binlog格式及replication格式
1. 查看配置信息select version(); # mysql version (8.0)show master logs; # master binlogshow master status; # master 状态show global variables like '%log_bin%'; # binlog 是否开启show global variables like 'log_bin
2021-06-17 15:44:22 183
原创 Canal使用问题
Canal使用问题1. IOException: errno = 1236, sqlstate = HY000 errmsg = Could not find first log file name in binary log index file异常日志2021-06-15 11:40:40.548 [destination = example , address = /10.89.2.242:3306 , EventParser] ERROR c.a.o.canal.parse.inbound
2021-06-17 11:40:09 636
原创 Redis内存溢出
1. 问题日志: OOM command not allowed when used memory > ‘maxmemory’2. 定位1. 查看内存使用情况 info memory 详情参考: [Redis info 命令](https://redis.io/commands/info) # Memory used_memory:855305648 used_memory_human:815.68M // allocator已分配的内存 us
2021-06-01 11:36:42 599
原创 GraalVM HelloWorld 本地镜像构建(命令行, Maven插件)
1. 引言在云时代, java的跨平台特性, 已如同鸡肋.大Jar包应用, 启动慢, 占用内存多, 还需要另装jvm 是java应用的通病.这给了go等现代语言, 在 “开发效率”, “运行效率”, “应用生态”, 等各方面, 全面赶超的机会.java语言, java生态, 需要进一步快速的革新, 才能保证不在"云时代"落伍.GraalVM是java在 “运行效率”, “应用生态” 的革命性尝试.运行效率方面 采用AOT(ahead of time)编译技术, 编译成 “本地镜像” 的方
2021-02-28 00:08:30 2117
原创 WebMagic爬取电商网站示例
1. 概要WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。WebMagic架构如下1.Scheduler Scheduler负责管理待抓取的URL,以及一些去重的工作. 支持布隆算法.2.Downloader Downloader负责从互联网上下载页面,以便后续处理。WebMagic默认使用了Apache HttpClient作为下载工具。3.PageProcessor PageProcessor负责解析页面,抽取有用信
2021-02-27 22:51:58 539 2
原创 JOOR流式反射库
1. 概述JOOR = jOOR Object Oriented Reflection是一个java反射工具包, 极小(只有4个核心类)流式编程, 主要简化繁复的反射API使用, 没有另加反射缓存.2. 示例2.1 POM.xml<dependency> <groupId>org.jooq</groupId> <artifactId>joor-java-8</artifactId> <version>0.9.13
2021-01-06 01:17:07 459
原创 ReflectASM高性能反射库
ReflectASM高性能反射库1. 概要ReflectASM是一个非常小的高性能反射库.当 “修改/查询字段”, “调用方法”, “创建实例” 时, 会用ASM字节码技术动态生成一个Access Class. 来避免"java传统反射"的使用.因为, 他直接使用字节码, 所以他比"java传统反射"要快.2. 示例2.1 Userpackage demo.java.reflectasm;public class User { public int id; public
2021-01-03 22:39:59 2595
原创 Reflections反射扫描库
Reflections反射扫描框架1. 使用场景Reflections扫描classpath, 缓存metadata, 以备运行期间使用.可获取某类的所有子类可获取某注解标注的所有类或字段可获取某正则匹配的资源可获取特定签名的方法优点具备Java原生反射技术, 所不具有的功能, 反射扫描.缺点底层实现, 会遍历classpath, 以及遍历jar包中的类, 太耗时间.只能在启动时, 做些初始化的功能.2. 简单使用模型package demo.java.ref
2020-12-29 23:56:39 1393
原创 Java SPI 总结
Java SPI 总结1. Java SPI 目标定义好SPI, 方便三方定制扩展, 如JDBC的驱动实现, Dubbo的SPI实现.原生, 脱离Spring等容器框架, 动态加载接口的实现.2. SPI vs APIAPI (Application Programming Interface)调用方 --> { 接口(提供方定义) --> 提供方 }SPI (Service Provider Interface){调用方 --> 接口(调用方定义) } --&
2020-12-28 23:39:42 103
原创 程序参数, 系统属性, 环境变量 三者间的差异
程序参数, 系统属性, 环境变量 三者间的差异1. 代码示例package demo.java.args;/** * 程序参数, 系统属性, 环境变量 三者间的差异 * * @author liuxianqiang * @since 2020/12/17 13:22 */public class Demo { public static void main(String[] args) { /** * 程序参数 * 设置方法
2020-12-17 14:52:50 369
原创 Nacos学习大纲
Nacos学习大纲1. 安装Nacos (单机模式, 最佳实践)下载并解压 nacos-server-$version.zip修改bin/startup.sh, 限定为standalone模式启动修改bin/startup.sh, 限定为config/naming模式启动 (暂不动)(如果仅仅把nacos当成服务的注册中心, 不作为配置中心, 可以限定为naming模式启动)修改config/application.properties, 数据库由derby改为mysql(需要
2020-12-17 12:51:17 131
原创 (翻译) 如何提升JVM上的开发效率
(翻译) 如何提升JVM上的开发效率How to Increase Your JVM Development Productivity1. 引言开发过程中, 代码改动后快速生效是非常重要的.等待应用冷启动是不可取的, 这会降低开发效率.在这篇文章中, 我将使用 “特别的JVM参数” 及 “类加载” 技术, 来减少等待时间.除了不依赖框架的方法, 我还将介绍在SpringBoot应用中的一些技巧.2. 摘要JVM参数 -noverify -XX:TieredStopAtLevel=1 可
2020-12-15 23:48:59 1330 1
原创 Mac下kafka的安装与配置
Mac下kafka的安装与配置1. 安装liuxianqiang-mac:~ liuxianqiang$ brew install kafka==> Downloading https://homebrew.bintray.com/bottles/zookeeper-3.6.2.mojave.bottle.tar.gz==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/799dcedfc580923f05b1634fead
2020-12-10 00:23:13 480 1
原创 MapStruct基础
MapStruct基础本文章, 大都来源于官网的简单翻译和加工, mapstruct官网/开始Demo1. 简介MapStruct是一个代码生成工具, 主要为了简化DTO/DO/VO之间, 琐碎的转换代码.类似于Lombok, 他也是采用JSR-269, 注解处理器(annotation processor)技术.在Java源码编译期间, 自动生成, 相关的Getter, Setter, Constuctor, DTO/DO/VO转换. 等等 代码.2. 开始Demo2.1 Car, Ca
2020-12-03 02:09:32 344
原创 Mac下rabbitmq的安装和配置
Mac下rabbitmq的安装和配置1. 安装安装命令brew search rabbitmq # 查询, 已安装或可安装的rabbitmqbrew install rabbitmq # 安装brew info rabbitmq # 查询安装信息安装信息localhost:~ liuxianqiang$ brew info rabbitmqrabbitmq: stable 3.8.9Messaging brokerhttps://www.rabbitmq.com/usr/lo
2020-11-30 20:52:57 362
原创 Mac下mongo的安装和配置
Mac下mongo的安装和配置1. 前提brew tap mongodb/brew # brew tap 三方源brew search mongo # 确认是否已安装, 查找mongo合适的版本2. 安装并配置2.1. 安装liuxianqiang-mac:/ liuxianqiang$ brew install mongodb-community@4.2==> Installing mongodb-community@4.2 from mongodb/brew==> Down
2020-11-30 20:51:17 264
原创 Homebrew基础
Homebrew基础1. 安装/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装homebrewbrew -v # 查看版本2. 基本命令安装/卸载brew list # 查看 已安装brew search # 搜索 要安装brew install wget # 安装brew uninstall wget # 卸载brew info
2020-11-30 20:47:47 92
原创 JNI初探
JNI初探1. 简介JNI = java native interface允许java代码调用c/c++/asm语言编写的本地库.JNI接口, 用native关键字, 来标识.java.lang.Object 的相关native方法java.lang.Object 的相关native方法public final native Class<?> getClass();public native int hashCode();protected native Object cl
2020-11-27 23:10:56 117
原创 海康摄像头使用
后台访问IP地址: 默认192.168.1.64 (多个摄像头IP冲突时, 需要手动设置IP)HTTP端口: 80管理用户: admin管理密码:首次使用需要设定管理密码激活忘记密码需要海康密码重置软件 (微信扫描摄像头二维码, 按流程走, 较为繁杂)最好用IE浏览器访问RTSP地址格式: rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_streamusername: 摄像头后台-用户名
2020-10-18 00:11:49 3997
原创 Javassist学习总结1
1.摘要javassist是一个"Java字节码"操作类库.2.应用场景1. 读取.class文件到内存, 新增或删除字段或方法, 修改字段或方法的 访问级别, 是否final, 是否static, 是否abstract 改换类名, 改换类继承的接口或父类 ... 然后写回.class文件.2. ClassLoader加载某个.class文件时, 动态的在方法的前后加点字节码, 实现动态代理及AOP的...
2020-09-21 01:51:09 295
liferay-ide-eclipse-updatesite-1.6.1.zip
2012-11-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人