
java
阿菜ray
这个作者很懒,什么都没留下…
展开
-
Jsoup检索匹配(持续完善)
jsoup用的比较多了,通配符老忘,记录下~以某个字符开头div[id^=zz]解释: 检索id值以zz开头的div模糊匹配div[class*=abc]解释: 检索class值包含abc的div原创 2022-01-26 21:43:38 · 875 阅读 · 1 评论 -
docker容器内部ping问题
问题描述起一个镜像发现ping其他的容器可以ping通 可以公网下载东西,就是ping外网的时候卡住,不发送icmp探测报文问题解决重启docker猜测平时电脑公司网络,带回家连家里网、vpn,然后又带回公司连公司网络导致的网络问题。详情不懂。。有知道的大佬可评论下...原创 2021-01-11 15:53:18 · 1419 阅读 · 0 评论 -
linux服务器Java项目crash排查
昨天线上某业务线项目挂掉了,记录下排查流程查看项目下是否有core.文件、heapdump文件、hs_err.log文件也可以查看var/log/message文件,通过找到crash时的时间对应的相应日志重点可以看下hs_err*.log,是否包含oom等常见crash问题,不过我们的hs_err*.log发现异常是一个nullpointexception,其他没有发现明显问题。随后观看了下异常栈栈顶部分发现包名不是业务包,询问发现是安全部的一个部署侵入包,于是询问对应的安全部rd并提供hs_er原创 2020-12-30 14:14:48 · 562 阅读 · 0 评论 -
记一次mysql死锁问题
死锁摘要的内容摘自https://www.jianshu.com/p/13490ae60586为什么别人写了我还要写 此篇不是为了水~1. 自己的死锁内容不便发出,厂子规矩多 2. 上文死锁情况与我相同,但是最后我没有看懂为什么会发生死锁mysql版本 5.6隔离级别 RR死锁摘要TRANSACTION1*** (1) WAITING FOR THIS LOCK TO BE GRANTED:TABLE LOCK table `xxx_xxx_common`.`event_log` trx i原创 2020-12-03 11:23:41 · 241 阅读 · 0 评论 -
重量级锁和CAS的适用场景
明确点: CAS的线程都是活跃状态,相当于一直处于while(true)的状态 重量锁的线程处于阻塞或者睡眠的状态并发量很高以及任务执行时间很长的方法/任务适用于重量级锁,此时使用CAS自旋前者导致CPU的负载过重,后者则CPU不必要的消耗,你执行时间这么长还让我在这一直自旋,你逗我呐?上面的反例即为CAS的适用场景,并发量CPU可以承受,且每一个任务的执行时间比较短...原创 2020-10-29 21:33:48 · 612 阅读 · 2 评论 -
ThreadLocal内存泄漏问题
学习来自马士兵老师1. 什么是弱引用,弱引用什么时候会被回收2. ThreadLocal中弱引用的使用3. ThreadLocal什么时候会被回收1. 这块可以参考下别的大神的文章了解下,这块介绍很多,唯一补充下虚引用那块如下。一般用作堆外内存的回收使用(如nio),当需要回收堆外内存在堆内的引用时,会先把这些引用放到我们初始化虚引用时传入的一个队列,随后会有专门的线程去清理这些引用指向的堆外内存。 可按如下步骤跟踪下此引用的使用做证实// 第一步 调用ByteBuffer的allocateDi原创 2020-10-14 17:43:12 · 554 阅读 · 2 评论 -
内存局部性原理-利用空间局部性优化程序
学习来自马士兵什么是内存局部性原理?见https://blog.youkuaiyun.com/xindoo/article/details/97525694 可以看下内存局部性这块的解释先上代码package com.example.mashibing;import java.util.concurrent.CountDownLatch;public class Demo1 { static CountDownLatch countDownLatch = new CountDownLatch(原创 2020-09-30 16:35:13 · 958 阅读 · 0 评论 -
javanio读取文件超出问题
读问题:读取一个文件按读取的byte[]输出时输出超出文件内容问题发生示例: 有文件a.txt,内容为 ‘12345 \n 12345 \n 123’,通过如下代码输出结果为’12345 \n 12345 \n 12312345\n’ 即表现形式是输出超了public class Demo1 { public static void main(String[] args) throws IOException { File f = new File("filePath");原创 2020-09-22 23:40:24 · 312 阅读 · 0 评论 -
springboot覆盖父pom parent依赖版本思路
分两种情况,一种是项目引入了spring-boot-starter-parent,一种是没有引入,本文介绍的是我解决问题的思想,可能和你的case不一致,但是解决思路应该是相同的引入的情况,case示例前两天公司公告jackson-databind-2.9.10.6以下可能存在远程执行漏洞要升级,由于项目是多模块,因此首先想到的就是父pom版本管理Ctrl+鼠标左键进入我们的父pom引入的spring-boot-starter-parent,如下图图一进入这个pom文件后我们发现他的depende原创 2020-09-22 23:16:05 · 8251 阅读 · 0 评论 -
如何看懂tomcat安装包logs文件夹下日志
本篇文章较长 重要的是思路!!!之后你看Tomcat的任何一个类的源码都可以根据这种思路去定位和trace对于一个正在找工作的渣渣来说 习惯性的翻源码慢慢也变成了乐趣 -鲁迅对于Tomcat的源码我觉得看懂架构非常容易 对于细节因人而异 贴一张Tomcat的架构图(百度找的)左边就是我们conf目录下很重要的server.xml文件内容,右边则是官方给的架构图 可以看到一一对应从上图我们可以看到server.xml文件中的标签与右边的架构图的组件具有相同的相对位置 而在源码中他们更是具有相同的关系原创 2020-05-09 11:09:03 · 780 阅读 · 0 评论 -
jvm服务器-图解如何查看GC日志
可根据上图进行对照 上图以youngGC示例,oldGC与fullGC参数、分析与上述除将新生代大小转换为老年代大小之外完全一致原创 2020-04-27 09:57:31 · 1307 阅读 · 0 评论 -
提一个lombok的bug
问题描述: 实体类内的字段名与实体类内定义的非静态常量或普通字段字母相同(忽略大小写的情况下)例:public class Model { private String name; public final String NAME;(or private String NAME;)}问题:toString方法会打印NAME字段,并且值为name的值,下图为idea反编译后的toS...原创 2019-12-31 14:07:09 · 1100 阅读 · 0 评论 -
redis求交集、差集、合集注意点
以下纯属个人观点,如有错误或疑问,非常欢迎和感谢指正与讨论1. 对数据较大,如百万级、千万级的value一定要考虑分片。制定分片均匀的方案,键的设计可为固定键加分片位,value最好不要超过10W。这样可以将一个大的计算任务分为多个小的计算任务,(很多公司的redis服务器应该都是有超时策略的)不会过度影响到读请求。也可以采用读写分离,计算任务放到一个redis服务器,读请求放到另一台服务器...原创 2019-09-26 20:15:27 · 1971 阅读 · 0 评论 -
天气
example:// 省略...public @interface RabbitListener { String id() default ""; QueueBinding[] bindings() default {};}public @interface QueueBinding { String value() defaut "";}how to use@...原创 2019-08-06 15:15:48 · 627 阅读 · 0 评论 -
spring配置文件properties中数组写法
arrName[0].propertyName1=contentarrName[0].propertyName2=contentarrName[1].propertyName1=contentarrName[1].propertyName2=content原创 2019-07-23 15:53:18 · 34553 阅读 · 0 评论 -
maven项目打包target目录无法访问无权限类似问题
今天一位同学遇到了一个问题,idea中的maven项目打包时报了一个bug,无法删除/创建target的子文件|子文件夹,然后在window explorer中打开后第一次是target文件夹都进不去,无权限访问,他重启了一次机器,打包后又遇到这个bug,这次倒是能点进去target文件夹了,但是还是不能删除推测:无法访问的原因是程序占用解决办法:打开任务管理器注意,重启此进程前请关闭所...原创 2019-03-21 19:06:03 · 15244 阅读 · 18 评论 -
swagger构建api文档description过时使用tags
问题描述:description注解过时,想使用tags注解替换,但是使用tags后发现只能展开类,不能展开方法去测试原因:swagger导入版本过低,且与配置类中version不匹配解决<font color="#660000">我的配置为<h1>swagger 2.6.1</原创 2018-08-29 19:04:41 · 28627 阅读 · 2 评论 -
mybatismapper文件多层循环生成大量数据
问题描述: 想生成一年内除节假日外,每一天对应某个实验室的某个时间段的记录表,也就是三个字段,日期yyyy-MM-dd、实验室ID、时间段ID,然后具体的数据记录表引用这个表的主键作为外键 实现思路:####这样大批量生成不能够是一条记录一条SQL语句,而应该是一条SQL语句插入所有记录遇到问题:####报错,输出的SQL语句要么少逗号,要么多逗号,要么生成记...原创 2018-08-29 19:30:26 · 530 阅读 · 2 评论 -
java中的浅拷贝与深拷贝详解
本文将由浅入深的从java零基础可以写出的拷贝代码到目前本文作者掌握到的拷贝知识点,其中的遇到的一些坑和重要知识点也会一一点出。作者菜鸡一头,如有错误,非常感谢您的指正!########################################################################如果我们想实现一个对象的拷贝,那么不涉及JDK提供的copy类最简单的我们可以...原创 2018-08-30 12:40:49 · 2668 阅读 · 1 评论 -
java.lang.NoClassDefFoundError: Could not initialize class com.fasterxml.jackson.databind.ObjectMapp
springboot2.X整合mybatis plus3.X坑系列解决办法:引入以下依赖 <!-- 解决构建失败问题 --> <dependency> <groupId>原创 2018-09-16 16:38:03 · 11178 阅读 · 1 评论 -
关于springboot默认全局异常处理对拦截器的影响
最近在写项目时遇到了一个问题,定义了登录拦截器后总会出现明明登陆了却提示未登录的情况!重点来了!!***每次出现这种情况都是前台数据传过来校验出错导致的***
springboot2.X项目部署到阿里云服务器在上干货之前想说一下由MainApplication.java RUN方式转换为部署到tomcat下启动访问两种方式的转换思路:直接run as 启动类实质上是使用的springboot自带的tomcat插件,我们在application.yml中配置的server.port、server.servlet.context-path等属性就是对自带...原创 2018-10-10 19:53:19 · 529 阅读 · 0 评论 -
java中静态成员变量的使用
static首先是全局共享的一个资源的引用,或者是一个常量的引用 . . .这里提出一个这种机制下可能造成的影响:近日在做一个C#的小项目时有这样一个需求,点击A窗口按钮弹出B窗口,B窗口的按钮点击后释放掉AB窗口,如图点击此按钮后此时我点击新窗口中的销毁按钮,窗口正常关闭,反复也都正常,但是当我点击初始化按钮多次,而在新窗口出现后不立即关闭,这样就会出现多个新窗口。这时候问题就出现了...原创 2018-11-27 16:16:27 · 1814 阅读 · 0 评论 -
springboot2.X整合mybatis plus3.XJDK8环境下返回值为Map时间格式的规格化
原因:mybatis plus3.X的代码生成器默认生成时间类型为LocalDateTime,当从数据局进行连接查询时通常需要定义返回类型为Map,这样返回的时间格式经常如下面所示 "createTime": "2018-09-25T17:40:35", "updateTime": "2018-09-25T17:40:35",原创 2018-12-24 08:19:58 · 1532 阅读 · 2 评论 -
本地项目上传到git上
最近在补算法,看看写的这么多代码挺感动的,就想上传到git上以后说不定有用,百度N条重复的,再排除一些坑,是以下流程首先进入要上传的项目的目录,例如cd ~/test1然后将本地项目交给git管理git init现在就可以去远端创建一个Git仓库了,进入首页右上角加号第一个选项创建项目,千千万万注意创建项目名称要和本地的项目一样,还有,保证下图红色方框内的选项和我一样,保证创建的是一...原创 2018-12-18 15:54:47 · 163 阅读 · 0 评论 -
spring service多子类动态注入 最后有重点
最近在水微信群时有人问了一个很好的问题,于是我知道,我装X的时刻又到了,嘻嘻嘻问题描述:对于XXService的多种实现类不通过resource指定的情况下实现按功能动态注入思路:使用拦截器对这个接口进行匹配拦截,通过接口参数来完成类型指定,通过反射完成注入上代码拦截器的public boolean preHandle(HttpServletRequest httpServletRequ...原创 2019-01-08 14:45:12 · 3327 阅读 · 2 评论 -
spring父子容器入门
1. spring是父容器,springMVC是子容器,子容器可以访问父容器对象和属性,但是父容器不能访问子容器的2.在请求到达action时处理请求的是子容器内的对象,父容器内的controller对象虽然存在,但是经试验用不上3.分别获取父子容器父容器 ApplicationContext applicationContext = WebApplicat...原创 2019-01-08 15:30:50 · 214 阅读 · 2 评论 -
eclipse导入spring3.2.6(学习咕泡课程)
刚上来的第一个难题就是源码的下载(https://github.com/spring-projects/spring-framework/releases/tag/v3.2.6.RELEASE)。我在尝试了几十次包括FQ都以中断重新下载后想到了一个方法:1.在我的阿里云服务器上安装了gityum -y install git2.使用阿里云服务器clonespring项目到服务器上cd ...原创 2019-02-15 21:47:34 · 273 阅读 · 0 评论 -
idea|eclipse导入mybatis源码(推荐直接导入带中文注释的mybatis源码)
最近想看下mybatis的源码,就去交友网站搜了下,发现直接就有带中文注释的mybatis源码了,感谢感谢!贴下地址:https://github.com/tuguangquan/mybatis1.https://github.com/tuguangquan/mybatis 下载mybatis源码(这个是带中文注释的,也可下载最纯净的)2. https://github.com/mybatis...原创 2019-03-20 18:21:10 · 1433 阅读 · 0 评论 -
实现低并发简单的一个乐观锁
一次低并发然而需要用到锁的需求解决*需求 学生预约实验室,因为实验室有最大预约人数,当并发请求过多,可能会造成多人成功预约同一个‘最后的位置’*具体表情况 一个学生预约情况表(Condition表),记录实验室预约情况,有人数字段(每次有新预约,要更新这个数字,然后往学生预约表(Appointment表)插入一条新纪录),实验室ID字段等*解决思路 ...原创 2018-08-10 15:38:56 · 759 阅读 · 0 评论