![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
米斯特程序猿
爱生活,爱自己,爱家人,不抛弃,不放弃,敢冒险
展开
-
JAVA 获取今天、昨天、上周等日期
JAVA 获取今天、昨天 等用于查询的时间区间原创 2023-01-11 17:04:37 · 1997 阅读 · 0 评论 -
Mac JDK8 jinfo can‘t attach to the process.
1.问题: jmap/jinfo 无法attach上jvm进程, jstat可以正常使用环境: JDK1.8.0_241\JDK1.8.0_321 均不可以正常使用2、别人最后安装了 JDK1.8.0_131 解决问题更详细参考原创 2022-02-09 10:54:43 · 1066 阅读 · 0 评论 -
IDEA 启动项目 java: Compilation failed: internal java compiler error
百度、谷歌了一把都不对,最后是因为idea配置问题,修改 “Bulid process heap size” 即可,默认是700,我这改成1024就可以了,这个是因为编译代码所需的内存不够用了原创 2022-01-06 15:27:58 · 321 阅读 · 0 评论 -
数据结构与算法-002-数组-盛水最多的容器
题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。题目来自leetcode暴力解法解题思路,双层循环,时间复杂度 O(n^2),在leetcode 上运行会超时 public in原创 2021-11-15 22:22:08 · 846 阅读 · 0 评论 -
数据结构与算法-001-数组-两数之和
两数之和给定一个数组 n 以及一个目标值 t ,从数组中找到相加等于 t 的两个数字索引暴力法解题思路双层循环,时间复杂度 O(n^2)public int [] towSum(int [] n,int t){ // 边界条件 if(n.length<2){ return new int[0]; } int [] result=new int [2]; for(int i=0;i<n.length;i++){ for(int j=i+原创 2021-11-12 15:20:14 · 442 阅读 · 0 评论 -
You are creating too many HashedWheelTimer instances.
在Spring boot (2.3.11) 项目中批量初始化 redis 遇到如下警告信息,大致意思就是创建了过多的 HashedWheelTimer ,由于该类需要跨JVM共享,所以建议只创建一个实例,其实这个提示个人觉得有点矛盾,因为这里有一个最大实例64的判断,超过之后就打印该信息,但是不影响实例创建,当然处于资源浪费考虑还是少创建比较好,目前对项目没有影响io.netty.util.HashedWheelTimer | You are creating too many HashedWheelTi原创 2021-07-23 18:38:07 · 2589 阅读 · 0 评论 -
Java 正则表达式对数据脱敏处理
做开发难免有时需要对数据进行脱敏处理,这里给出一个正则表达式做参考public class StringTest { public static void main(String[] args) { String str="12345678901"; String regex="(.{3}).*(.{3})";// 保留前3个字符、后3个字符 String r="$1*****$2";// $1第一个表达式,$2 第二个表达式,中间星号可使用任意.原创 2021-06-24 10:45:39 · 2324 阅读 · 0 评论 -
记录 RedisTemplate.executePipelined 使用问题
需求,向redis写入9000万个key第一个版本(关键代码)@Slf4j@Component("job2")public class ToRedis2 implements IJob { private AtomicLong count = new AtomicLong(0); private Long oldCount=0L; private List<String> userIdList = new LinkedList<>();原创 2021-05-28 15:05:55 · 5506 阅读 · 1 评论 -
Nacos 集群搭建
环境信息Nacos 版本 2.0JDK 1.8.0_161Mysql 5.7.23注意点Nacos 2.x 启动了多个端口号Nacos 2.x 启动多个端口规则如下官方issuer2.0需要4个端口server.port(默认8848)raft port: ${server.port} - 1000grpc port: ${server.port} + 1000grpc port for server: ${server.port} + 1001Nacos 服务安装n原创 2021-04-29 14:35:32 · 773 阅读 · 0 评论 -
谨慎使用redis 的zset 数据结构
问题发下过程如下最近两天连续收到redis闪断问题提交工单反馈说是有key集中过期造成,但是白天跑一天没事,后来按照参考加上随机时间,暂时没有发现新的闪断现象继续压测发现redis集群CPU利用率过高,维持在80%以上由于zset有排序动作,当值很少(十几kb)不会有太明显的CPU标高现象,但是依然有CPU长时间负载较高的风险,主要原因是数据过大,CPU一直在做排序动作,所以CPU标高最后解决办法是使用简单的k-v存储,CPU非常平稳,几乎不会超过10%,存储空间降低约50%~60%65万数原创 2021-04-26 15:12:51 · 833 阅读 · 0 评论 -
线上 indexOf 引发的性能问题总结
因某次更新造成线上处理数据性能降2 ~ 3倍,没更新前处理时间在300毫秒左右,更新后为600 ~ 900毫秒经过代码排查,发现是因为增加如下代码 boolean mainSiteIdCheck = data.indexOf("main_site_id") == -1; if (mainSiteIdCheck) { log.warn("缺少[main_site_id]", data); TotalUtil.dataErro.原创 2021-04-22 10:03:03 · 692 阅读 · 0 评论 -
Google Android开发精华教程
Android是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。本文汇总整理了时下关于Google Android技术教程的下载资源,供参考。一、入门级:《Android中文教程》中文版[简介]:《Android中文教程》简单易懂转载 2016-02-17 10:23:14 · 411 阅读 · 0 评论 -
JAVA 并发与高并发知识笔记(三)
一、原子性操作的几种方式先回顾一下原子性操作的解释:原子性要有互斥性,既:同一时刻只能有一个线程进行操作。1、synchronized 关键字(同步锁),由JVM 管理以及实现 a) 在这个关键字作用对象的对象范围内,多个线程操作是原子性的。(注意:是作用对象的作用范围内) b) 关键字常见使用方式 b.1 修饰代码块,作用于调用对象,被修饰的代码块同一个对象同一时刻只能有一...原创 2018-04-18 14:32:19 · 219 阅读 · 0 评论 -
JAVA 并发与高并发知识笔记(二)
一、并发安全、不安全描述安全:多个线程操作同一个资源,最后的执行结果与单线程执行结果一致,则说明是线程安全的不安全:多个线程操作同一个资源,最后执行结果不确定的,则说明不是线程安全的这里我觉得还是解释一下并发与并行的一点区别比好(并非绝对概念),并发通常是多个线程去竞争相同资源,而并行通常是多个线程之间是协作关系,例如,在秒杀场景下,多个用户(线程)共同争抢某个资源,这个是并发。例如,多个线程统计...原创 2018-04-12 10:34:30 · 440 阅读 · 0 评论 -
Lombok:让JAVA代码更优雅
Lombok简介Project Lombok makes java a spicier language by adding ‘handlers’ that know >how to build and compile simple, boilerplate-free, not-quite-java code.如Github上项目介绍所言,Lombok项目通过添加“处理程序”,使java成为...转载 2018-04-10 11:57:45 · 216 阅读 · 0 评论 -
JAVA 并发与高并发知识笔记(一)
一、并发与高并发基本概念并发: 从业务上简单解释就是多个用户(编码层面就是多个线程)共同竞争(修改或读取)一个资源,并发问题更多体现在业务代码操作数据上,例如:秒杀场景,瞬间会有大量用户共同抢购一个商品,这时候如果没有并发控制,则极有可能出现超卖情况,即库存被扣成了负数。 从操作系统以及硬件层面解释并发:有多个线程运行在CPU上,当在单核处理上运行的时候,多个线程在单核处理上交替执...原创 2018-04-10 18:44:12 · 1744 阅读 · 0 评论 -
分享45个android实例源码,很好很强大.收藏吧!!!
分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.htmlandriod闹钟源代码http://www.apkbus.com/android-20974-1-1.htmlandroid源码分享之指南针程序http://www.apkbus.com/android-20973-1-1.html转载 2016-02-17 10:23:08 · 584 阅读 · 0 评论 -
关于CSV文件的读写问题(特别是有双引号和逗号的情况)(转载)
转载:https://blog.csdn.net/xyr05288/article/details/53696464一. 对于CSV的读写既可以像读写txt文件似的读写/*===================读文件=======================*/InputStreamReader read = new InputStreamReader(new FileInputStrea...转载 2018-06-19 17:10:20 · 30123 阅读 · 3 评论 -
记一次 Serializable 接口使用问题
最近在家调试程序时遇到序列化错误,该问题是由于实现接口的类没有指定 serialVersionUID 值导致。以前不知道在哪看到过,如果实现了java 这个序列化接口, serialVersionUID 这个属性建议都加上,避免远程传输后反序列化时出错,这次遇到了,记录一下。另外 serialVersionUID 必须是 final 类型的Caused by: java.io.InvalidC...原创 2018-07-01 12:10:12 · 359 阅读 · 1 评论 -
mybatis 的一个坑
今儿运行项目,死活起不来,总是报 allColumn 方法找不到,折腾一个小时,才发现,是xml里有个 标签中的名字写的是 allcolumn 把这个名字改了之后项目启动成功,具体原因没时间查,估计和动态sql代理有关系 这东西,之前写的是 allColumn,导致项目启动加载数据的时候总是失败原创 2017-09-23 15:28:29 · 313 阅读 · 0 评论 -
记录一下 dubbo 并发性能调优
参考资料:https://blog.csdn.net/u013355797/article/details/80318309https://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-protocol.html最近项目在使用dubbo 上遇到了性能问题1、业务场景每天早上6点A服务会并发(300 ~ 600)请求B服务获取下单...原创 2019-05-10 17:43:36 · 8421 阅读 · 4 评论 -
使用jmeter 测试dubbo接口
1、打包dubbo接口以及相关依赖2、下载jmeter dubbo插件3、将dubbo接口、依赖、jmeter dubbo 插件一起放在jmeter 的 lib\ext 目录下4、避免乱码问题(jmeter 默认是 IOS-8859-1),修改 jmeter bin/jmeter.properties 这个文件,增加sampleresult.default.encoding=utf-...原创 2019-04-03 15:10:57 · 781 阅读 · 0 评论 -
Lombok原理分析与功能实现(转)
本文转自:https://blog.mythsman.com/2017/12/19/1/前言这两天没什么重要的事情做,但是想着还要春招总觉得得学点什么才行,正巧想起来前几次面试的时候面试官总喜欢问一些框架的底层实现,但是我学东西比较倾向于用到啥学啥,因此在这些方面吃了很大的亏。而且其实很多框架也多而杂,代码起来费劲,无非就是几套设计模式套一套,用到的东西其实也就那么些,感觉没啥新意。刚这两...转载 2019-03-01 10:52:44 · 1069 阅读 · 2 评论 -
log4j:WARN No appenders could be found for logger 解决办法
项目中遇到执行时遇到以下警告信息,经过查询是因为1.2版本的要在 log4j.properties 文件里配置输出log4j:WARN No appenders could be found for logger (com.alibaba.druid.pool.DruidDataSource).log4j:WARN Please initialize the log4j system p...原创 2019-01-29 09:28:26 · 24222 阅读 · 0 评论 -
使用JConsole 监控 springboot 项目
项目启动参数增加以下选项即可:-Djava.rmi.server.hostname=192.168.0.174 (服务所在IP)-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9192 (JConsole要连接的端口,不能与项目一样)-Dcom.sun.management.jmxremote.rm...原创 2019-01-22 15:52:01 · 2885 阅读 · 5 评论 -
Jsoup 使用问题
1、问题描述最近在用Jsoup 爬数据,对方是API接口,返回的是JSON结构,但是在获取数据后发现有部分数据缺失,其中主要缺失的数据时<img> 标签类的数据。2、排查过程2.1、使用Postman 调用接口返回数据正常2.2、使用jsoup 传入同样的参数,调用后拿到的数据不正确2.3、对比参数,参数一致,并且去掉大部分参数后postman 返回的结果依然正常 ...原创 2018-08-15 11:37:12 · 805 阅读 · 0 评论 -
JAVA POI 读取 excel
public class ExcelRead { /** 总行数 */ private int totalRows = 0; /** 总列数 */ private int totalCells = 0; /** 错误信息 */ private String errorInfo; public int getTotalRows() { return totalRows; }...原创 2018-07-09 15:07:18 · 236 阅读 · 0 评论 -
字母 日期或时间元素 表示 示例 (java)
字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W 月份中的周数 Number 2 D 年中的天数 Number 189 d 月份中的天数 Number 10 F 月份转载 2016-02-17 10:24:09 · 1203 阅读 · 0 评论 -
验证字符串是否是日期格式(支持24小时制)
/*** 验证字符串是否是日期格式* 不能验证没有秒的时间* @param value* @return*/private static boolean checkDate(String value){ String eL="^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02])转载 2016-02-17 10:24:20 · 1231 阅读 · 0 评论 -
Mybatis 扫描不同目录dao配置
MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");mapperScannerConfigurer.setBasePackage("co原创 2017-11-07 18:31:18 · 2925 阅读 · 0 评论 -
tomcat部署两个项目只有一个启动问题
最近开发项目时,遇到一个一个tomcat部署两个项目,导致其中一个启动失败问题,最后查明是因为web.xml 中缺少 webAppRootKey 属性配置,由于没有指定该配置,导致项目加载时使用的默认值,两个项目值一样,最后只有一个启动成功配置如下webAppRootKeymres // 这里可以随便起一个名字,不和其它项目冲突就行了参考资料:原创 2017-09-27 11:51:28 · 7088 阅读 · 3 评论 -
安卓巴士Android开发神贴整理
10个经典的Android开源应用项目http://www.apkbus.com/android-13519-1-1.html安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发的每个领域http://www.apkbus.com/android-17627-1-1.html一个demo让你掌握Android的各种Service:http://www.apkbus.com/a转载 2016-02-17 10:23:25 · 561 阅读 · 0 评论 -
全面解析Java注解
1.了解注解我们有必要对JDK 5.0新增的注解(Annotation)技术进行简单的学习,因为Spring 支持@AspectJ,而@AspectJ本身就是基于JDK 5.0的注解技术。所以学习JDK 5.0的注解知识有助于我们更好地理解和掌握Spring的AOP技术。对于Java开发人员来说,在编写代码时,除了源程序以外,我们还会使用 Javadoc标签对类、方法或成员变量进转载 2016-02-17 10:27:41 · 266 阅读 · 0 评论 -
java 文件大小格式化显示工具
// 进制位 final static int JZ = 1024; // 1Byte final static int B = 1; // 1KB final static long KB = B * JZ; // 1MB final static long MB = KB * JZ; // 1GB final static long GB = MB * JZ; /...原创 2017-09-26 12:50:57 · 1063 阅读 · 0 评论 -
线程不安全的实体Bean
线程不安全的写法/** * @Title: EE.java * @Package com.th.test2 * @Description: TODO(用一句话描述该文件做什么) * @author Aaron·Li * @date 2017年8月31日 上午11:16:12 * @version V1.0 */package c原创 2017-08-31 13:31:35 · 438 阅读 · 0 评论 -
java long 能存储的最大字节数字
// 进制位final static int JZ = 1024;// 1KBfinal static long KB = 1 * JZ;// 1MBfinal static long MB = KB * JZ;// 1GBfinal static long GB = MB * JZ;// 1TBfinal static long TB = GB * JZ;原创 2017-09-25 14:26:01 · 3786 阅读 · 0 评论 -
关于eclipse中部署到service中时显示部署名称不正确的解决办法
最近做项目,拷贝了一个其它项目用来做开发框架,结果发现向eclipse中的service里添加时显示总是原先的项目名称,后来发现是拷贝的时候没有去掉.settings 目录里的文件导致的,之后手动修改了就好了注意图中红色框里的箭头,edits 是源项目,下边两个是拷贝后修改的,之前下边两个项目那个括号里一直显示 edits出现我这样的情况的时候,可以去项目目录中的 .settings 目录原创 2017-09-23 14:04:38 · 542 阅读 · 0 评论 -
fastjson 复杂json 序列化、反序列化
fastjson 复杂JSON对象序列化、反序列化原创 2017-05-22 16:15:46 · 1616 阅读 · 0 评论 -
Eclipse 常用快捷键
编辑Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类、try catch包围等)Ctrl+Shift+F 格式化当前代码Ctrl+Shift+M 添加类的import导入Ctrl+Shift+O 组织类的import导入(既有Ctrl+Shift+M的作用,又可以帮你去除没用的导入,很有用)Ctrl+Y 重做(与撤销Ctrl+Z相反转载 2016-04-11 13:54:29 · 239 阅读 · 0 评论 -
Spring boot config info
## ===================================================================## COMMON SPRING BOOT PROPERTIES#### This sample file is provided as a guideline. Do NOT copy it in its## entirety to your转载 2016-04-08 10:59:03 · 1219 阅读 · 0 评论