自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TimeFriends

这里没有天赋异禀,也没有天资聪颖,只有每天的陪伴。万物瞬息万变,但唯一不变的只有变化。抓住变化的根本,以时间为伍,以坚持为伴,做时间的朋友。

  • 博客(22)
  • 资源 (6)
  • 收藏
  • 关注

原创 Hash索引和B+树索引有什么区别或者说优劣势

Hash索引和B+树索引有什么区别或者说优劣势?首先要知道Hash索引和B+树索引的底层实现原理:hash索引底层就是hash表,进行查询时,调用一次hash函数就可以获取到相应的键值,之后进行回表查询获得实际数据.B+树底层实现原理是多路平衡查找树,对于每一次的查询都是从根节点出发,查询到叶子节点方可以获得所查键值,然后查询判断是否需要回表查询.区别:hash索引1:hash索引进行...

2019-07-31 07:23:54 6698 3

原创 解决并发事务造成的脏读,幻读,不可重复读问题

解决并发事务造成的脏读,幻读,不可重复读问题:Mysql的四种隔离级别.未提交读(READ UNCOMMITTED):在这个隔离级别下,其他事务可以看到本事务没有提交的部分修改,因此会造成脏读的问题(读取到了其他事务未提交的部分,而之后该事物进行回滚)这个级别的性能没有足够大的优势,但是又有很多的问题,因此很少使用.已提交读(READ COMMITTED):其他事务只能读取到本事务已提...

2019-07-31 00:04:47 3582

原创 Object的九大方法之Clone()

Object的九大方法之Clone()使用Clone()方法的前提是要实现Cloneable接口.clone()方法就是返回一个原对象的拷贝,默认是浅拷贝,克隆的目的是复制对象,但是新的对象是独立于原来的对象的,一般我们克隆出来的对象都在一些属性做了更改,这个时候需要小心一点,如果更改的属性是引用数据类型,可能会影响到原来的对象,如果是基本数据类型则没事,使用clone()方法默认走的是浅拷贝....

2019-07-30 23:06:00 1310

原创 内存溢出的原因以及解决方案

内存溢出内存溢出是什么1.系统已经不能再分配出你所需要的空间,比如你需要100M的空间,系统只剩90M了,这就叫内存溢出2.意思就是你用资源的时候为他开辟了一段空间,当你用完时忘记释放资源了,这时内存还被占用着,一次没关系,但是内存泄漏次数多了就会导致内存溢出内存溢出的原因1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;2.集合类中有对对象的引用,使用完后未清空,使得JVM...

2019-07-27 07:52:48 2178

原创 SpringMVC知识,spring的执行流程

SpringMVC知识SpringMVC有三大组件分别是:处理器映射器,处理器适配器,视图解析器。处理器映射器(HandlerMapping):​ 它负责根据用户的请求URL来找到处理器(Handler),SpringMVC提供了不同的映射器来实现不同的映射方式,因此我们需要由处理器映射器来进行区分。处理器适配器(HandlerAdapter):​ 通过不同的处理器适配器可以调用不同的处...

2019-07-27 07:51:52 1202

原创 数据库关键字Union和Union All的区别

Union和Union All的区别SQL 的Union操作符合并两个或者多个select语句的结果.请注意:Union内部的每个select语句必须拥有相同数量的列,且列必须有相似的数据类型,同时select语句中列的顺序必须相同.table1建表语句:CREATE TABLE `table1`(`id` INT(2) AUTO_INCREMENT PRIMARY KEY,`na...

2019-07-27 00:13:30 1558

原创 构造方法,静态代码块,成员变量的加载顺序

构造方法,静态代码块,成员变量的加载顺序.静态变量—>静态代码块—>成员变量—>代码块—>构造方法1.静态代码块:在类加载时即运行,而且只运行一次,并且优于各种代码块以及构造函数运行,如果一个类中有多个静态代码块,会按照书写顺序依次执行,静态代码块不能访问普通变量(普通变量只能通过对象来调用).2.构造代码块:在创建对象时被调用,每次创建对象都会调用一次,但是优于...

2019-07-25 11:29:29 2608 3

原创 Java并发编程解析,ConcurrentHashMap理解

Java并发编程之ConcurrentHashMap在多线程环境下HashMap操作时存在丢失数据的情况,为了避免这个情况,强烈建议使用ConcrrentHashMap替代.HashTable虽然是一个线程安全的类,但是他使用的是synchronized来锁住整张Hash表实现线程的安全,即每次锁住整张表让线程独占,相当于让所有线程进行读写时都去竞争一把锁,导致效率低下.ConcurrentH...

2019-07-23 07:32:26 1348

原创 软考学习笔记之~~~2019.7.22

一:计算机系统基础知识1.1.1计算机系统硬件基本组成计算机的基本硬件系统由运算器,控制器,存储器,输入设备和输出设备5大部件组成.运算器,控制器等部件被集成在一起统称为中央处理单元.cpu是硬件系统的核心,用于数据的加工处理,完成逻辑运算及控制功能.存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器,前者速度高,容量小,一般用于临时存放数据.而后者容量大,速度慢,可以长期保存...

2019-07-22 23:28:09 1283 1

原创 SpringBoot项目知识点,配置文件

SpringBoot_Demo零散知识点SpringBoot里面的坐标都是spring-boot-starter-***SpringBoot是整合框架的框架(相当于是全注解的开发,会发xml配置省略).导入一个spring-boot-starter-web它会默认导入spring、Tomcat等号.一:pom.xml配置坐标<?xml version="1.0" encodin...

2019-07-22 15:35:38 1252 1

原创 微信支付的两种模式,扫码支付

微信支付微信支付的两种模式1:由微信生成二维码,客户扫描二维码后,确认支付,微信回调给当前系统.2:由系统调用统一下单API,取得预支付交易信息后,根据信息生成二维码,然后后台循环查询订单API接口查询付款状态(统一下单API,查询订单API)区别:模式一是跳到微信让微信给我们生成二维码​ 模式二是可控制高,比较自主.一:二维码1.1:二维码优势♦ 信息量大,可以容纳1850个大...

2019-07-20 23:46:06 2389

原创 Mysql索引优化及面试题

Mysql索引优化一:索引介绍索引是关系型数据库中给数据库表中一列或者多列的值排序后的储存结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引.MySql索引类型有:唯一索引,主键(聚集)索引,非聚集索引,全文索引.1.1:聚集索引聚集(clustered)索引,也叫做聚簇索引.定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个...

2019-07-19 08:45:28 19173 8

原创 Mysql中的drop、truncate和delete的区别

A:结构层面delete是逐行删除,并且同时将该行的删除操作作为事务,在记录日志中保存以便进行回滚操作.可以与where一起使用删除某一条记录,不加where则删除所有记录.truncate则一次性的从表中删除所有的数据并不把单独的删除操作记录日志保存,删除行是不能恢复的,并且在删除的过程中不会激活与表有关的删除触发器,它的执行速度快.直接truncate+table不用加where.dro...

2019-07-18 08:25:30 1169 1

原创 做分布式架构的SpringCloud与Dubbo的异同点

相同点:SpringCloud与Dubbo可以实现RPC远程调用框架,可以实现服务治理不同点:SpringCloud是一套目前比较全面的微服务框架,整合了分布式常用的解决方案遇到的注册中心(Eureka),负载均衡器(Ribbon),客户端调用工具(Rest和Feign)分布式配置中心(config),服务保护(Hystrix),网关(Zuul Gateway),服务链路(Zipkin),消...

2019-07-17 15:49:26 1543

原创 Angular 1和Angular 2的区别

1:Angular2不是从Angular1升级过来的,Angular2是重写的,所以他们之间的差别比较大2:Angular2使用了javascript的超集‘Typescript’,所以angular1和angular2从设定之初就是不一样的3:Angular1在设计之初主要是针对pc端的,对移动端支持较少(当然也有其他一些衍生框架如ionic),而Angular2是设计包含移动端的;4:A...

2019-07-16 21:01:14 2811

原创 java内存调优,jvm优化.数据库优化

Java调优性能调优同样遵循2-8原则,80%的性能问题是由20%的代码产生的,因此优化关键代码事半功倍,同时,对性能的优化要做到按需优化,过度优化可能引起更多的问题,对于java性能优化,不仅要理解系统的架构,应用代码,同样需要关注JVM层甚至操作系统底层.1:基础性能优化这里的基础性能指的是硬件层级或者操作系统层级的升级优化,比如F5的使用和SDD硬盘的引入,包括新版本的Linux在NI...

2019-07-16 00:39:06 1261

原创 分布式事务的控制

解决方案:1:XA方式XA是一个分布式事务协议,由Tuxedo提出。XA中大致分为两部分:事务管理器和本地资源管理器。其中本地资源管理器往往由数据库实现,比如Oracle、DB2这些商业数据库都实现了XA接口,而事务管理器作为全局的调度者,负责各个本地资源的提交和回滚。XA实现分布式事务的原理如下:总的来说,XA协议比较简单,而且一旦商业数据库实现了XA协议,使用分布式事务的成本也比较低。...

2019-07-15 14:20:39 2440 1

原创 深入理解Java类加载器,类加载器的执行流程

jvm类加载器分类JVM预定义的三种类型类加载器,当一个 JVM启动的时候,Java缺省开始使用如下三种类型类装入器:启动(Bootstrap)类加载器:引导类装入器是用本地代码实现的类装入器,它负责将 <Java_Runtime_Home>/lib下面的核心类库或-Xbootclasspath选项指定的jar包加载到内存中。由于引导类加载器涉及到虚拟机本地实现细节,开发者无法直...

2019-07-15 00:38:15 1385

原创 JVM内存分配,深入理解堆 栈 方法区

基本概念:每运行一个java程序会产生一个java进程,每个java进程可能包含一个或者多个线程,每一个Java进程对应唯一一个JVM实例,每一个JVM实例唯一对应一个堆,每一个线程有一个自己私有的栈。进程所创建的所有类的实例(也就是对象)或数组(指的是数组的本身,不是引用)都放在堆中,并由该进程所有的线程共享。Java中分配堆内存是自动初始化的,即为一个对象分配内存的时候,会初始化这个对象中变...

2019-07-14 23:59:29 1181

原创 HashMap底层实现原理分析,HashMap底层数据结构

HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null),那么对于查找,添加等操作很快,仅需一次寻址即可;如果定位到的数组包含链表,对于添加操作,其时间复杂度为O(n),首先遍历链表,存在即覆盖,否则新增;对于查找操作来讲,仍需遍历链表,然后通过key对象的equals方法逐一比对查找。...

2019-07-14 00:41:41 1522

原创 数据库的死锁原因及优化方案

死锁概览:Java语言通过synchronized关键字来保证原子性,这是因为每一个Object都有一个隐含的锁,这个也称作监视器对象,在进入synchronized之前自动自动获取此内部锁,而一旦离开此方式,无论是完成还是中断都会自动释放锁,虽然这是一个独占锁,每个锁请求之间是互斥的,相对于众多的高级锁(Lock/ReadWriteLock等),synchronized的代价都比后者要高,但是...

2019-07-13 17:15:23 4091 1

原创 单例模式之饿汉式及线程安全问题

知其然知其所以然:时如白驹,间似流水—TimeFriends一:上代码A:饿汉式public class EHan { //饿汉模式 //将构造函数私有化 private Singleton(){} //将对象实例化 private static EHan instance = new EHan(); //得到实例的方法 public ...

2019-07-12 00:25:56 6351 3

Ditto:首选的剪贴板增强软件

Ditto 是一款开源、免费、强大的剪贴板增强工具。可以把复制过的所有内容保存起来(可以设定保存日期或条目总数),快捷地供后续调用。还可以合并粘贴,纯文本粘贴,支持分组、置顶、快速搜索、热键粘贴功能。并且,还可以通过网络共享剪贴板内容

2020-07-16

XJad反编译工具 .class文件反编译

1、XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2; 2、采用集成资源管理器的方式执行,随时点击右键都可进行操作; 3、可同时处理单一或多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理 *.jar文件; 4、可随时查看*.class文件源代码,可指定外部编辑器,如UltraEdit、EditPlus等

2020-07-16

SecureCRT和SecureFX

-SecureCRT是一款支持SSH,同时支持Talnet和rlogin协议的终端仿真程序,简单地说就是windows下登录UNIX或Linux服务器主机的软件。 -SecureFX是范戴克软件公司研发生产的支持普通FTP标准和安全数据传输标准的FTP客户端软件,有着易用、类似于资源管理器的用户界面。SecureFX支持三种文件传输协议:FTP、SFTP、FTP over SSH2。它可以提供安全文件传输,无论连接是任何一种操作系统的服务器,它都能提供安全的传输服务

2020-07-16

截图工具,吸色,标尺

截图工具,吸色,标尺

2020-07-16

代码对比工具.zip

程序员开发好用的工具:代码对比工具

2020-06-30

Java面试宝典5.0And6.0.zip

该宝典是一份知识点全面又不断更新,与时俱进的学习手册,不仅收录了作者亲身面试遇到的问题,还收录了近上万名程序员面试时遇到的问题。我们会一直不断地更新和充实该宝典,同时也希望读者朋友能够多多提供优质的面试题,也许下一个版本就有你提供的面试题哦。该宝典系统地整理了Java初级,中级,高级的基础知识,代码质量,解题思路,优化效率等面试要点,面试的基础知识从编程语言,数据结构及算法三方面总结程序员面试知识点,世间事,很多都可投机取巧,但技术却必须靠日积月累的努力来提高。本宝典更加注重的是知识的掌握,而不仅仅是对面试题的应付。在展示常见的面试问题以及回答技巧的同时还详细讲解了每一道题所包含的知识点,让读者不仅知其然,更知其所以然。

2019-07-18

空空如也

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

TA关注的人

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