- 博客(118)
- 收藏
- 关注
原创 有关java对象拷贝操作的总结
一、引言常用的拷贝方式:手动get&set实现。 通过Cglib的BeanCopier实现。 通过Apache的BeanUtils实现。 通过Apache的PropertyUtils实现。 通过Spring的BeanUtils实现。(此模块先对常用拷贝方式进行总结,后文会详细介绍深拷贝&浅拷贝的区别以及实现方式。)二.常用拷贝方式之间的区别1. 手动get&set实现:简单,粗暴,高性能2. 通过Cglib的BeanCopier实现(使用动态
2021-12-09 10:25:37 1076
原创 记录项目中遇到的一次jvm调优
情况:项目的导出导入功能突然用不了了,但是服务方(导入导出单独拆分出来了一个数据处理服务)重启后就又可以用了。客户端调用rpc服务时,调用前的log有打印,但是打印后(调用服务后)就没有下文直接卡住了(还好是异步操作不影响主流程),客户端无报错。服务方没有发现请求log,也就是说,请求没有打到服务方上来。但是项目一直稳定运行,且最近也没上线无变动,也查了下客户端调用的服务方ip,无误后来ps -aux | grep java看了下-Xms(初始堆大小)和-Xmx(最大堆大小)都是2G
2021-09-06 11:13:12 207
转载 cors实现请求跨域
简介CORS:全称"跨域资源共享"(Cross-origin resource sharing)。CORS需要浏览器和服务器同时支持,才可以实现跨域请求,目前几乎所有浏览器都支持CORS,IE则不能低于IE10。CORS的整个过程都由浏览器自动完成,前端无需做任何设置,跟平时发送ajax请求并无差异。so,实现CORS的关键在于服务器,只要服务器实现CORS接口,就可以实现跨域通信。请求...
2019-09-22 17:20:11 344
原创 Redis-bitmaps的介绍与应用
Redis-bitmaps·什么是bitmapsBitmaps并不是实际的数据类型,而是定义在String类型上的一个面向字节操作的集合。因为字符串是二进制安全的块,他们的最大长度是512M。字节操作可以分为两类:恒定时间的单个字节操作如将一个字节设置为1或者0、或者获取一个字节的值,和批量字节操作如在给定的字节范围内计算设置字节的数量。Redis中bitma...
2019-09-16 16:26:21 808
原创 基于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 239
原创 使用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 748
转载 redis的五大数据类型实现原理
目录1、对象的类型与编码2、字符串对象3、列表对象4、哈希对象5、集合对象6、有序集合对象7、五大数据类型的应用场景8、内存回收和内存共享9、对象的空转时长 在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这些对象系统也就是前面说的五大数据类型,每一种数据类型都至少用到了一种数据结构。...
2019-08-28 13:31:17 866
转载 SimpleDateFormat并发隐患及其解决-Joda-Time
SimpleDateFormat被大量使用于处理时间格式化过程,但时间转换过程遇到的多线程并发使用场景并不多见,这其中存在严重并发隐患,本文就此问题展开分析并介绍几种可行的解决方案。SimpleDateFormat被大量使用于处理时间格式化过程,由于该类在创建时会指定一个pattern用于标明固定的时间格式,所以在使用中,一般会创建一个作用域较大(static修饰或某类的私有属性)的对象用于重...
2019-08-28 09:33:13 261 1
转载 SimpleDateFormat线程不安全及解决办法
以前没有注意到SimpleDateFormat线程不安全的问题,写时间工具类,一般写成静态的成员变量,不知,此种写法的危险性!在此讨论一下SimpleDateFormat线程不安全问题,以及解决方法。为什么SimpleDateFormat不安全?直接上一个例子,日期格式化成字符串:package com.anjz.test.simpleDateFormat;import java....
2019-08-27 19:40:23 233
转载 深入了解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 161
原创 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 3179
原创 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 440
转载 Redis常见面试题
1、什么是Redis?Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储...
2019-03-10 18:52:28 274
转载 Redis及缓存雪崩、缓存穿透
本文大纲一、简介二、Redis持久化方案三、Redis的缓存雪崩,缓存穿透,缓存预热,缓存更新,缓存降级等问题及解决方案一 、简介1.Redis的特点Redis是一种非关系数据库(不会像MySQL一样多个表直接存在直接关联关系),也是一种内存型数据库Redis是单线程的,并且是直接基于内存的,所以执行效率会非常高为什呢Redis是单线程的呢?(经典面试题) 官方回答...
2019-03-10 18:42:56 222
转载 为什么说Redis是单线程的以及Redis为什么这么快!
一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memcached等,而笔者目前最常用的也只有Redis这一种。如果你在以前面试的时候还没有遇到过面试官问你《为什么说R...
2019-03-10 18:29:13 240
转载 一致性Hash算法
一、Redis集群的使用我们在使用Redis的时候,为了保证Redis的高可用,提高Redis的读写性能,最简单的方式我们会做主从复制,组成Master-Master或者Master-Slave的形式,或者搭建Redis集群,进行数据的读写分离,类似于数据库的主从复制和读写分离。如下所示:同样类似于数据库,当单表数据大于500W的时候需要对其进行分库分表,当数据量很大的时候(标准可能不...
2019-03-10 18:12:48 184
原创 jQuery 参考手册
目录jQuery 选择器jQuery 事件方法jQuery 效果函数jQuery 文档操作方法jQuery 属性操作方法jQuery CSS 操作函数jQuery Ajax 操作函数jQuery 遍历函数jQuery 数据操作函数jQuery DOM 元素方法jQuery 核心函数jQuery 属性相关参考手册 jQuery 选择器选...
2019-02-24 15:03:19 462
原创 HTML 参考手册
目录按字母顺序排列按功能类别排列基础格式表单框架图像音频/视频链接列表表格样式/节元信息编程 按字母顺序排列标签 描述 <!--...--> 定义注释。 <!DOCTYPE> 定义文档类型。 <a> 定义锚。 <abbr> 定义缩写。...
2019-02-24 14:56:43 1460
原创 CSS 选择器参考手册
CSS3 选择器在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。"CSS" 列指示该属性是在哪个 CSS 版本中定义的。(CSS1、CSS2 还是 CSS3。)选择器 例子 例子描述 CSS .class .intro 选择 class="intro" 的所有元素。 1 #id #firstname 选择 id="f...
2019-02-24 14:53:45 183
原创 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 374
转载 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 359
转载 Java中内存泄漏
以下内容转载自:http://blog.csdn.net/anxpp/article/details/51325838 Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存。理论上Java中所有不会再被利用的对象所占用的内存,都可以被GC回收,但是Java也存在内存泄露,但它的表现与C++不同。JAVA 中的内存管理 要了解Java中...
2019-01-13 16:33:59 125
转载 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 11617 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 138
转载 Java HashMap的死循环
在淘宝内网里看到同事发了贴说了一个CPU被100%的线上故障,并且这个事发生了很多次,原因是在Java语言在并发情况下使用HashMap造成Race Condition,从而导致死循环。这个事情我4、5年前也经历过,本来觉得没什么好写的,因为Java的HashMap是非线程安全的,所以在并发下必然出现问题。但是,我发现近几年,很多人都经历过这个事(在网上查“HashMap Infinite Loo...
2019-01-12 18:03:48 119
原创 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 2725
原创 IDEA环境下api接口的生成
第一步: 打开“Tools”下的“Generate JavaDoc...”第二步:选择需要生成JavaDoc的范围,选择输出目录,设置编码。然后点击“OK”就一切Okay了~此时打开之前指定的文档输出目录看看:查看文档的方式:双击allclasses-frame.html文件、或者直接把文件拖到浏览器上、再或者右键用浏览器打开 and so on...效果如下:...
2018-12-19 20:11:15 2491
原创 FTP常用命令(带操作实例)
1. 连接方式一:ftpopen IP地址/域名方式二: ftp ip地址/域名2. 列出当前远程目录的内容ls/dirls -a:列出所有文件,包含隐藏文件. -l:列表形式,包含文件的绝大部分属性. -R:递归显示. 3. 查看当前目录pwd : 查看远程服务器上坐在的目录lcd : 查看当前的本地目录4....
2018-12-01 15:56:22 1300
原创 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 19276 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 56417
转载 【Redis深入】字典rehash图解
引入在讲rehash之前,我们先回顾一下字典的结构1.字典dict.h/dict的源码/* * 字典 */typedef struct dict { // 类型特定函数 dictType *type; // 私有数据 void *privdata; // 哈希表 dictht ht[2]; // rehash 索引...
2018-08-29 09:27:24 501
转载 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 204
原创 Mongodb和mysql的区别
1.Mongodb简介及优缺点分析Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。存储方式:虚拟内存+持久化。查询语句:是独特的Mongodb的查询方式。适合场景:事件的记录,...
2018-07-19 14:36:14 21890
原创 个人笔记之数据库相关概念整理(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 6995
原创 有关Spring MVC知识点的总结
Spring MVC五大组件DispatcherService (前端控制器)接受请求,请求配置在HandlerMapping中.基于HandlerMapping的配置,调用相应的模型来处理.HandlerMapping包含了请求路径与模型的对应关系.告诉DispatcherService请求路径与模型之间的关系.Controller (处理器)负责处理业务逻辑.modelModelAndView...
2018-05-24 20:09:48 3114 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人