自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Java那点事 | 学习●思考●分享 | Java技术交流QQ群:83753349

当你的才华还撑不起你的野心时,那你就应该静下心来学习。岂能尽如人意,但求无愧我心; 努力不一定会成功,但是放弃一定会失败; 好好学习,天天向上,不求与人相比,但求超越自己; 知其然,还要知其所以然; 天道酬勤; 好记忆不如烂笔头,有好的心得 、想法、工作

  • 博客(324)
  • 收藏
  • 关注

转载 动态代理实现AOP

阅读目录代理 静态代理 动态代理 动态代理的应用场景 AOP AOP实例1 AOP实例2回到顶部代理代理顾名思义:代为处理。不是对目标对象的直接操作,而是通过代理对目标对象进行包装,此时可以在目标对象的基础上添加额外的操作以满足业务需求。图示分类:动态代理、静态代理。代理三要素:共同接口、真实对象、代理对象引入代理的原因:在某些情况下,一个客户不想...

2020-03-08 21:30:52 174

转载 REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案

一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这...

2019-11-29 11:34:45 314

转载 CentOS7下使用YUM安装MySQL5.6

(1)检查系统中是否已安装 MySQL。rpm -qa | grep mysql返回空值的话,就说明没有安装 MySQL 。注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。(2)查看已安装的 Mariadb 数据库版本。rpm ...

2019-06-26 14:10:17 225

转载 从cpu和内存来理解为什么数组比链表查询快

ArrayList和LinkList的比较1.ArrayList和LinkedList可想从名字分析,它们一个是Array(动态数组)的数据结构,一个Link(链表)的数据结构,此外,它们两个都是对List接口的实现。前者是数组队列,相当于动态数组;后者为双向链表结构,也可当作堆栈、队列、双端队列2.ArrayList查询效率比LinkList高,因为查询时候LinkList需要移动指针一...

2019-06-14 16:47:45 360

转载 Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

本文转自:http://outofmemory.cn/c/java-outOfMemoryErrorjava.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。导致OutOfMemoryError异常的常见原因有以下几种:内存中加载的数据量过于庞大,如一次从数据库取出过多数据...

2019-03-13 14:58:02 417

转载 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程

本文转自:https://www.jianshu.com/p/3667157d63bb1、故障现象客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题依然存在,使用top命令查看服务器情况,发现CPU占用率过高。2、CPU占用过高问题定位2.1、定位问题进程使用top命令查看资源占用情况,发现pid为14063的进程占用了大量的CPU资源,CPU占用率高达776...

2019-03-13 11:13:23 197

转载 Oracle 查看和扩展表空间

一、查询表空间使用情况 select a.tablespace_name as "表空间名", a.bytes / 1024 / 1024 as "表空间大小(M)", (a.bytes - b.bytes) / 1024 / 1024 as "已使用空间(M)", b.bytes / 1024 / 1024 "空闲空间(M)", round...

2019-03-02 10:19:58 109

转载 Redis集群

Redis cluster tutorialRedis集群提供一种方式自动将数据分布在多个Redis节点上。Redis Cluster provides a way to run a Redis installation where data is automatically sharded across multiple Redis nodes.1、Redis集群TCP端口(Redi...

2018-12-17 13:27:55 147

转载 分布式之数据库和缓存双写一致性方案解析

引言为什么写这篇文章?首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文...

2018-12-16 17:14:49 159

转载 分布式之REDIS复习精讲

复习要点?本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型,以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题正文1、为什么使用redis分析:博主觉得在项目中...

2018-12-16 14:30:28 110

转载 Redis运维利器 -- RedisManager

Redis运维利器 -- RedisManagerRedis作为一个基于内存的可持久化的日志型、Key-Value数据库,以其出色的性能表现以及高可用性在许多公司有着举足轻重的地位。伴随着业务量的增长,redis集群的规模不可避免的需要扩大,此时redis集群的运维成本就成为一个不可忽视的工作内容。RedisManager作为一个redis一站式管理平台,它支持redis集群的创建、管理、...

2018-12-16 14:05:16 816

转载 Git常用命令速查手册

命令不断更新中……Git的四个组成部分img1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区   git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂...

2018-12-16 10:23:01 97

原创 如何查询oracle会话及锁 如何查锁了哪张表?如何杀掉会话

===================================================================================================================--查看锁表:SELECT O.OWNER, O.OBJECT_NAME, O.OBJECT_TYPE, S.SID, S.SERIAL#  FROM V$LOC...

2018-11-10 11:28:02 591

原创 使用notePad修改将文件格式保存后不起作用

将文件格式从Windows 转为  Unix,但是保存之后不起作用。临时解决办法:我遇到的情况是,这种文档一般只有一行,所以出现这个问题,所以可以加个换行解决,再保存后,打开就是Unix。具体原因,详见......。...

2018-10-26 11:19:06 1875

转载 plsql窗口中文显示的是横版的 问题解决办法

下面是crt中的解决办法,其实都是同理,plsql中也是这么解决。 原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/44976145 今天登陆一台中文字符集的linux系统,调整CRT后中文可以正常显示,但显示却...

2018-10-09 15:31:28 2687

转载 Redis (error) NOAUTH Authentication required.解决方法

出现认证问题,应该是设置了认证密码,输入密码既可以啦注意密码是字符串形式!127.0.0.1:6379> auth "yourpassword"例如密码是‘root’,当出现认证问题时候,输入“auth ‘root’”即可  127.0.0.1:6379> set name "hello" (error) NOAUTH Authentication...

2018-09-28 19:44:05 3212

转载 Windows 环境下 Git clone pull fetch 慢 解决之道

问题描述:git clone、pull 特别慢  ,项目大概是370MB, 每次pull ,Receving objects:*******   20kb/s ,传输速度才20kb/s 左右,进度70%左右就卡顿,很捉急。纠结了大半天,网上查阅了好多帖子,最终找到的解决方法,传输速度平均在200~300kb/s ,这个速度已经很满意了。   PS:用https 和 ssh 协议pull,速...

2018-09-27 19:26:06 2000

转载 获取指定包下所有自定义注解并提取注解信息

 Reflections 通过扫描 classpath,索引元数据,允许在运行时查询这些元数据,也可以保存收集项目中多个模块的元数据信息。使用Reflections快速扫描指定包下自定义的Controller和RequestMapping两个注解,先去扫描加了@Controller注解的类,接着获取这些类下面加了@RequestMapping注解的方法,然后通过Java的反射invoke方...

2018-09-20 09:03:28 2253

转载 Postman 安装及使用入门教程

安装本文只是基于 Chrome 浏览器的扩展插件来进行的安装,并非单独应用程序。 首先,你要台电脑,其次,安装有 Chrome 浏览器,那你接着往下看吧。1. 官网安装(别看)打开官网,https://www.getpostman.com点击那个灰灰色的「Chrome App (Free)」按钮。正常情况会跳转到Chrome网上应用店界面,但是,由于,嗯,你懂的!你一般看到的是第...

2018-07-25 09:06:40 305

转载 如何避免自己写的代码成为别人眼中的一坨屎!

摘要: Any fool can write code that a computer can understand. Good programmers write code that humans can understand. 普通的工程师堆砌代码,优秀的工程师优雅代码,卓越的工程师简化代码。 来源:云栖社区  |  作者:竹涧  |  原文地址见文末普通的工程师堆砌代码,优秀...

2018-07-17 22:20:41 420

转载 关于Java健壮性的一些思考与实践!

程序健壮性非常重要,要怎么玩怎么写才能让程序更加鲁棒呢?我又这么几点小建议。一、进行统一的业务处理响应根据蚂蚁金服开放平台的标准返回,一个 response 至少应当有4个返回值。1、isSuccess:调用是否成功2、data:返回的响应数据3、errorCode:错误码4、errorMsg:错误信息这就要求我们的接口要有标准的统一的 response ,那怎么实现呢...

2018-07-17 22:13:23 237

转载 认识cpu、核与线程

前言:作为一个后台开发人员,我想有必要了解这些基础知识。如果本文有不严谨或者疏忽的地方,请指正。目录认识cpu、核心与线程java多线程系列(一)之java多线程技能java多线程系列(二)之对象变量的并发访问java多线程系列(三)之等待通知机制java多线程系列(四)之ReentrantLock的使用java多线程系列(五)之synchronized ReentrantLock volatil...

2018-06-25 14:45:46 220

转载 多线程和CPU的关系

什么是CPU(1)         Central  Progress  Unit 中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。(2)         CPU包括 运算器,高速缓冲存储器,总线。(3)         它的工作,主要是解释计算机中的指令,和处理计算机软件中的数据。它在计算机中起着最重要的作用,构成了系统的控制中心,对各个应用程序进行统一协调和控制。 线程...

2018-06-25 14:20:37 417

转载 对于多线程程序,单核cpu与多核cpu是怎么工作的

此文中的大部分资料来自于网络上,我只是觉得把有道理的整理一下,方便以后查阅。1.多线程在单核和多核CPU上的执行效率问题的讨论a1: 多线程在单cpu中其实也是顺序执行的,不过系统可以帮你切换那个执行而已,其实并没有快(反而慢)多个cpu的话就可以在两个cpu中同时执行了..............a2: 单核CPU上运行的多线程程序, 同一时间只能一个线程在跑, 系统帮你切换线程而已, 系统给每...

2018-06-25 14:19:32 1836

转载 Java并发与多线程

摘要:1. 并发与并行的区别,何为并发编程,并发编程的优势在哪2. 多线程、多任务、多进程机制概述3. 多线程、多任务、多进程机制与编程思想的关系一、并发1.1 并发与并行首先介绍一下并发与并行,两者虽然只有一字之差,但实际上却有着本质的区别,其概念如下:并行性(parallel):指在同一时刻,有多条指令在多个处理器上同时执行;并发性(concurrency):指在同一时刻只能有一条指令执行,但...

2018-06-22 20:33:40 121

转载 高并发和多线程的关系

 “高并发和多线程”总是被一起提起,给人感觉两者好像相等,实则 高并发 ≠ 多线程  多线程是完成任务的一种方法,高并发是系统运行的一种状态,通过多线程有助于系统承受高并发状态的实现。   高并发是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问或者socket端口集中性收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系...

2018-06-22 19:33:19 364

转载 从零手写RPC

RPC概述RPC(Remote Proceduce Call 远程过程调用) 一般用来实现部署在不同机器上的系统之间的方法调用,使程序能够像访问本地系统资源一样,通过网络传输过去访问远端系统资源。RPC 调用过程Client 客户端调用方法实现,负责发起RPC调用。ClientStub/SereverStub 可以看作一个代理对象,屏蔽RPC调用过程中复杂的网络处理逻辑,使RPC透明化,使得调用远...

2018-06-22 09:01:26 223

转载 一个用消息队列 的人,不知道为啥用 MQ,这就有点尴尬

引言为什么写这篇文章?博主有两位朋友分别是小A和小B:小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活,技术零成长。小B,工作于某国企,虽然能接触到一些中间件技术。然而,他只会订阅/发布消息。通俗点说,就是调调AP...

2018-06-05 16:28:31 96865 24

转载 Java实现简单的RPC框架

一、RPC简介RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式。如RMI(远程方法调用)、Hessian、Http invoker等。另外,RPC是与语言无关的。    RPC示意图如上图所示,假设Computer1在调用sayHi()方法,对于Computer1而言调用sayHi()方法...

2018-06-04 13:54:46 297

转载 Netty 5用户指南

原文地址:http://netty.io/wiki/user-guide-for-5.x.html    译者:光辉勇士      校对:郭蕾前言问题现如今我们使用通用的应用程序或者类库来实现系统之间地互相访问,比如我们经常使用一个HTTP客户端来从web服务器上获取信息,或者通过web service来执行一个远程的调用。然而,有时候一个通用的协议和他的实现并没有覆盖一些场景。比如我们无法使用一...

2018-06-03 19:35:41 93

转载 如何开始接手一个项目

项目好与不好,它就在那里;架构优雅或者丑陋,它就在那里;注释有或者没有,它还在那里;文档乱或者不乱,它始终都在那里。不论它是什么样子的,线上就那样跑着。一般来讲,项目分为两种:1、为业务服务的项目,比如公司内部项目、电商项目、各种 app 项目;2、为技术服务的项目,比如开源中间件项目(dubbo、spring cloud、各种数据库中间件、各种缓存方案等);首先说第二种项目,它专注于提供某一个或...

2018-05-31 11:27:41 1976

转载 从 volatile 说起,可见性和有序性是什么

上一篇文章说了 CAS 原理,其中说到了 Atomic* 类,他们实现原子操作的机制就依靠了 volatile 的内存可见性特性。如果还不了解 CAS 和 Atomic*,建议看一下这篇文章。并发的三个特性首先说我们如果要使用 volatile 了,那肯定是在多线程并发的环境下。我们常说的并发场景下有三个重要特性:原子性、可见性、有序性。只有在满足了这三个特性,才能保证并发程序正确执行,否则就会出...

2018-05-31 11:21:11 6100 1

转载 Spring AOP 和 动态代理技术

AOP 是什么东西首先来说 AOP 并不是 Spring 框架的核心技术之一,AOP 全称 Aspect Orient Programming,即面向切面的编程。其要解决的问题就是在不改变源代码的情况下,实现对逻辑功能的修改。常用的场景包括记录日志、异常处理、性能监控、安全控制(例如拦截器)等,总结起来就是,凡是想对当前功能做变更,但是又不想修改源代码的情况下,都可以考虑是否可以用 AOP 实现。...

2018-05-31 11:19:57 145

转载 三种线程安全的单例模式

就算你没有用到过其他的设计模式,但是单例模式你肯定接触过,比如,Spring 中 bean 默认就是单例模式的,所有用到这个 bean 的实例其实都是同一个。单例模式的使用场景什么是单例模式呢,单例模式(Singleton)又叫单态模式,它出现目的是为了保证一个类在系统中只有一个实例,并提供一个访问它的全局访问点。从这点可以看出,单例模式的出现是为了可以保证系统中一个类只有一个实例而且该实例又易于...

2018-05-31 10:37:13 4200

转载 Java动态代理机制详解(JDK 和CGLIB,Javassist,ASM) (清晰,浅显)

class文件简介及加载     Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:      class字节码文件是根据JVM虚拟机规范中规定的字节码组织规则生成的、具体class文件是怎...

2018-05-30 17:48:55 269

转载 Java 动态代理作用是什么?

Java 动态代理作用是什么?https://www.zhihu.com/question/20794107

2018-05-30 10:59:02 398

转载 Java 利用枚举实现单例模式

引言单例模式比较常见的实现方法有懒汉模式,DCL模式公有静态成员等,从Java 1.5版本起,单元素枚举实现单例模式成为最佳的方法。Java枚举基本用法枚举的用法比较多,本文主要旨在介绍利用枚举实现单例模式的原理,所以这里也主要介绍一些相关的基础内容。 首先,枚举类似类,一个枚举可以拥有成员变量,成员方法,构造方法。先来看枚举最基本的用法:enum Type{ A,B,C,D;}123创...

2018-05-27 20:50:13 211

转载 浅谈使用单元素的枚举类型实现单例模式

通常情况下,我们写单例模式的时候无非就是三个步骤:构造器私有化,声明私有静态变量,提供静态获取实例的方法。简单说就是以下这种方式:class SingletonA { private static SingletonA instence = new SingletonA(); private SingletonA() { } public static Single...

2018-05-27 11:58:31 101

转载 fastjson使用(三) -- 序列化

https://blog.csdn.net/u011113654/article/details/50460787使用fastjson进行序列化,就是把JavaBean转换为JSON格式的数据。fastjson的序列化高度可控性,可以自己定制序列化。fastjson的定制序列化有很多中实现方式,主要有如下的方式:1.通过@JSONField定制序列化2.通过@JSONType定制序列化3.通过Se...

2018-05-25 11:40:33 372

转载 fastjson的@JSONField注解的一点问题

@JSONField看源码它可以作用于字段和方法上。引用网上说的,  一、作用Field       @JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称。 但是我在使用中,发现并不如上所说。例如@JSONField(name="project_id")private Long ProjectID发现bean 转json的时候并是"project_...

2018-05-25 10:14:01 680

空空如也

空空如也

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

TA关注的人

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