自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MongoTemplate读写操作与创建索引

1、简单查询数据 Query query = new Query(); Criteria criteria = Criteria.where("userId").is(userId); query.addCriteria(criteria).limit(1); List<DTO> dtoList = mongoTemplate.fin...

2020-04-25 16:09:19 8997 1

原创 Log4j2动态配置日志级别

记录下log4j2动态配置日志级别的代码LoggerContext ctx = (LoggerContext) LogManager.getContext(false); org.apache.logging.log4j.core.config.Configuration config = ctx.getConfiguration(); ...

2020-02-18 18:18:03 2550

原创 记录一次log4j2导致的内存泄漏

线上服务突然告警,jvm疯狂触发老年代gc,登录后台查看gc并不能释放老年代空间,之前这个服务一直正常运行了几个月,第一时间下载jvm的dump文件,并对服务重启,防止内存不足影响线上业务。使用MAT分析dump文件,先按照retained Heap排序,发现ThreadLocal 和StringBuilder这两个类占用了大量内存,ThreadLocal也是引用的StringBuilder,...

2020-02-18 11:32:08 10180 3

转载 spring cloud学习使用总结

1、springcloud使用具体方法可以参考博客 https://blog.csdn.net/forezp/article/details/70148833,注意自己使时,注意区分springcloud的各个版本2、springcloud参数传递参考 https://blog.csdn.net/u014281502/article/details/728961823、配置文件参...

2018-07-18 11:07:25 299

原创 Fork/Join框架简析

最近看多线程方面的知识,无意间看到fork/join框架,蛮有意思的,就研究了下,记录下来以便以后查询 Fork/Join框架是jdk1.7之后concurrent包新增的功能 简单来说,实现了一个任务队列,每个任务可以自己选择拆分当前任务并添加到任务队列中,线程池中空闲的线程会主动执行任务队列中的任务,当然ForkJoinPool类肯定不会如此简单的设计,但大体上的功能就是如此,具体如何设计...

2018-07-11 17:52:38 209

原创 Jenkins部署实例(javaweb与vue 前后端项目)

记录下jenkins部署的方式,便于以后查找 1.jenkins环境安装 这部分,由于使用的已经安装好环境的服务器,因此不做记录,可以参考官方文档,或者谷歌 2.jenkins部署maven打包的javaweb工程 2.1 在左侧菜单中点击新建(如果没有该菜单,请检查是否登录,和登录用户权限) 填入item名称 选择 构建一个maven项目 此处可以直...

2018-07-09 13:51:10 5539

原创 javaweb 文件下载

本文总结,javaweb下载文件遇到的各种问题 1.html5支持的文件下载 非常简单代码如下:a download="下载文件.txt">下载文件a>这种方式不支持ie浏览器 2.需要后台支持的文件下载: 前端代码如下:function getRootPath() { //获取当前网址,如: http://localhost:8083/uimcardprj/s

2018-01-12 11:32:37 1247

原创 jenkins tomcat热部署,任务线程重复启动的解决方法

项目使用jenkins热部署发布,导致web工程中的任务队列重复启动,即重新发布的工程自己启动了自己的任务线程,但之前老项目的任务线程没有被终止 工程任务线程如下所示:@PostConstructpublic void messageListener() { new Thread(new Runnable() { @Override public void

2017-10-19 17:42:20 1753 1

原创 spring-boot + websocket 打包问题汇总

1.springboot打包工程时不需要tomcat插件支持添加生命周期使得tomcat插件无效<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope></depend

2017-10-18 16:42:39 4963 1

原创 redis 消息发布订阅与消息队列

redis可以实现消息的发布订阅,可以用作java中的订阅发布模式纯粹redis的发布订阅 redis客户端1中使用命令 SUBSCRIBE talk 可以订阅通道 talk上的消息 redis客户端2中也同样运行这个命令一起订阅通道 talk redis客户端3使用命令 PUBLISH talk 'test' 可以发现客户端1和2同时受到消息java实现 可以通过spring-re

2017-10-11 11:30:04 21372 4

原创 浏览器js定位(百度地图与高德地图)

最近项目中使用到了浏览器端定位记录下来 目前已知有两种方式实现定位 1.H5自带定位,可以获取到当前的gps坐标,然后使用第三方工具(百度,高德等)转换坐标即可获取当前的地理位置信息,具体代码网上很多,但我试了下,不知道是什么原因,我本地不能使用这种定位方式,可能是谷歌浏览器只支持https连接的浏览器定位造成的 2.使用第三方工具提供的定位工具定位,主要考察了两种工具,百度与高德 百度:<

2017-10-09 17:55:06 5116

原创 ion-infinite-scroll实现上拉刷新

直接上代码 html:<ion-content><ion-infinite-scroll ng-if="moredata" on-infinite="loadMore()" distance="5%" style="height: 1px;" ></ion-infinite-scroll> </ion-content>ion-infinite-scroll要写在ion-content才有效

2017-08-03 16:13:32 1001 1

原创 js,angularjs 图片上传服务器,并解决照片旋转问题,前端图片压缩上传

手机网站 App 开发时遇到用户拍照上传的场景,照片的大小一般不低于2M ,用户网络不好时会导致上传的时候异常卡顿,因此考虑使用前端图片压缩,再上传服务器.主要使用canvas来重新绘制前端图片,然后使用toDataURL方法拿到图片被压缩之后的的 Base64 编码数据,上传编码数据,后台解码还原成图片,并根据前端传递的图片旋转信息将图片做相应的旋转处理,废话不多说,直接上代码,虽然说的是 an

2017-07-29 11:33:40 1458

原创 angularjs 简单笔记

最近项目使用angularjs1.5,由于之前没有接触过angularjs,开发时磕磕绊绊,现在把开发时遇到的一些问题记录下来,一遍日后查找1、获取当前web的根路径,js代码var ctx = function() { var path = window.location.href; var pathName = window.location.pathname; var

2017-07-25 09:06:55 393

原创 SimpleDateFormat 线程安全的解决方案--DateTimeFormatter

SimpleDateFormat并不是线程安全的,因为在SimpleDateFormat中持有一个Calendar类对象在Parse 和Format方法时会调用calendar.setTime(date)方法,如果在多线程环境下运行,会出现线程安全问题,为了解决这个问题,可以使用以下方法: 1.需要的时候创建新实例 2.使用同步:同步SimpleDateFormat对象 3.使用ThreadL

2017-06-15 11:40:19 10330 2

原创 NIO 使用的简单例子

1.FileChannel fileChannel 是阻塞的,不可以运行在非阻塞模式,因此不能被注册到 Selector 上 简单例子如下:这里写代码片

2017-06-05 17:57:18 492

转载 utf8_general_ci、utf8_unicode_ci和utf8_bin的区别

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。utf8_general_cs 区分大小写,如果用户名和邮箱用这个就会照成不良后果。utf8_bin: compare strings by the binary value of each character in the string 将字符串每个字符串用二进制数据编译存储,区分大小写,而且可以存二进制的内容。

2017-06-01 14:50:37 495

原创 两道多线程打印题目

1.每个线程打印不同的字符public class ThreadPrint{ public static void main(String[] args) throws InterruptedException { String str = "ABCD"; int index = 4; Character c;

2017-05-27 10:19:22 411

转载 synchronized 中的wait/notify 与 Condition 中的await/single的区别

作者:Calvin Carson 链接:https://www.zhihu.com/question/50870223/answer/145177436 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1)java 6 及以后,完成同样的功能,一般来说Lock及Condition 性能上没有优势; 2)Lock 接口的 lockInterruptibly()

2017-05-26 10:52:44 2156

转载 怎么理解 Condition

在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,ReentrantLock(重入锁)是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer(同步器),确切的说是ReentrantLock的一个内部类继承了AbstractQueued

2017-05-26 10:30:19 314 1

原创 单例模式---懒汉与饿汉模式和静态内部类实现

单例模式是最基本的 java 设计模式之一 主要有两种设计方法,主要分为饿汉式与懒汉式饿汉式比较简单,直接使用常量即可,主要代码如下: private static final SingleModel INSTANCE = new SingleModel(); private SingleModel() { } public static SingleModel g

2017-05-25 11:44:26 2525

原创 jdbc 类加载器,与 spi 服务机制

这几天在看java 类加载机制,看到 spi 服务机制破坏了双亲委派模型,特地研究了下典型的 spi 服务 jdbc 驱动 首先运行一下代码,查看 mysql jdbc 驱动的类加载(maven 项目已经引进 jdbc 驱动依赖,版本为5.1.41)public static void main(String[] args) { Enumeration<Driver> dr

2017-05-24 17:56:10 3395

原创 java类加载器与双亲委派模型

java 类加载时使用双亲委派模型进行类加载类的声明周期: 加载:”加载”是”类加载”过程的一个阶段,此阶段完成的功能是:   通过类的全限定名来获取定义此类的二进制字节流   将此二进制字节流所代表的静态存储结构转化成方法区的运行时数据结构   在内存中生成代表此类的java.lang.Class对象,作为该类访问入口.验证:连接阶段第一步.验证的目的是确保Class文件的字节流中信息

2017-05-24 17:00:30 399

原创 mysql学生成绩排名,分组取前 N 条记录

score表:CREATE TABLE `score` ( `student_id` int(10) DEFAULT NULL, `class_id` int(10) DEFAULT NULL, `score` int(5) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci字段

2017-05-22 18:05:36 6786

原创 txt,图片等实现默认下载而不是打开图片

在网页上,如果我们的超链接的地址对应的是一个jpg文件,txt文件等,点击链接时,浏览器默认的是打开这些文件而不是下载,那么如何才能实现默认下载呢。 如果需要实现默认点击弹出下载框,需要特殊处理 前端代码:function downloadFile(docUrl, fileName) { window.location.href = "<%=basePath%>ajax/down

2017-05-18 16:39:13 3420

原创 ArrayList 与 LinkedList性能比较

今天看到有人提问 arrayList 与 LinkedList 性能比较的问题,为此专门测试了下两者的插入,删除,访问效率 经过测试大概得出以下结论: ArrayList 与 LinkedList 在顺序插入时(末尾插入),数据量较小时(100000以内)LinkedList的插入效率优于 arrayList(但不明显,最多几倍的差距),但数据量更大时(40w 以上)此时顺序插入 arrayl

2017-05-04 11:14:01 541

原创 effective java 读书笔记---第11章 序列化

这部分暂不阅读,以后再补74.谨慎的实现Serializable 接口

2017-04-25 18:13:10 234

原创 effective java 读书笔记---第10章 并发

66.同步访问共享的可变数据

2017-04-25 18:07:32 288

原创 effective java 读书笔记---第9章 异常

57.只针对异常的情况才使用异常

2017-04-24 23:00:54 229

原创 effective java 读书笔记---第8章 通用程序设计

45.将局部变量的作用域最小化

2017-04-23 23:57:49 281

原创 effective java 读书笔记---第7章 方法

38.检查参数的有效性 需要在方法入口处检查参数有效性 对于公有方法,需要使用@throws 标签说明违反参数值限制时抛出的异常 对于 private 方法可以使用断言(assertion)来检查它们的参数例子: private static void method(int i) { assert i > 0; System.out.println(i)

2017-04-22 23:44:22 214

原创 effective java 读书笔记---第六章 枚举与注解

30.用 enum 代替int 常量 不可修改,有意义的,对打印友好 枚举类型可以声明抽象方法,每个常量主体都需要自己实现 实例代码如下:public enum TestMenu{ PLUS { @Override double apply(double x, double y) { return x +

2017-04-22 19:28:28 292

原创 effective java 读书笔记---第五章 泛型

23.请不要在新代码中使用原生态类型

2017-04-22 18:25:36 242

转载 jsp 前端防止 xss 注入攻击

对输出到 html 上的值做过滤操作,主要可以使用如下两种方式:HtmlEncode方式:var HtmlEncode = function(str){ var hex = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'); var preescape = str; var e

2017-04-19 11:11:46 8651

原创 effective java 读书笔记---第四章类与接口

20170411 13.要使类与成员的可访问性最小

2017-04-17 00:01:59 323

原创 mysql数据库存储emoji表情字符解决方案

最近在做微信端 web 程序开发,IOS端用户在输入时可能输入 emoji 字符,由于 utf8的 mysql 数据库并不支持存储这种字符,会报Incorrect string value: ‘\xF0\x9F\x98\x97\xF0\x9F…’ 的类似错误 第一眼看到这个错误首先想到的解决方案为 java 端编码存储于解码输出,只需要在可能出现这种错误的地方使用如下代码即可解决这个问题 编码:

2017-04-10 10:50:15 1624

原创 effective java 读书笔记---第三章对于所有对象都通用的方法

20170409 8.覆盖 equals 方法需要遵守的约定 自反性:非空对象,自身与自身equals返回 true 对称性:非空对象a.equals(b) 与 b.equals(a)结果一致 传递性:非空对象 a与 b 相等 b 与 c 相等则 a 与 c 必然相等 一致性:非空对象 a.equals(b)的返回结果与方法调用次数无关(对象中的任何信息没有被修改) 非空性:任何与空对象

2017-04-10 10:00:13 332

原创 java 编程思想 读书笔记

从事 java 开发两三年了,最近开始重新看 java 编程思想,记录一下读书所得,以备以后查询,持续更新流程控制 break continue 在循环中的使用,这两者都可以配合标签来跳出循环,不使用标签时 continue 直接跳转到本次循环的下一次循环,继续循环;break 直接跳出循环;使用标签时(多重循环),continue 会直接跳转到标签所在循环位置,并继续下一步循环;break 使用

2017-04-05 21:43:42 310

原创 mybatis xml 映射文件 sql include 的用法

mybatis xml 文件中对于重复出现的sql 片段可以使用标签提取出来,在使用的地方使用标签引用即可具体用法如下:<sql id="someSQL"> id,name</sql><select id="selectSome" > select <include refid="someSQL"/> from t </select

2017-03-24 11:10:58 39026 8

原创 支付接口

1、微信JSSDK支付(使用微信浏览器的web支付) 主要有三种api接口 a、下单 使用微信提供接口下单,文档链接 需要关注的是签名生成方式 示例代码如下 StringBuffer signStr = new StringBuffer(); signStr.append("appid=" + appid + "&"); signStr.append(

2017-03-13 13:22:00 786

空空如也

空空如也

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

TA关注的人

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