自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 聊聊微服务架构及分布式事务解决方案

分布式事务场景如何设计系统架构及解决数据一致性问题,个人理解最终方案把握以下原则就可以了,那就是:大事务=小事务(原子事务)+异步(消息通知),解决分布式事务的最好办法其实就是不考虑分布式事务,将一个大的业务进行拆分,整个大的业务流程,转化成若干个小的业务流程,然后通过设计补偿流程从而考虑最终一致...

2020-04-21 22:34:45 79 0

转载 Java线程池实现原理及其在美团业务中的实践

随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。 本文开篇简述线程...

2020-04-03 14:58:43 63 0

转载 Synchronized 和 Lock 锁在JVM中的实现原理以及代码解析

一、深入JVM锁机制:synchronized synrhronized关键字简洁、清晰、语义明确,因此即使有了Lock接口,使用的还是非常广泛。其应用层的语义是可以把任何一个非null对象作为"锁",当synchronized作用在方法上时,锁住的便是对象实例(this);...

2020-04-01 16:00:25 57 0

转载 一文带你理解Java中Lock的实现原理

当多个线程需要访问某个公共资源的时候,我们知道需要通过加锁来保证资源的访问不会出问题。java提供了两种方式来加锁,一种是关键字:synchronized,一种是concurrent包下的lock锁。synchronized是java底层支持的,而concurrent包则是jdk实现。关于sync...

2020-04-01 15:04:40 51 0

转载 业务复杂=if else?刚来的大神竟然用策略 工厂彻底干掉了他们!

对于业务开发来说,业务逻辑的复杂是必然的,随着业务发展,需求只会越来越复杂,为了考虑到各种各样的情况,代码中不可避免的会出现很多if-else。 一旦代码中if-else过多,就会大大的影响其可读性和可维护性。 首先可读性,不言而喻,过多的if-else代码和嵌套,会使阅读代码的人很难理解...

2019-10-24 13:41:06 267 0

转载 oracle创建用户并授权

oracle数据库的权限系统分为系统权限与对象权限。 系统权限( database system privilege ) 可以让用户执行特定的命令集。例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限。 对象权限( datab...

2020-05-26 23:43:12 43 0

转载 手动启动 oracle 服务

手动启动 Oracle 服务 为了学习,我们常常会在个人PC上安装 Oracle 数据库,这大大影响了计算机的运行速度,尤其是计算机开机速度,如果 Oracle 使用频率并不是非常高,我们可以禁止 Oracle 服务的自动启动,真正用到的时候再手动启动 Oracle 服务。 此文用到的 Ora...

2020-05-26 21:12:28 44 0

转载 Oracle11g数据库的下载与安装

1、到oracle官网找到11g下载 本人百度云保存了32位、64位的oracle11g文件 链接: https://pan.baidu.com/s/1qTNmWzmfUwac5ynFfN_q4g 密码: yvp1 2、下载后解压文件 3、双击setup安装 4、提示未提供邮件,选择...

2020-05-26 00:59:09 37 0

原创 Java数组及数组工具类Arrays的使用

package com.example.demo; import org.junit.Test; import java.util.Arrays; /** * @Description 数组工具类Arrays的使用 * @Auther gf.x * @Date 2020/5/16 18...

2020-05-19 22:09:40 53 0

转载 MySQL8.016安装和配置——Windows

一、安装环境 OS:Windows 10 MySQL:mysql 8.0.16二、安装过程 (一)下载 根据自己电脑配置,从官方网站下载MySQL安装文件。 选择操作系统类型,然后点击Download。 进入下载页面,不用管其他的,直接点击最下方 No thanks,just start m...

2020-05-19 21:55:05 39 0

转载 数据库设计规范化的 5 个要求

通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。 当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。 要求一:表中应该...

2020-05-18 00:16:18 392 0

转载 你不得不知道的 MySQL 优化原理

说起MySQL的查询优化,相信大家收藏了一堆奇淫技巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新...

2020-05-18 00:15:15 45 0

转载 MySQL 性能优化的最佳 20+ 条经验

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语...

2020-05-18 00:09:29 44 0

转载 MySQL 大表优化方案探讨

当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL...

2020-05-18 00:08:49 40 0

转载 数据库性能优化之SQL语句优化

一、问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优...

2020-05-18 00:08:07 159 0

转载 优化SQL查询:如何写出高性能SQL语句

1、 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择“索引查找”方式,如果该表进行了归档,当前只剩下5000条记录了,那查询...

2020-05-18 00:07:29 30 0

转载 比较全面的MySQL优化参考

本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。 1、硬件层相关优化 1...

2020-05-18 00:03:55 69 0

转载 101个MySQL的调节和优化技巧

MySQL是一个功能强大的开源数据库。随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限。这里是101条调节和优化MySQL安装的技巧。一些技巧是针对特定的安装环境的,但这些思路是通用的。我已经把他们分成几类,来帮助你掌握更多MySQL的调节和优化技巧。 MySQL ...

2020-05-18 00:03:17 29 0

转载 常见安全算法(MD5、SHA1、Base64等等)

本文主要对消息摘要算法和加密算法做了整理,包括MD5、SHA、DES、AES、RSA等,并且提供了相应算法的Java实现和测试。 一 消息摘要算法 1. 简介: 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密 只有输入相同的明文数据经过相同的消息摘要算法才能得到相...

2020-05-17 22:58:30 39 0

转载 正确、安全地停止SpringBoot应用服务

Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行、产品级别的基于Spring框架的应用,大部分Spring Boot应用只需要非常少的配置就可以快速运行起来,是一个...

2020-05-17 22:39:51 44 0

转载 Java习惯用法总结

在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在本文中,我会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。(Joshua Bloch的《Effective Java》对这个话题给出了更详尽的论述,可以从这本书里学习更多的用法。) 我把本文的所有代码都放在公共...

2020-05-17 19:54:52 29 0

转载 Java字符串的热点问题

1、对那些安全敏感的信息,为什么用char[]存储要优于String? String是不可变的,这就意味着它一旦被创建,就将永久驻留在内存中,直到垃圾回收器将其回收为止。然而用数组存储方式,你可以明确地改变数组中的元素,因此用数组方式,安全信息将有可能不存在系统内存的任何地方。 2、能否用字符...

2020-05-17 19:44:13 26 0

转载 Java中常用缓存Cache机制的实现

所谓缓存,就是将程序或系统经常要调用的对象存在内存中,一遍其使用时可以快速调用,不必再去创建新的重复的实例。这样做可以减少系统开销,提高系统效率。 缓存主要可分为二大类: 一、通过文件缓存,顾名思义文件缓存是指把数据存储在磁盘上,不管你是以XML格式,序列化文件DAT格式还是其它文件格式;...

2020-05-17 19:35:54 33 0

转载 20个非常有用的Java程序片段

下面是20个非常有用的Java程序片段,希望能对你有用。 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric s...

2020-05-17 19:18:52 30 0

转载 Java中创建对象的5种方式

作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象。然而这里有很多创建对象的方法,我们会在这篇文章中学到。 Java中有5种创建对象的方式,下面给出它们的例子还有它们的字节码 如果你运行了末尾的的程序,你会发现方法1,2,3用构造函数创建对象,方法...

2020-05-17 19:06:39 28 0

转载 十二种获取Spring的上下文环境ApplicationContext的方法

方式一: 使用实例:UserDao userDao = (UserDao)SpringUtil.getBean(“userDao”); public class SpringUtil { public static ApplicationContext context = n...

2020-05-17 18:50:34 71 0

原创 Java数组和数据工具类Arrays的使用

package com.example.demo; import org.junit.Test; import java.util.Arrays; /** * @Description 数组工具类Arrays的使用 * @Auther gf.x * @Date 2020/5/16 18...

2020-05-17 18:24:29 45 0

转载 Java中的位运算左移右移详细分析

1、快速了解 Java中的 << 和 >> 和 >>> 正数:r = 20 << 1   20的二进制补码:0001 0100   向左移动两位后:0101 0000        结果:r = 40 正数:r = 20 >&...

2020-05-17 17:13:46 72 0

原创 手写ArrayList(非常简单)

1、自定义异常类 package com.example.demo.myCollection; /** * @Description 数组索引越界异常类 * @Auther gf.x * @Date 2020/5/13 19:09 */ public class IndexOutOf...

2020-05-15 18:10:20 28 0

转载 Java代码重构

重复代码是重构收效最大的手法之一,进行这项重构的原因不需要多说。它有很多很明显的好处,比如总代码量大大减少,维护方便,代码条理更加清晰易读。 它的重点就在于寻找代码当中完成某项子功能的重复代码,找到以后请毫不犹豫将它移动到合适的方法当中,并存放在合适的类当中。 No.1:重复代码的提炼 重复...

2020-05-11 23:31:57 40 0

转载 后端面试知识点总结

前言 前段时间不是在复习嘛,很多小伙伴也想要我的复习路线,以及我自己笔记里面的一些知识点,好了,花了一个月的时间,整整一个月啊,给大家整理出来了。 这期看下去你会发现很硬核,而且我会持续更新,啥也不说了,看在我熬夜一个月满脸痘痘的份上,你可以点赞了哈哈。 Spring Spring框架的七...

2020-05-09 22:07:57 249 0

原创 方法回调/钩子

CallBack/Hook 写代码的时候会有下面的情况: --------一行代码-------- --------二行代码-------- 这一行不知道怎么写/不知道怎么实现,在这里调一个方法。相当于在这里挂个 钩子:到时候让别人给我挂,挂什么就运行什么。不太确定怎么实现就交给别人来做 ---...

2020-05-01 21:38:58 57 0

转载 Java自带的JVM性能监控及调优工具(jps、jinfo、jstat、jmap、javap)使用介绍

JVM介绍 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 JVM性能监控及调优的意义 JVM作为java程序运行时的环境,它的性能好坏直接影响java...

2020-04-29 15:39:57 96 0

转载 商品秒杀系统设计思路

秒杀的概念 秒杀是电商网站的一种销售方式,以特定时间段内较低的商品价格来吸引消费者购买,并对销售库存进行限制。这样必然会造成特定时间段(一般几秒到几十秒不等)大量的用户对某商品进行抢购,并会有库存不足,抢购失败的情况。 秒杀的特点 大量用户在秒杀时间点发起购买请求,造成网站流量瞬间激增; ...

2020-04-29 15:32:35 105 0

转载 Jackson总结:常用注解、整合spring、自定义JsonSerializer

ackson作为springMVC默认的MessageConverter(消息序列化工具),经常在项目中使用,如果熟悉Jackson常用的使用方法,特性化机制,就会事半功倍,极大提高前后端数据交互的灵活性。 maven依赖 <dependency> <groupId...

2020-04-29 15:29:30 49 0

原创 SpringBoot自定义starter

一、自定义starter前要了解的 1、这个场景需要使用到的依赖是什么? 2、如何编写自动配置 @Configuration//指定这个类是一个配置类 @ConditionalOnXXX//在指定条件成立的情况下自动配置类生效 @AutoConfigureAfter//指定自动配置类的顺序...

2020-04-25 22:44:56 48 0

原创 SpringBoot启动流程

几个重要的事件回调机制 配置在META-INF/spring.factories ApplicationContextInitializer SpringApplicationRunListener 只需要放在ioc容器中 ApplicationRunner CommandLineRun...

2020-04-24 22:06:28 43 0

转载 Spring Boot 2.x 启动全过程源码分析(全)

上篇《Spring Boot 2.x 启动全过程源码分析(一)入口类剖析》我们分析了 Spring Boot 入口类 SpringApplication 的源码,并知道了其构造原理,这篇我们继续往下面分析其核心 run 方法。 SpringApplication 实例 run 方法运行过程 ...

2020-04-24 01:34:34 78 0

原创 Spring Boot 有哪几种读取配置的方式?

Spring Boot 可以通过 @PropertySource,@Value,@Environment, @ConfigurationProperties 来绑定变量。 Spring Boot读取配置的几种方式: 读取application文件 在application.yml或者prop...

2020-04-24 00:31:20 75 0

转载 Intellij IDEA pom.xml文件中如何手动添加Maven依赖

熟悉IDEA的同鞋都知道IDEA很强大,非常强大,让我这个使用了N年Eclipse的忠实者也转移到了的IDEA的阵营,今天说下,如何在IDEA中的Maven项目中添加第三方的Jar依赖,其实很简单,请看图: 1.先打开项目中的pom.xml文件,并使用快捷键Alt+Insert : 2.选...

2020-04-24 00:30:24 416 0

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