自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 有关java对象拷贝操作的总结

一、引言常用的拷贝方式:手动get&set实现。 通过Cglib的BeanCopier实现。 通过Apache的BeanUtils实现。 通过Apache的PropertyUtils实现。 通过Spring的BeanUtils实现。(此模块先对常用拷贝方式进行总结,后文会详细介绍深拷贝&浅拷贝的区别以及实现方式。)二.常用拷贝方式之间的区别1. 手动get&set实现:简单,粗暴,高性能2. 通过Cglib的BeanCopier实现(使用动态

2021-12-09 10:25:37 1087

原创 记录项目中遇到的一次jvm调优

情况:项目的导出导入功能突然用不了了,但是服务方(导入导出单独拆分出来了一个数据处理服务)重启后就又可以用了。客户端调用rpc服务时,调用前的log有打印,但是打印后(调用服务后)就没有下文直接卡住了(还好是异步操作不影响主流程),客户端无报错。服务方没有发现请求log,也就是说,请求没有打到服务方上来。但是项目一直稳定运行,且最近也没上线无变动,也查了下客户端调用的服务方ip,无误后来ps -aux | grep java看了下-Xms(初始堆大小)和-Xmx(最大堆大小)都是2G

2021-09-06 11:13:12 212

转载 cors实现请求跨域

简介CORS:全称"跨域资源共享"(Cross-origin resource sharing)。CORS需要浏览器和服务器同时支持,才可以实现跨域请求,目前几乎所有浏览器都支持CORS,IE则不能低于IE10。CORS的整个过程都由浏览器自动完成,前端无需做任何设置,跟平时发送ajax请求并无差异。so,实现CORS的关键在于服务器,只要服务器实现CORS接口,就可以实现跨域通信。请求...

2019-09-22 17:20:11 348

原创 Redis-bitmaps的介绍与应用

Redis-bitmaps·什么是bitmapsBitmaps并不是实际的数据类型,而是定义在String类型上的一个面向字节操作的集合。因为字符串是二进制安全的块,他们的最大长度是512M。字节操作可以分为两类:恒定时间的单个字节操作如将一个字节设置为1或者0、或者获取一个字节的值,和批量字节操作如在给定的字节范围内计算设置字节的数量。Redis中bitma...

2019-09-16 16:26:21 811

原创 基于Redis-bitmaps自动重命名工具类

github链接:https://github.com/striner/javaCode/blob/master/WRedisHelperimport com.bj58.bic.pan.scf.constants.CfgConstant;import com.bj58.bic.pan.scf.exception.WRedisException;import com.bj58.spa...

2019-09-12 14:10:16 241

原创 使用ThreadLocal或DateFormatUtils解决SimpleDateFormat线程安全问题

1.使用ThreadLocal,令每个线程创建一个当前线程的SimpleDateFormat的实例对象。例:SuffixNameUtil.java 获取时间戳后缀名Utilpackage com.bj58.bic.pan.scf.utils;import org.apache.commons.collections.MapUtils;import org.apache.log...

2019-09-12 13:33:34 750

转载 redis的五大数据类型实现原理

目录1、对象的类型与编码2、字符串对象3、列表对象4、哈希对象5、集合对象6、有序集合对象7、五大数据类型的应用场景8、内存回收和内存共享9、对象的空转时长  在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这些对象系统也就是前面说的五大数据类型,每一种数据类型都至少用到了一种数据结构。...

2019-08-28 13:31:17 870

转载 SimpleDateFormat并发隐患及其解决-Joda-Time

SimpleDateFormat被大量使用于处理时间格式化过程,但时间转换过程遇到的多线程并发使用场景并不多见,这其中存在严重并发隐患,本文就此问题展开分析并介绍几种可行的解决方案。SimpleDateFormat被大量使用于处理时间格式化过程,由于该类在创建时会指定一个pattern用于标明固定的时间格式,所以在使用中,一般会创建一个作用域较大(static修饰或某类的私有属性)的对象用于重...

2019-08-28 09:33:13 267 1

转载 SimpleDateFormat线程不安全及解决办法

以前没有注意到SimpleDateFormat线程不安全的问题,写时间工具类,一般写成静态的成员变量,不知,此种写法的危险性!在此讨论一下SimpleDateFormat线程不安全问题,以及解决方法。为什么SimpleDateFormat不安全?直接上一个例子,日期格式化成字符串:package com.anjz.test.simpleDateFormat;import java....

2019-08-27 19:40:23 236

转载 深入了解Redis内存模型

一前言Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用...

2019-08-25 19:52:04 133

转载 Java 正则表达式

Java 正则表达式正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。正则表达式实例一个字符串其实就是一个简单的正则表达式,例如Hello World正则表达式匹配 "Hello World" 字符串。.(点号)也是一个正则表达式,它匹配任何一个字符如:"a" 或 "1"。下表列出了一...

2019-08-25 19:03:00 162

原创 Redis知识点整理(全)

Redis安装及常用命令整理1.Redis安装过程官网:https://redis.io/download#下载、解压、编译:wget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5make#将Redis启动路径添加至环境变量中,方便对...

2019-06-27 10:24:33 3183

原创 Netty笔记

Netty简介:Netty是建立在NIO基础之上,Netty在NIO之上又提供了更高层次的抽象。在Netty里面,Accept连接可以使用单独的线程池去处理,读写操作又是另外的线程池来处理。Accept连接和读写操作也可以使用同一个线程池来进行处理。而请求处理逻辑既可以使用单独的线程池进行处理,也可以跟放在读写线程一块处理。线程池中的每一个线程都是NIO线程。用户可以根据实际情况进行组...

2019-06-13 21:09:05 181

原创 sort排序命令,uniq去重命令,cut提取文本(分割)命令,wc统计命令 Linux四大文本处理命令详解

sortsort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。sort语法[root@www ~]# sort [-fbMnrtuk] [file or stdin]选项与参数:-f :忽略大小写的差异,例如 A 与 a 视为编码相同;-b :忽略最前面的...

2019-05-31 15:56:05 443

转载 Redis常见面试题

1、什么是Redis?Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储...

2019-03-10 18:52:28 275

转载 Redis及缓存雪崩、缓存穿透

本文大纲一、简介二、Redis持久化方案三、Redis的缓存雪崩,缓存穿透,缓存预热,缓存更新,缓存降级等问题及解决方案一 、简介1.Redis的特点Redis是一种非关系数据库(不会像MySQL一样多个表直接存在直接关联关系),也是一种内存型数据库Redis是单线程的,并且是直接基于内存的,所以执行效率会非常高为什呢Redis是单线程的呢?(经典面试题) 官方回答...

2019-03-10 18:42:56 224

转载 为什么说Redis是单线程的以及Redis为什么这么快!

一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你《为什么说R...

2019-03-10 18:29:13 241

转载 一致性Hash算法

一、Redis集群的使用我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离。如下所示:同样类似于数据库,当单表数据大于500W的时候需要对其进行分库分表,当数据量很大的时候(标准可能不...

2019-03-10 18:12:48 185

原创 jQuery 参考手册

目录jQuery 选择器jQuery 事件方法jQuery 效果函数jQuery 文档操作方法jQuery 属性操作方法jQuery CSS 操作函数jQuery Ajax 操作函数jQuery 遍历函数jQuery 数据操作函数jQuery DOM 元素方法jQuery 核心函数jQuery 属性相关参考手册 jQuery 选择器选...

2019-02-24 15:03:19 463

原创 HTML 参考手册

目录按字母顺序排列按功能类别排列基础格式表单框架图像音频/视频链接列表表格样式/节元信息编程 按字母顺序排列标签 描述 <!--...--> 定义注释。 <!DOCTYPE>  定义文档类型。 <a> 定义锚。 <abbr> 定义缩写。...

2019-02-24 14:56:43 1464

原创 CSS 选择器参考手册

CSS3 选择器在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。"CSS" 列指示该属性是在哪个 CSS 版本中定义的。(CSS1、CSS2 还是 CSS3。)选择器 例子 例子描述 CSS .class .intro 选择 class="intro" 的所有元素。 1 #id #firstname 选择 id="f...

2019-02-24 14:53:45 184

原创 CSS属性参考手册

目录CSS3 动画属性(Animation)CSS 背景属性(Background)CSS 边框属性(Border 和 Outline)Box 属性Color 属性Content for Paged Media 属性CSS 尺寸属性(Dimension)可伸缩框属性(Flexible Box)CSS 字体属性(Font)内容生成(Generated Cont...

2019-02-24 14:50:55 375

转载 Java8的HashMap详解(存储结构,功能实现,扩容优化,线程安全,遍历方法)

文章转自:https://blog.csdn.net/login_sonata/article/details/76598675JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理,文章末尾附有HashMap的put方法和resize方法的源码解析。简介Java为数...

2019-01-13 18:17:45 360

转载 Java中内存泄漏

以下内容转载自:http://blog.csdn.net/anxpp/article/details/51325838  Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存。理论上Java中所有不会再被利用的对象所占用的内存,都可以被GC回收,但是Java也存在内存泄露,但它的表现与C++不同。JAVA 中的内存管理    要了解Java中...

2019-01-13 16:33:59 126

转载 GC-谈谈“生死”

技术点:1、jvm运行时数据区组成结构:方法区、虚拟机栈、本地方法栈、堆和程序计数器。下面是我从百度找的图片:对于每一个模块的作用,笔者就不再展开了,如果需要的话,我会在后面可以专门挑一天写一个博文,专门介绍每个部分的作用和运行状态。话虽如此,知识本来就是比较发散的东西,我就说几点我面试过程中遇到最多问题:①对象实例存在哪?存在堆中。②对象引用存在哪啊?存在虚拟机栈(注意:我们平时...

2019-01-13 16:12:11 129

原创 fail-fast(快速失败)机制和fail-safe(安全失败)机制的介绍和区别

fail-fast和fail-safe的区别: fail-safe允许在遍历的过程中对容器中的数据进行修改,而fail-fast则不允许。fail-fast ( 快速失败 )fail-fast:直接在容器上进行遍历,在遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出ConcurrentModificationException异常导致遍历失败。java.util包下的集合类都是快速...

2019-01-13 14:59:18 11757 7

转载 Java集合类之HashMap原理小结

1. 认识HashMapHashMap是用来存储key-value键值对的数据结构。当我们创建HashMap的时候,如果不指定任何参数,它会为我们创建一个初始容量为16,负载因子为0.75的HashMap (load factor,记录数/数组长度)。当loadFactor达到0.75或指定值的时候,HashMap的总容量自动扩展一倍。它的底层采用Entry数组来保存所有的key-val...

2019-01-12 18:26:02 139

转载 Java HashMap的死循环

在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo...

2019-01-12 18:03:48 120

原创 AES工具类的实现

AES简介:AES是一种对称加密算法,用来替代原先的DES加密算法。对称加密算法对称加密算法是应用较早的加密算法,技术成熟。加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合。缺点是密钥的传输比较麻烦。常见的对称加密算法有:AES算法,DES算法,3DES算法等等。非对称加密算法非对称加密算法的加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问...

2018-12-19 21:27:00 1069

转载 十分钟读懂AES加密算法

偶阅博客一篇,漫画式的讲解十分有趣,故转之。原文地址:https://blog.csdn.net/lrwwll/article/details/78069013 ------------------------------------------------ 分割线 ------------------------------------------------今天看了Moserw...

2018-12-19 21:08:58 2735

原创 IDEA环境下api接口的生成

第一步: 打开“Tools”下的“Generate JavaDoc...”第二步:选择需要生成JavaDoc的范围,选择输出目录,设置编码。然后点击“OK”就一切Okay了~此时打开之前指定的文档输出目录看看:查看文档的方式:双击allclasses-frame.html文件、或者直接把文件拖到浏览器上、再或者右键用浏览器打开  and so on...效果如下:...

2018-12-19 20:11:15 2493

原创 FTP常用命令(带操作实例)

1. 连接方式一:ftpopen IP地址/域名方式二: ftp ip地址/域名2. 列出当前远程目录的内容ls/dirls -a:列出所有文件,包含隐藏文件. -l:列表形式,包含文件的绝大部分属性. -R:递归显示. 3. 查看当前目录pwd : 查看远程服务器上坐在的目录lcd : 查看当前的本地目录4....

2018-12-01 15:56:22 1312

原创 500 OOPS: vsftpd: refusing to run with writable root inside chroot() 错误的解决方式

之前在centOS7上搭建好了ftp服务器,然而在用windows的cmd远程登录ftp服务器时却报了一下错误:网上说什么的都有,最后在/etc/vsftpd/vsftpd.conf配置文件中添加了以下两句终于解决了问题。chroot_local_user=YES ## 原本就有,取掉注释就好allow_writeable_chroot=YES ## 添加修改后重启ftp...

2018-11-30 21:13:21 19314 5

转载 linux下查看进程+杀死进程方法大全

转自:https://blog.csdn.net/andy572633/article/details/7211546 常规篇: 首先,用ps查看进程,方法如下:$ ps -ef……smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx       1823  1822  0 11:38 ?    ...

2018-11-30 16:27:20 56650

转载 【Redis深入】字典rehash图解

引入在讲rehash之前,我们先回顾一下字典的结构1.字典dict.h/dict的源码/* * 字典 */typedef struct dict { // 类型特定函数 dictType *type; // 私有数据 void *privdata; // 哈希表 dictht ht[2]; // rehash 索引...

2018-08-29 09:27:24 507

转载 MongoDB常用操作命令大全

如果想创建一个“myTest”的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫“myTest”的数据库。 一、数据库常用命令1、Help查看命令提示helpdb.help();db.yourColl.help();db.youColl.find().help();rs....

2018-07-20 10:22:51 205

原创 Mongodb和mysql的区别

1.Mongodb简介及优缺点分析Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。存储方式:虚拟内存+持久化。查询语句:是独特的Mongodb的查询方式。适合场景:事件的记录,...

2018-07-19 14:36:14 21905

原创 个人笔记之数据库相关概念整理(I)

○数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统。数据(data)是描述事物的符号记录。数据库(DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合,是存放数据的仓库。数据库管理系统(DBMS)和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统。数据库系统(DBS)是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DBA)组成...

2018-07-10 16:04:44 265

原创 Velocity常用语法

一、基本语法1、"#"用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#iinclude、#parse、#macro等;如:#if($info.imgs)<img src="$info.imgs" border=0>#else<img src="noPhoto.jpg">#end2、"$"用来标识一个对象(或理解

2018-06-12 13:36:31 7003

原创 有关Spring MVC知识点的总结

Spring MVC五大组件DispatcherService (前端控制器)接受请求,请求配置在HandlerMapping中.基于HandlerMapping的配置,调用相应的模型来处理.HandlerMapping包含了请求路径与模型的对应关系.告诉DispatcherService请求路径与模型之间的关系.Controller (处理器)负责处理业务逻辑.modelModelAndView...

2018-05-24 20:09:48 3119 1

空空如也

空空如也

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

TA关注的人

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