自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql主从搭建

基本环境:CentOS release 6.10 (Final)mysql 5.7.161.下载mysql 5.7.16(去官网下载了传到linux或直接wget),如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y2BZCaa9-1592191407103)(/uploads/mysql-mongo-es/images/m_9b0fe95093b9938357cef4eb845d8fff_r.png)]或者通过linux命令行获取:wget https://

2020-06-15 11:24:52 68

原创 mongo入门四:mongodb 复制远程和本地数据库

db.copyDatabase参数说明:db.copyDatabase(fromdb, todb, fromhost, username, password, mechanism)fromdb:string 源数据库名称,用户必须能够对这个db进行鉴权todb:string 复制到目的mongod的名字,名字可以跟原名字不一样fromhost:string 可选项 ip+por...

2020-03-30 17:30:08 2438

转载 MongoDB入门三:什么场景应该用 MongoDB ?

月初在云栖社区上发起了一个 MongoDB 使用场景及运维管理问题交流探讨 的技术话题,有近5000人关注了该话题讨论,这里就 MongoDB 的使用场景做个简单的总结,谈谈什么场景该用 MongoDB?很多人比较关心 MongoDB 的适用场景,也有用户在话题里分享了自己的业务场景,比如案例1用在应用服务器的日志记录,查找起来比文本灵活,导出也很方便。也是给应用练手,从外围系统开始使用...

2020-03-17 17:13:51 194

转载 【SpringMVC】与权限拦截器冲突导致的Cors跨域设置失效问题

问题描述前端域名FE.com向后端域名BE.com分别请求访问优惠券的列表和提交新增的优惠券,API设计所用的Method分别为Get和Post,结果为前一次访问成功而后一次访问失败。这两次请求都是跨域请求,其中请求1包含一个Get请求,请求2本应该包含一个Options请求和一个Post请求,但是只发生了Options请求。后端Cors配置CORS使用SpringMVC自带的mvc:cor...

2019-12-29 20:43:51 1455

转载 linux如何手动释放linux内存

当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。/proc是一个虚拟文件系统,可通过对它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。那么可通过调整/proc/...

2019-11-27 17:07:04 172

转载 阿里巴巴MYSQL数据库设计、查询规范

一、建表规约1.【强制】表达是与否概念的字段,必须使用 is_xxx的方式命名,数据类型是 unsigned tinyint( 1表示是,0表示否)。说明:任何字段如果为非负数,必须是 unsigned。正例:表达逻辑删除的字段名 is_deleted,1 表示删除,0 表示未删除。2.【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名...

2019-10-27 15:23:59 579

原创 MySQL进阶一:索引底层结构B+树

前言:为什么MySQL索引底层结构采取B+树?除了搜索性能方面的因素还有其他原因吗?一、B+树的结构因为B+树是m叉树,m叉树最简单的一种就是二叉树,且B+树是B树的变形形式,我们就从二叉树和B树开始介绍。1、二叉树见到比较多的应该是二叉树,以下是引用百度百科的定义:在计算机科学中,二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树...

2019-10-12 18:37:44 324

原创 JVM学习笔记-Java类是如何加载的

1、前言首先我们看以下一段代码,这段代码的输出顺序是怎样的那?/** * 类加载顺序测试 * * @author sj * */public class ClassloadTest { public static void main(String[] args) { System.out.println("--第一次加载开始--"); ChildB childB...

2019-09-06 00:34:49 112

原创 JVM学习笔记-垃圾收集器

之前我们了解了垃圾回收算法,现在一起来看看垃圾回收的具体实现:垃圾收集器。Java虚拟机规范对于垃圾收集器应该如何实现没有具体的规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器有可能有较大的区别。以下列出的是基于JDK 1.7 Update 14之后的HotSpot虚拟机(在这个版本中正式提供了商用的G1收集器):上图展示了7种不同分代的收集器,如果两个收集器中存在连线,就说明它们之间...

2019-07-14 20:28:58 139

原创 JVM学习笔记-垃圾回收算法

现在流行的商业虚拟机,都是采用“分带收集”(Generational Collection)算法,这种算法只是根据对象存活周期的不同将内存划分为几块。一般把Java堆分为新生代和老年代,这样就可以根据各个年代的特点选择合适的回收算法:在新生代中,每次GC时大部分对象都将死去,这时选用复制算法,只需要复制少量存活对象就可以完成垃圾回收。在老年代中,由于对象存活率高,况且没有额外的空间对它进行分...

2019-07-11 22:27:48 117

原创 JVM学习笔记-如何判断对象是否还存活

我们之前了解到了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈这3个区域随线程而生,随线程而灭。这几个区域不需要过多考虑垃圾回收问题,因为方法或者线程结束时,内存自热就跟着回收了。而Java堆和方法区则不一样,它们属于内存共享的区域,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期间才能知道会创建哪些对象,因此...

2019-07-10 23:32:50 253

转载 Mongodb—查询数据报错 Sort operation used more than the maximum 33554432 bytes of RAM

遇到的情况线上的列表在运行过程中突然爆出了一个Mongodb 查询的BUG,错误如下:“exception”:”org.springframework.data.mongodb.UncategorizedMongoDbException”,“message”:”Query failed with error code 96 and error message ‘Executor error...

2019-06-12 15:37:29 477

原创 JVM学习笔记-内存泄漏异常二

在这片文章中,将讲述方法区、运行时常量池溢出和直接内存溢出两种情况

2019-06-09 18:02:23 171

原创 JVM学习笔记-内存泄漏异常一

我们知道,Java虚拟机内存区域主要包括Java虚拟机栈、本地方法栈、Java堆、方法区(包括运行时常量池)、程序计数器和直接内存,其中除了程序计数器外,其他的运行时区域都会发生OutOfMemoryError异常(简称OOM)。下面将讲讲OutOfMemoryError异常的实例,希望通过实例可以让大家有以下的两点认识:通过代码验证Java虚拟机规范中描述的各个运行时区域存储的内容。在实际...

2019-06-07 18:24:36 404

转载 Linux入门二:Linux下常用的性能分析-top命令(转)

原文地址:linux 查看服务器性能常用命令top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最...

2019-05-17 15:36:07 143

原创 Linux入门一:我们常说的CPU核数指的是什么?

怎么理解CPU的核数

2019-05-17 14:19:04 22020

原创 MongoDB入门二:linux环境下的安装与数据库及用户的创建

3.0版本MongoDB在Linux环境下的安装和安装成功后数据库及用户的创建。

2019-05-10 10:57:46 1204

转载 linux下安装zookeeper(转)

原文链接:inux下安装zookeeper1、下载zookeeper的安装包wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/zookeeper-3.3.6.tar.gz2、解压压缩包tar zxvf zookeeper-3.3.6.tar.gz3、在zookeeper的跟目录下创建两个文件夹data和da...

2019-04-30 10:54:00 171

原创 java并发编程实战系列-对象的共享

要编写正确的并发程序,关键问题在于:在访问共享的变量时需要进行正确的管理。之前介绍了使用同步来避免多个线程在同一时间访问相同的数据,接下来将介绍如何共享和发布对象,从而使他们能够安全地由多个线程同时访问。这些内容,形成了构建线程安全类以及通过java.util.concurrent类库来构建并发应用程序的重要基础。1 可见性在没有同步的情况下,编译器、处理器在运行时都可能对操作的执行顺序进行一...

2019-04-14 17:14:25 157

原创 java并发编程实战系列-线程安全性

1 多线程的优势及风险1.1 线程的优势发挥多处理器的强大功能。建模的简单性。通过使用线程,可以将复杂并且异步的工作流进一步分解为简单并且同步的工作流,每个工作流在一个单独的线程中运行,并在特定的同步位置进行交互。我们可以通过现有的框架来实现上述目标,例如Servlet。该框架负责一些细节问题,将请求管理、线程创建和负载平衡等在正确的时刻将请求分发给正确的应用程序组件,开发人员并不需要了解...

2019-04-14 16:06:49 118

原创 2019年1月总结

有点惭愧,第一月的执行率很不好,主要是自己经常会懒惰!先来看看2019年元旦时立下的计划:1.作息保持规律。保证作息规律,才有充沛的精力去学习和生活!如果没有特殊情况,每天晚上11点前睡觉,早上7点前起。每月记录自己坚持做到的天数。2.制定学习和生活计划。每月保证5篇以上原创性的技术博客。每月看完一本非技术的书籍,三个月看完一本技术性书籍。每周运动三次以上。学会存钱和理财。今年下...

2019-02-02 20:16:06 150

原创 线程池原理浅析

前言:由于互联网的发展,多线程技术应用的越来越多,但是一味的创建线程,会带来性能消耗,而且到一定数量后,有可能使服务器崩溃,由此引进了线程池。一、线程池的优点合理的利用线程资源,从而减少线程创建和销毁的次数,提高效率。根据实际情况合理的调整线程池的参数,可以一定程度上提高系统的吞吐量。二、线程池的创建现在以java.util.concurrent包中ThreadPoolExecut...

2019-01-27 18:06:18 178

原创 HashMap源码分析二(jdk8)

前言之前的博客HashMap源码分析一(jdk8)已经分析了HashMap的一部分,现在主要来分析HashMap中涉及到红黑树的部分。一、HashMap的红黑树应用在jdk1.8以后,HashMap才用到了红黑树,主要为了改善链表过长的效率问题。说到红黑树,我们首先得理清它的概念。因为红黑树是一种特殊的二叉树,那么我们从二叉树开始讲起。1.、二叉树二叉树二叉树是每个结点最多有两个子树...

2019-01-07 18:32:09 189

转载 数据结构与算法系列目录

所有内容取自数据结构与算法系列 目录,里面有C,C++和Java版本的实现,向大佬学习!

2019-01-04 17:41:39 323

原创 向2018年说再见,向2019招手

2018已经过去了,回望这一年,有失也有得,有辛酸也有喜悦。现在回顾下这一年来的收获:1.新的城市,新的体验。在大学室友的各种劝说下,自己离开了毕业之后一直待着的快四年的深圳,然后来到了杭州,目前已经待了半年了。相比深圳,杭州互联网发展的也不错,然后住房条件要好一些。之前在深圳一直住的是农民房,环境潮湿,空气还不好,待久了会有点抑郁。来到新的地方,整个人的积极性都提高了,或许是对于一个新的地...

2019-01-02 17:10:37 315

原创 HashMap源码分析一(jdk8)

一、概述jdk8中hashmap的结构如图所示,它是由数组+链表+红黑树组成,jdk8之前是由数组+链表组成,那么为什么要这么做那?让我们带着疑问一步步往下看。首先看下这几个基本组成结构:**数组:**数组存储结构是连续的,空间复杂度大,但查询的时间复杂度小。其寻址(通过下标搜索)效率高,一般的插入和删除效率低。**链表:**链表存储结构是离散的,空间复杂度小。其寻址(通过下标搜索)效率...

2018-12-28 17:18:47 275

原创 SpringBoot以jar包方式在后台运行

以前web项目都是打成war放在Tomcat等服务器中运行,springBoot简化了该流程,它可以直接以jar包的方式运行,因为它里面内置了Tomcat服务器。SpringBoot以jar包方式在后台运行的命令为:java -jar spring-boot01-1.0-SNAPSHOT.jar > log.file 2>&1 &具体的参数意思参考以下博客:[S...

2018-12-26 13:40:07 3197

转载 阿里分析型数据库AnalyticDB优化点

参考官方文档地址:https://help.aliyun.com/document_detail/98793.html由于工作中有用到AnalyticDB,只有很好的了解AnalyticDB才能做好优化工作!有些优化点跟MySQL差不多,只是多了分布式的特性,结合工作的应用自己总结了以下几个点:1.SQL编写能简单尽量简单,比如单表查询肯定优于多表级联和子查询。2.尽量不要用select *...

2018-12-25 15:54:26 1206

原创 阿里分析型数据库AnalyticDB与MySQL对比

AnalyticDB全面兼容MySQL协议和SQL 2003,基本上可以像MySQL一样使用它。现在重点看看它们有什么区别。一、与MySQL数据类型对比AnalyticDB数据类型MySQL数据类型差异booleanbool、boolean一致tinyinttinyint一致smallintsmallint一致intint、integer...

2018-12-24 18:05:42 9533 2

转载 阿里分析型数据库AnalyticDB入门

前言由于工作中应用到了阿里的分析型数据库产品,虽然它类似于mysql,但又有一些区别,通过好好的了解它,才能解决自己的性能优化方面的疑惑。一、定义从官方文档了解到其的定义为:阿里云分析型数据库AnalyticDB(简称ADB),是云端托管的PB级高并发实时数据仓库,是专注于服务OLAP领域的数据仓库。在数据存储模型上,采用关系模型进行数据存储,可以使用SQL进行自由灵活的计算分析,无需预...

2018-12-24 15:28:27 9555

原创 浅析时间复杂度和空间复杂度

前言很久之前就听过时间复杂度和空间复杂度,只知道它们是用来形容算法的,可对于其真实含义,确一知半解,今天终于抽出时间来了解一下!一、定义算法复杂度:分为时间复杂度和空间复杂度。时间复杂度:指执行算法所需要的计算工作量,通过这个来衡量算法运行时间的多少。时间复杂度常用大O符号表述。常见的时间复杂度有:常数阶O(1)对数阶O(log2n)线性阶O(n)线性对数阶O(nlog2n)平...

2018-12-11 14:04:47 170

原创 LinkedList源码分析(jdk1.8)

一、概述上图为LinkedList的继承结构图,根据继承关系总结如下:LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList 实现 List 接口,能对它进行队列操作。LinkedList 实现 Deque 接口,即能将LinkedList当作双端队列使用。LinkedList 实现了...

2018-11-29 18:08:27 212

原创 ArrayList源码解析

以下的源码解析均基于jdk8一、定义ArrayList是通过动态数组来实现的,与java数组不同的是它可以自动改变容量。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。ArrayList不是线程安全的,其类似于Vector,只是Vector是线程安全的。ArrayList能快速随机get和set元素,但随机add和delete元素的效率不高。以下为ArrayList的继承...

2018-11-28 15:01:19 93

原创 Integer源码分析

一.源码分析以下博客讲得很详细:https://blog.csdn.net/wangyangzhizhou/article/details/77196626二.涉及到的面试点自动拆装箱和缓存机制1.1.概念自动装箱:java自动将基本类型转换成其对应的包装器类型,比如将int转换成Integer对象自动拆箱:java自动将包装器类型转换成其对应的基本类型,比如将Integer对象转换...

2018-11-18 17:21:39 124

原创 MongoDB入门一:基本概念

一.数据库的分类目前的数据库主要分为关系型数据库和非关系型数据。关系型数据库:通过SQL结构化查询和存储语句,最常见的就是Oracle和MySQL保持数据一致性理论,遵循ACID原理非关系型数据库:- Not Only SQL,是对不同于传统的关系型数据库的数据库管理系统的统称,典型产品memcached (纯内存),redis(持久化缓存),mongodb(文档...

2018-11-14 17:18:33 191

原创 String源码解析二

title: String源码解析二date: 2018-11-13 15:00:00tags: JAVA基础一.intern方法1.定义/** * Returns a canonical representation for the string object. * <p> * A pool of strings, initially empty, is maint...

2018-11-13 19:03:10 173 1

原创 JVM-JVM内存模型

title: JVM内存结构date: 2018-11-07 15:00:00tags: JAVA基础一.JVM的概念JVM是Java Virtual Machine的缩写,及java虚拟机。JVM是java语言平台无关性的关键,Java语言编译程序只需生成在JVM上运行的字节码,然后JVN将字节码解释成具体平台上的机器指令执行。这个特性使得Java能够“一次编译,到处运行”。而其他的高...

2018-11-13 17:32:15 227

转载 阿里P7学习路线(转)

title: 阿里P7学习路线(转)date: 2018-11-09 15:00:00tags: JAVA面试来源:微信公众号 【架构师小秘圈】作者:Hollis,阿里资深Java工程师,一个对Coding有着独特追求的人!来自:Hollis(ID:hollischuang)一、基础篇JVMJVM内存结构堆、栈、方法区、直接内存、堆和栈区别Java内存模型内存可见性、重排序...

2018-11-09 14:35:34 498

原创 String源码解析一

title: String源码解析一date: 2018-11-07 15:00:00tags: JAVA基础一.类定义、属性与构造函数类定义public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {final说明类是常量,String类实现了...

2018-11-08 12:17:46 128

翻译 Elasticsearch入门四:Elasticsearch-搜索、过滤、聚合

title: Elasticsearch入门四:Elasticsearch-搜索、过滤、聚合(译)date: 2018-11-01 17:00:00tags: Elasticsearch原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/_exploring_your_data.html一.搜索 AP...

2018-11-02 13:32:14 1161

空空如也

空空如也

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

TA关注的人

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