自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

向阳而生

终身学习

  • 博客(180)
  • 论坛 (2)
  • 收藏
  • 关注

原创 玩转Stream流

“引言部分。Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 对大数据实时处理的 Stream。Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregateoperation),或者大批量数据操作 (bulk data operation)。Stream..

2021-06-17 14:17:05 28 2

原创 一行错误代码带来的影响:new Long[activityPageRequest.getStoreId()]

问题描述一次上线之后从JVM上观察YGC变频繁,从1次/5min-> 3次/1min 出现FGC3.从性能来看左侧是问题,右侧是正常,各项指标异常,MAX能到2s,可用率不足100% 背景描述:两个需求同时上线,涉及两个接口,部署在同一应用A. (有问题代码)B. (正常)排查步骤:如何确定呢?通过nginx切流量,来移除变量观察监控定位到是店内活动页造成的问题通过loca...

2021-04-20 11:22:46 19

原创 new HashMap(list.size())指定size就能完全避免扩容带来的额外开销了吗?

public static void longLongAGo() { int count = 1000000; System.out.println("---------------- 不设置hashMap初始容量 ------------"); long start = System.currentTimeMillis(); HashMap<Integer, Object> map = new HashMap<>(); for (int .

2021-04-20 11:15:22 95 1

原创 Map的key,value是否可以为null?

public static void main(String[] args) { Map<String,Boolean> searcher = new HashMap<>(); searcher.put("one",null); searcher.put("two",null); searcher.put("three",null); System.out.println(MapUtils.is...

2020-12-11 18:24:43 472

原创 类的私有成员变量,若是多例则是线程私有,若单例则全局共享

结论:类的私有成员变量,若是多例则是线程私有,若单例则全局共享,不要被私有给迷惑住了问题背景: 一个楼层资源是否展示是通过flag来控制的,一次请求中可以有n个楼层, 那么每个楼层开启一个线程去并行处理,理想情况下是每个线程用自己的flag部分true,部分false,结果问题是所有线程的flag值都一样,要么都true,要么都false问题原因: @Service默认是单例,也就是全局唯一bean解决方案: 方案1. 把flag做成局部变量 ...

2020-12-09 16:20:48 157 1

原创 String长度上限

String长度上限是多少?前言话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,,而且在之前开发的中也真实地遇到过这个String长度限制的场景(将某固定文件转码成Base64的形式用字符串存储,在运行时需要的时候在转回来,当时文件比较大),那这个规范限制到底是怎么样的。String首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,String其实是使用的一个char类型的数组来存储字

2020-12-03 09:45:08 247 1

原创 BigDecimal在金额计算中丢失精度问题

一、问题现象:我们在使用金额计算或者展示金额的时候经常会使用BigDecimal,这个类型也是涉及金额时非常推荐的一个类型,BigDecimal也提供了很多构造器方法,这些构造器方法使用不当可能会造成不必要的麻烦甚至是金额损失,如下图所示:Android收银台页面也曾出现过这个bug,显示一个非常长的数字,幸好只是展示,不涉及计算和存储。二、问题分析:先看下BigDecimal提供的部分构造器方法public BigDecimal(double val) { this(va

2020-10-26 16:08:53 253

原创 com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError)

问题:实体类双向映射进行Json序列化时出现无限循环的异常 背景:事情很简单,就是日志打印的时候,一条日志的打印没有任何毛病,这行代码没问题,但由于数据可变,某些情况下会报异常com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) 影响范围:看你这条日志打在哪了,主要看try catch的作用范围,打在功能主流程中,有try catch的情况下,整个...

2020-09-05 16:19:34 405

原创 架构概论

顶层涉及按需、预期未来、规划企业架构业务全局触发,制定可落地的架构方案技术选型,难题解决规划方案与代码,广度与深度技术+管理(人,资源,技术)缓冲 Buffer缓存 Cache复用 Pool分治 Sharding亲密(粘性) sticky权衡 Balance or trade-off拆解分层: 流程 服务(偏业务) 功能(比业务更细)DB/Redis/Tommcat按X轴(可用性):...

2020-08-09 10:52:54 88 1

原创 Java 按字符为单位截取

背景 按长度截取字符功能是为了解决什么问题呢?首先了解下两个维度的基础 1. Java中很多工具类在按长度截取文本的时候,无论是中文/英文/数字/中英文标点符号每一个都代表一个长度,比如subString方法 2. 一个中文和英文数字所占的内存和显示的大小也不同,一个中文是2个字符问题 当UI或者功能要求按长宽高等固定尺寸来作为衡量标准的时候,那么长度就不能作为我们的衡量标准,因为1个中文长度是1个单位,1...

2020-07-26 16:37:27 186 1

转载 Linux 常用命令全拼

供大家查阅-------------------要知其然并知其所以然pwd: print work directory 打印当前目录 显示出当前工作目录的绝对路径 ps: process status(进程状态,类似于windows的任务管理器) 常用参数:-auxf ps -auxf 显示进程状态 df: disk free 其功能是显示磁盘可用空间数目信息及空间结点...

2019-11-13 18:11:13 214

原创 Mysql事务隔离级别-----简单到不能再简单的理解

读未提交:别人改数据的事务尚未提交,我在我的事务中也能读到。读已提交:别人改数据的事务已经提交,我在我的事务中才能读到。可重复读:别人改数据的事务已经提交,我在我的事务中也不去读。串行:我的事务尚未提交,别人就别想改数据。这4种隔离级别,并行性能依次降低,安全性依次提高。...

2019-10-15 16:46:35 148

转载 每个程序员都应该收藏的算法复杂度速查表

这篇文章覆盖了计算机科学里面常见算法的时间和空间的大 O复杂度。我之前在参加面试前,经常需要花费很多时间从互联网上查找各种搜索和排序算法的优劣,以便我在面试时不会被问住。每次我都需要准备这个,所以,为了节省大家的时间,我就准备了这个,希望你喜欢!图例数据结构操作数组排序算法图操作堆操作大O复杂度图表来源:LCTT原文:http://bigo...

2019-10-01 14:45:30 115

转载 java并发锁ReentrantReadWriteLock读写锁源码分析

1、ReentrantReadWriterLock基础所谓读写锁,是对访问资源共享锁和排斥锁,一般的重入性语义为 如果对资源加了写锁,其他线程无法再获得写锁与读锁,但是持有写锁的线程,可以对资源加读锁(锁降级);如果一个线程对资源加了读锁,其他线程可以继续加读锁。java.util.concurrent.locks中关于多写锁的接口:ReadWriteLockpublic interfa...

2019-09-30 21:25:33 93

原创 【Maven】——Jar包冲突解决方案调研

一.jar包冲突的本质Java 应用程序因某种因素,加载不到正确的类而导致其行为跟预期不一致。二. jar包冲突的两种情况第一类jar包冲突问题(同一jar包版本不同)应用程序依赖的同一个 Jar 包出现了多个不同版本,并选择了错误的版本而导致JVM加载不到需要的类或加载了错误版本的类。 出现该问题的三个必要条件:依赖树中出现了同一个jar包的多个版本。 该jar包的多...

2019-09-12 10:43:12 161 1

原创 【JVM】类加载---JAVA获取CLASSPATH路径

JAVA获取CLASSPATH路径ClassLoader 提供了两个方法用于从装载的类路径中取得资源:public URL getResource (String name); public InputStream getResourceAsStream (String name); 这里name是资源的类路径,它是相对与“/”根路径下的位置。getRe...

2019-09-06 10:46:43 574 1

原创 【JVM】自动内存管理机制《七》---内存分配与回收策略

导读到目前为止我们讲完了:【JVM】自动内存管理机制《一》---内存划分及异常可能情况 【JVM】自动内存管理机制《二》---- 内存区域为何划分,以什么原则划分,为何自动管理? 【JVM】自动内存管理机制《三》---对象的生死判定和算法详解 【JVM】自动内存管理机制《四》---垃圾收集器(索命黑白无常回收垃圾对象) 【JVM】自动内存管理机制《五》---垃圾收集器(索命...

2019-08-14 09:25:39 155 2

原创 【JVM】自动内存管理机制《六》---面试官问JDK中默认的垃圾收集器?

目录导读查看JDK1.8.0_25的默认垃圾收集器其他JDK版本的默认垃圾回收器呢?默认的收集器详解小结导读在上篇博客中:【JVM】自动内存管理机制《五》---垃圾收集器(索命黑白无常回收垃圾对象),我们了解了各种垃圾收集器,那么大家有没有想过,我们的JDK中默认用的哪种垃圾收集器?查看JDK1.8.0_25的默认垃圾收集器打开控制台,在控制台中...

2019-08-14 09:25:00 344 2

原创 【JVM】自动内存管理机制《五》---垃圾收集器(索命黑白无常回收垃圾对象)

目录导读垃圾收集器有哪些Serial收集器——单线程收集器特点:应用场景:设置参数ParNew收集器——Serial收集器的多线程版本特点应用场景设置参数为什么只有ParNew能与CMS收集器配合Parallel Scavenge收集器特点应用场景设置参数Serial Old收集器特点应用场景Parallel ...

2019-08-13 09:07:39 102 1

原创 【JVM】自动内存管理机制《四》---垃圾收集器(索命黑白无常回收垃圾对象)

目录导读宏观概览哪些内存需要回收?垃圾收集算法复制算法标记清除算法标记整理算法分代收集算法垃圾收集器小结导读接下来本篇博客着重讲:如何自动管理内存,今天接着解决第三个问题,详细会按以下思路讲解-:如何自动管理的?谁管理的?接下来按下面的顺序讲述,我们已经讲完了对象存活的判定,接下来要讲垃圾收集算法,垃圾收集器:内存回收机制...

2019-08-11 11:05:05 176

原创 【JVM】自动内存管理机制《三》---对象的生死判定和算法详解

目录导读对象存活判定标准对象存活判定标准:对象回收标准:对象存活判定算法引用计数器算法循环引用的问题运行的结果:可达性分析算法小结导读上篇博客我们已经讲了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域是线程私有,也就是生死随着线程。接下来本篇博客着重讲:如何自动管理内存,今天解决第三个问题,第三个问题有些复杂...

2019-08-07 09:52:56 92 1

原创 【JVM】自动内存管理机制《二》---- 内存区域为何划分,以什么原则划分,为何自动管理?

导读上篇博客:【JVM】自动内存管理机制《一》相信你明白了为什么内存需要管理:为了解决有限资源和无限需求的冲突!内存是有限的,但在运行的过程中最大的冲突就是:内存不够用。也看了java8的内存模型是分区域的,那么有没有想过一个问题:内存为什么划分?还有上篇博客的遗留问题:内存为什么要自动管理?如何自动管理的?这一切都是为了更好的利用和管理内存那么今天会解决这三个问题1.jvm虚拟...

2019-08-03 09:19:09 169

原创 【JVM】自动内存管理机制《一》---内存划分及异常可能情况

目录导读java内存区域内存溢出测试思路小结导读java内存区域与内存溢出异常 垃圾收集器与内存分配策略本篇主要讲jvm的自动内存管理机制,首先我们要拆分“自动内存管理机制”这个词:首先是一个管理机制, 管理什么?内存! 为什么内存需要管理?、 内存会带来什么问题? 如何管理?自动管理! 如何自动管理?带着这几个疑问,所以我们接下里会讲...

2019-08-02 08:31:21 157 1

原创 数据库字段为什么要尽可能的使用not null

目录null有哪些缺点?1. 空间相关 可能有些晦涩难懂,举个栗子:二、索引相关三、count函数相关四、NOT IN子查询在有NULL值的情况下返回永远为空结果再说下为什么Not Null更优化小结null有哪些缺点?1. 空间相关 NULL占空间 下面是来自Mysql官网的解释:“NULL...

2019-07-28 09:11:38 984

原创 Linux(CentOS)如何上外网

目录在上一篇博客的基础上:打开编辑配置文件同样重载配置文件,便可测试是否可以上网,小结:在上一篇博客的基础上: Linux(CentOS)配置静态IP/动态IP打开编辑配置文件输入:vi /etc/sysconfig/network-scripts/ifcfg-ens33同样重载配置文件, 重启服务:service network re...

2019-07-17 20:59:10 2916 1

原创 win10添加应用程序到开机启动项

目录背景解决方式小结背景 为什么会有这篇博客的产生呢? 1、应用设置了开启自启动,没作用 2、无奈每次都自己再点快捷方式启动 实在是无可忍受呀,必须解决!解决之后,发现:实现开机自启,和取消开机自启非常容易呀,用代码实现也是这个思路的呀!解决方式方法一:1、...

2019-07-16 16:05:02 309 2

原创 VSCode插件配置信息同步———如何使用 VSCode 的 Setting Sync 插件

目录前言SettingSync插件的作用SettingSync插件适用的场景SettingSync插件如何使用?1、安装 2、配置设置同步3、上传下载您的设置上传您的设置下载您的设置小结前言作为一名程序员,同时自己也是一个资深用户,所以必须要有不讲究的习惯,高效率,节省时间!对每一款软件,都要追求用户体验的完美度!S...

2019-07-16 15:12:29 285 3

原创 java8的Stream流使用

Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行...

2019-07-14 21:17:57 108 1

原创 Zookeeper分布式高性能协调服务-what、why、how

目录zookeeper的由来zookeeper是什么?设计目的?zookeeper带来的问题zookeeper有什么? zk特性ZK主从集群ZAB协议zookeeper的由来说到这里,zookeeper是为了解决分布式集群带来的问题,就得说说什么是分布式?分布式集群带来了哪些问题?zookeeper解决了什么问题?1.什么是分布式?分布式两...

2019-07-07 09:34:37 124 1

原创 RabbitMQ消息队列-what、why、how

目录什么是RabbitMQ?为什么会产生消息队列?RabbitMQ中的一些基础概念RabbitMQ 选型和对比什么是RabbitMQ?理解:MQ是什么?队列是什么?MQ我们可以理解为消息队列,队列我们可以理解为管道。以管道先进先出的方式做消息传递。场景:1.其实我们在双11的时候,当我们凌晨大量的秒杀和抢购商品,然后去结算的时候,就会发现,界面会提醒我...

2019-06-28 10:55:44 149 3

原创 Mycat分布式数据库中间件 what why how

目录Whatis Mycat?1.概念?2.同类产品?3.解决了什么问题?4.如何解决的?拆分5.拆分策略6.拆分带来的问题及如何解决How to use Mycat?mycat中的核心概念及配置文件分析1.schema.xml2.rule.xml3.server.xmlDemo小结Whatis Mycat?...

2019-06-27 14:47:13 97 3

原创 xxljob-分布式任务调度平台 what、why、how?

目录xxljob是什么?为什么要有分布式任务调度平台?为什么有xxl-job等分布式任务调度平台?xxljob怎么在项目里用?需要具备的其他知识:Corn表达式xxl-job的源码目录结构总结xxljob是什么?是一个分布式任务调度平台:在什么时间,什么人,执行什么代码任务( )当然大家要明白,分布式任务调度平台不止xxljob,还有为什...

2019-06-22 11:12:57 1144 31

原创 Mybatis篇三:XML配置文件解析(下)

目录5、objectFactory(对象工厂)6、plugins(插件)7、environments(环境)transactionManager(事务管理器)dataSource(数据源)UNPOOLEDPOOLEDJNDI8、databaseldProvider(数据库厂商标识)9、mappers(映射器)总结:5、objectFactory(...

2019-06-15 09:30:00 108 1

原创 Mybatis篇三:XML配置文件解析(上)

配置顶层结构目录 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:注意:这些元素在mybatis的xml配置文件中,顺序是不可以颠倒的,否则无法构建SqlSessionFactoryBuilder实例,也就无法构建SqlSessionFactory工厂实例,更无法构建SqlSession操作数据库命令SQL对象实例。pro...

2019-06-15 09:18:54 73 1

原创 Mybatis篇二:MyBatis实战

MyBatis实战光看不练容易迷糊,先写个实例试试,在回去读文档,或许体会会多一些。1、实例准备jar包:mybatis-3.4.5.jar(mybatis)mysql-connector-java-5.1.21.jar(数据库驱动)junit-4.4.jar(测试,不想用这个junit,用main方法测试也行)项目结构 ...

2019-06-15 09:08:35 184 1

原创 Mybatis篇一:Mybatis为什么出现?为什么不是直接使用jdbc?

目录什么是mybatis为什么会出现mybatis、hibernate等来代替而不是直接使用JDBC?MyBatis 的真正强大在于它的映射语句结果映射小结什么是mybatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以...

2019-06-05 11:51:36 2096

原创 Spring Cloud Feign ——服务消费者——what、why、how

目录Feign是什么?什么是WebService客户端?什么是service?什么是Web Service?Web Service的优势:什么时候用Webservice?什么是声明性的?Feign能干什么?既然有了Ribbon,Feign是怎么出来的?怎么写一个FeignFeign是什么?Feign是一个声明性的Webservice...

2019-05-28 15:25:34 108 1

原创 Spring Cloud hystrix——服务熔断——what、why、how

目录hystrix断路器是什么?为什么hystrix会出现?hystrix能干吗?1. 服务熔断:2. 服务降级:小结:服务降级和服务熔断的区别3. 服务限流接近实时的监控hystrixDashboard服务监控什么是Hystrix Dashboard?怎么看图?官网资料:https://github.com/Netflix/Hystrix/wiki...

2019-05-28 11:24:03 93 1

原创 服务限流——限流算法——what、why、how

为什么限流会出现?在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制...

2019-05-28 10:33:06 253 1

原创 Spring Cloud Ribbon ——服务消费者Client Side Load Balancer——what、why、how

目录前言Ribbon是什么?能干嘛?LB(负载均衡)集中式LB:进程内LB(Ribbon):轮询方式Ribbon核心组件IRule轮询方式IRule架构图自定义轮询怎么搭建?前言在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+re...

2019-05-28 08:38:42 115 1

空空如也

向上爬的小蜗牛的留言板

发表于 2020-01-02 最后回复 2020-01-02

什么鬼,发表不了,一刷新都丢了

发表于 2018-01-09 最后回复 2018-01-09

空空如也

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

TA关注的人 TA的粉丝

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