- 博客(85)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 java8--List转为Map、分组、过滤、求和等操作
原文地址:https://blog.csdn.net/lu930124/article/details/77595585利用java8新特性,可以用简洁高效的代码来实现一些数据处理。定义1个Apple对象:public class Apple { private Integer id; private String name; private BigDecima...
2019-05-07 14:43:06
1229
转载 我们来谈谈“强软弱虚”四种引用
可以很清楚的看到手动完成GC后,软引用对象包裹的byte[]还活的好好的,但是当我们创建了一个10M的byte[]后,最大堆内存不够了,所以把软引用对象包裹的byte[]给干掉了,如果不干掉,就会抛出OOM。Java的内存分配和内存回收,都不需要程序员负责,都是由伟大的JVM去负责,一个对象是否可以被回收,主要看是否有引用指向此对象,说的专业点,叫可达性分析。当内存不足,会触发JVM的GC,如果GC后,内存还是不足,就会把软引用的包裹的对象给干掉,也就是只有在内存不足,JVM才会回收该对象。
2023-02-16 11:22:24
202
原创 理解和使用@DateTimeFormat和@JsonFormat注解
@JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较...
2019-11-08 15:59:54
568
1
转载 Mac OS 使用openssl生成RSA公钥和公钥
Mac OS 自带了openssl,可以直接在命令行中运行openssl。打开终端,进入指定目录下:cd Desktop/openssl//生成一个1024位的私钥genrsa -out rsa_private_key.pem 1024//利用私钥生成JAVA支持的PKCS8类型的私钥pkcs8 -topk8 -inform PEM -in rsa_private_key...
2019-08-25 10:58:26
293
转载 jvm优化必知系列——监控工具
通过上一篇的jvm垃圾回收知识,我们了解了jvm对内存分配以及垃圾回收是怎么来处理的。理论是指导实践的工具,有了理论指导,定位问题的时候,知识和经验是关键基础,数据可以为我们提供依据。在常见的线上问题时候,我们多数会遇到以下问题:内存泄露 某个进程突然cpu飙升 线程死锁 响应变慢...等等其他问题。如果遇到了以上这种问题,在线下可以有各种本地工具支持查看,但到线上了,就没有...
2019-08-09 17:19:58
162
原创 分析linux日志常用命令
整理了一些分析linux日志的常用命令:cat:小文件可以用cat打开,大文件用cat会占用过的系统资源。cat -n 可以显示行号 more:可以分页展现文件内容,Enter显示下一行,空格键显示下一页,F键显示下一屏内容,B键显示上一屏内容 less: 比more命令更丰富,支持内容查找,并且能高亮显示。/字符串:向下搜索"字符串",?字符串:向上搜索"字符串",...
2019-08-07 22:53:24
392
转载 Spring 源码分析:不得不重视的 Transaction 事务
业务系统的数据,一般最后都会落入到数据库中,例如MySQL、Oracle等主流数据库,不可避免的,在数据更新时,有可能会遇到错误,这时需要将之前的数据更新操作撤回,避免错误数据。Spring的声明式事务能帮我们处理回滚操作,让我们不需要去关注数据库底层的事务操作,可以不用在出现异常情况下,在 try / catch / finaly 中手写回滚操作。Spring的事务保证程度比行业...
2019-08-05 15:26:51
268
转载 RabbitMQ:消息发送确认 与 消息接收确认(ACK)
默认情况下如果一个 Message 被消费者所正确接收则会被从 Queue 中移除如果一个 Queue 没被任何消费者订阅,那么这个 Queue 中的消息会被 Cache(缓存),当有消费者订阅时则会立即发送,当 Message 被消费者正确接收时,就会被从 Queue 中移除消息发送确认发送的消息怎么样才算失败或成功?如何确认?当消息无法路由到队列时,确认消息路由失败。消...
2019-08-02 17:36:01
2817
转载 RabbitMQ(四)消息确认(发送确认,接收确认)
1.为什么要进行消息确认?2.rabbitmq消息确认 机制是什么样的?3.发送方如何确认消息发送成功?什么样才算发送成功?4.消费方如何告知rabbitmq消息消费成功或失败?5.使用spring的代码示例1.为什么要进行消息确认?经常会听到丢消息的字眼, 对于前面的demo来说,就存在丢消息的隐患.发送者没法确认是否发送成功,消费者处理失败也无法反馈.没有消息确...
2019-08-02 15:55:21
494
转载 Spring Bean 初始化之InitializingBean, init-method 和 PostConstruct
概述从接口的名字上不难发现,InitializingBean 的作用就是在 bean 初始化后执行定制化的操作。Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,常用的设定方式有以下三种:通过实现 InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;...
2019-07-29 20:09:00
1014
转载 Spring中的InitializingBean接口的使用
InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。测试,如下:import org.springframework.beans.factory.InitializingBean;public class TestInitializingBean impleme...
2019-07-29 19:55:49
134
转载 IDE远程调试可执行jar包
要想Debug,首先得需要在编译时打开debug选项,这样生成的class文件才能支持debug过程。其次,RemoteDebug过程是在两个不同的VM实例间进行了,这就得需要一个通信方式了。常用的是Socket了!因此设置中会涉及到一些端口设置的。在启动程序时,将以下参数选项添加到自定义的命令行中,程序就会以支持RemoteDeubg的方式启动。java -Xdebug -Xrunjd...
2019-07-29 18:00:46
415
原创 jar包发布读取资源文件
private void initProvinceCodeToRedis() { try { InputStream input = getClass().getClassLoader().getResourceAsStream("xlsx/provincial_code.xlsx"); String fileName = "co...
2019-07-27 20:02:33
132
转载 Java NIO?看这一篇就够了!
现在使用NIO的场景越来越多,很多网上的技术框架或多或少的使用NIO技术,譬如Tomcat,Jetty。学习和掌握NIO技术已经不是一个JAVA攻城狮的加分技能,而是一个必备技能。在前面2篇文章《什么是Zero-Copy?》和《NIO相关基础篇》中我们学习了NIO的相关理论知识,而在本篇中我们一起来学习一下Java NIO的实战知识。全文较长,建议先马后看(记得关注不迷路)。一、概述NIO...
2019-07-24 21:21:12
126
转载 Git如何在不提交当前分支的情况下切换到其它分支进行操作——git stash
假如现在的Bug你还没有解决,而上边又给你派了一个新的Bug,而这个Bug相比较现在正在苦思冥想的Bug比较容易解决。你想先解决新的Bug,可是之前的Bug还没有解决完而不能提交。怎么办?解决方法:在其他分支上另开炉灶解决。首先你需要将此刻正在解决Bug的当前分支“储藏”起来。例假如此时正在你在当前分支dev上已进行了Bug修改但还未提交。此时你想去解决刚派下来的另一个Bug。而你...
2019-07-22 14:38:29
710
转载 关于request.getServletPath(),request.getContextPath()等
<servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/abc/def/*</url-pattern><!-- 注意此处 --> </servlet-mapping>1. getServletPa...
2019-06-26 09:55:06
270
转载 常用Linux日志查看命令
查看Web应用程序的运行日志解决运行时异常、出错是一项基本功。在Web程序中我们通过日志系统(比如log4j)向外部文件(比如log.txt)写入了程序运行时的某些日志(一般都会给日志行头加上tag),日志输出了程序中约定的一些变量(可能是某个订单号、某条服务码、请求ID值等标识)的值。如果哪个订单处理失败了,或者某个服务运行异常了,此时我们就可以根据程序中输出的这些tag(标签)信息定位日志...
2019-06-14 22:11:34
192
转载 Java编程:删除 List 元素的三种正确方法
删除 List 中的元素会产生两个问题:删除元素后 List 的元素数量会发生变化;对 List 进行删除操作可能会产生并发问题;我们通过代码示例演示正确的删除逻辑package com.ips.list;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java....
2019-06-05 20:32:56
199
原创 @PostConstruct和@PreDestroy初始化和销毁函数
在Spring中,实现 InitializingBean和DisposableBean接口或在bean配置文件中指定 init-method 和 destroy-method 都可以初始化和销毁回调函数。在这篇文章中,我们将介绍如何使用 @PostConstruct 和 @PreDestroy 注解来做同样的事情。注:@PostConstruct和@PreDestroy 标注不属于 Sprin...
2019-06-05 02:30:32
540
转载 Java框架 Spring 核心机制
概念轻量级的(面向切面AOP)、(IOC控制反转)容器框架。Spring优点1.降低组件之间的耦合性2.专注于自己业务逻辑,统一的行为(日志、安全等)抽象出来统一处理3.易于单元测试4.方便事物处理5.Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部6 . spring对于主流的应用框架提供了集成支持,hedb7...
2019-06-04 22:44:54
199
转载 Mybatis使用之参数传递
https://blog.csdn.net/crave_shy/article/details/45872375一:简介主要记录Mybatis是如何映射传递的参数的。分四种来记录:1、java基本类型的传递、2、Java对象形式传递 3、多参数传递4、集合类型参数传递二:具体方式2.1 java基本类型以整形为...
2019-05-17 19:59:26
105
原创 MySQL date、datetime和timestamp类型的区别
date和datetime、timestamp 的区别date保存精度到天,格式为:YYYY-MM-DD,如2016-11-07 datetime和timestamp精度保存到秒,格式为:YYYY-MM-DD HH:MM:SS,如:2016-11-07 10:58:27 因此如果只需保存到天的字段(如生日)用date就可以了。datetime 和timestamp两者都是时间类型字段...
2019-05-13 17:52:51
4258
原创 Mysql里的Explain说明
对于mysql的执行计划可以在select前添加Explain来实现,它可以告诉我们你的语句性能如何。下面是对explain的具体说明,也都是官方的,以后进行参考。id SELECT识别符。这是SELECT的查询序列号 select_type SELECT类型,可以为以下任何一种: SIMPLE:简单SELECT(不使用UNION或子查询) PRIM...
2019-05-12 10:32:03
71
转载 MySQL索引原理及慢查询优化
原文:https://tech.meituan.com/2014/06/30/mysql-index.html背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求...
2019-05-11 17:46:54
90
转载 多个单列索引和联合索引
建索引的几大原则1、最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。2、=和in可以乱序,比...
2019-05-10 15:45:34
1295
转载 MySql Lock wait timeout exceeded该如何处理?
转自:https://ningyu1.github.io/site/post/75-mysql-lock-wait-timeout-exceeded/这个问题我相信大家对它并不陌生,但是有很多人对它产生的原因以及处理吃的不是特别透,很多情况都是交给DBA去定位和处理问题,接下来我们就针对这个问题来展开讨论。Mysql造成锁的情况有很多,下面我们就列举一些情况:执行DML操作没有comm...
2019-05-05 09:52:04
1107
原创 mysql: you can't specify target table 问题解决
首先创建一个表:CREATE TABLE `t1` (`id` INT(11) NULL DEFAULT NULL,`name` VARCHAR(20) NULL DEFAULT NULL)插入几条数据:mysql> select * from t1;+------+------+| id | name |+------+------+| 1 | ch...
2019-04-28 19:42:20
8758
转载 Explain SQL语句性能分析命令
原文https://blog.csdn.net/hzy38324/article/details/44921299Explain的作用是生成一个QEP(查询执行计划),可以帮助我们在不真正执行某个sql语句时,就看到mysql怎样执行,这样方便我们去分析sql指令的好坏。执行如下语句Explain select * from emp where empno = 3333\G对于返回...
2019-04-26 20:00:09
190
转载 Redis常用命令
1)连接操作命令quit:关闭连接(connection) auth:简单密码认证 help cmd: 查看cmd帮助,例如:help quit2)持久化save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据保存到磁盘的Unix时戳 shundown:将数据同步保存到磁盘,然后关闭服务3)远程服务控制info:提供服务器的...
2019-04-23 15:25:16
110
转载 使用jedis操作redis常用方法
,在redis入门及在商城案例中的使用中简单介绍了下使用jedis如何操作redis,但是其实方法是跟redis的操作大部分是相对应的。1、String类型操作public class StringTest { Jedis jedis; @Before//该注解下的方法在@Test执行之前执行 public void before(){ //创建连接...
2019-04-23 13:48:48
729
原创 CollectionUtils
CollectionUtils在真实项目中,是一个非常好用的工具类,使用非常频繁。它可以使代码更加简洁和安全。刚好在工作中利用这个工具类重构代码,顺便总结下分享分享:并集@Testpublic void testUnion(){ String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" }; Stri...
2019-04-22 09:40:14
249
原创 centos7安装redis
源文件安装:在CentOS和Red Hat系统中,首先添加EPEL仓库,然后更新yum源:sudo yum install epel-releasesudo yum update然后安装Redis数据库:sudo yum -y install redis安装好后启动Redis服务即可:sudo systemctl start redis这里同样可以使用re...
2019-04-19 17:43:24
84
转载 Git版本控制 —— IDE工具(IDEA)
本文介绍使用IDEA控制Git操作关联本地Git客户端首先要根据系统环境安装Git客户端然后使用File --> Settings --> Version Control --> Git配置客户端安装目录创建本地仓库根据项目要求创建自己的项目然后使用VCS--> Import into Version Control --&...
2019-04-15 18:02:50
224
转载 idea常用插件分享
1、activate-power-mode根据Atom的插件activate-power-mode的效果移植到IDEA上1.gif2、Alibaba Java Coding Guidelines阿里巴巴编码规约插件,极力推荐2.gif3、Background Image Plusidea背景修改插件,让你的idea与众不同,狂拽酷炫吊炸天。4、Free Mybati...
2019-02-28 13:44:02
264
转载 绝配:hexo+next主题及我走过的坑
所有内容都在themes/next文件夹下的config.yml文件里修改。官方文档里写的是有些配置需要将一部分代码添加到配置文件中,但其实不用,我们逐行看配置文件就会发现,有很多功能都已经放在配置文件里了,只是注释掉了,我们只需要取消注释,把需要的相关信息补全即可使用菜单栏 menu原生菜单栏有主页、关于、分类、标签等数个选项,但是在配置文件中是注释掉的状态,这里我们自行修改注释就行...
2019-02-22 13:17:15
1577
转载 免费图床
图片外链(图床)可以用于论坛、网站、评论、聊天等免费稳定好用的永久图片外链图床如果你知道更多免费图床网站,可以通过下方评论,我会添加到网页中以帮助更多人。 以下图片如果无法显示,说明图片外链失效,请使用能显示的图片外链图床网站. 图片外链网站均由不死鸟分享整理并索引测试。转载注明:https://lai.yuweining.cn/pic.html聚合图床展开目录支...
2019-02-19 20:51:20
7091
转载 换了电脑如何使用hexo继续写博客
前言我们知道,使用 Github+hexo 搭建一个个人博客确实需要花不少时间的,我们搭好博客后使用的挺好,但是如果我们有一天电脑突然坏了,或者换了系统,那么我们怎么使用 hexo 再发布文章到个人博客呢?如果我们还是按照之间我们总结的教程再次搭建一个博客,然后修改代码更换 hexo 主题等,各种配置特别繁琐,那么有没有一种方便的方法,直接使用我们之前搭建好的博客的源文件呢?操作步骤...
2019-02-19 17:45:22
414
1
转载 Nginx后端接口配置
upstream api.fcibook.com { server localhost:9161;} server { listen 80; server_name api.fcibook.com; location /abb { root /usr/local/web/m.fcibook.com/; ...
2019-01-23 17:20:59
4004
1
转载 idea使用docker插件
接着上一篇docker开启远程访问后,我们就可以通过idea使用docker插件把项目部署到docker了。首先我们先在idea安装docker插件:在setting中安装docker插件 1535529365951.png 1535529477982.png等待安装完成重启idea重启完成后,我们打开settings可以看到docker 15355...
2019-01-21 10:18:08
349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人