自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿官

每天进步一点点

  • 博客(39)
  • 资源 (4)
  • 收藏
  • 关注

原创 maven setting.xml完整配置

maven setting.xml的完整配置

2022-06-02 18:13:21 497

原创 线程池学习笔记(一)ThreadPoolExecutor

ThreadPoolExecutor源码解析

2022-03-30 15:22:10 466

原创 mysql是怎样运行的-学习总结(一)

2020-04-09 14:58:20 1304

原创 用JAVA实现深复制

Resume 简历类package com.springboot.girl.design.prototype;import lombok.Data;/** * @Description 简历 * @Date 2019/6/26 */@Datapublic class Resume implements Cloneable{ private String name;...

2019-06-27 14:33:29 319

原创 BigDecimal精度问题 and double基础类型默认小数位置问题

## 1、BigDecimal精度问题场景:将double类型的数值转为BigDecimal来做数学运算问题: BigDecimal d1 = new BigDecimal(698.745685); 打印输出d1 =698.7456849999999999999999 如果保留 5位小数 则输出 698.74568 (正确的应该是698....

2019-05-16 18:06:45 2407

原创 springMVC请求参数解析问题:日期格式转换的问题(日期字符串yyyy-MM-dd解析为Date类型时时,返回400错误)

#写在最前:以后接收参数的属性类型,尽量都写为String类型,以免再次引发参数解析的问题#问题描述:springmvc controller中的一个方法中,接收参数为一个Bean,在这个bean里面有一个类型为Date的属性leaveBeginDate入参为json对象,格式:{"leaveBeginDate":["2018-07-05"]}请求报400错误#原因...

2018-08-02 17:20:51 5083

原创 几个注解说明(JPA注解,lombok插件应用)

一、@DynamicUpdate 作用:动态更新updateTime,但是若更新的内容跟数据库中的一致,则会优化,不做更新是hibernate的注解,需要引入hibernate的依赖二、@Data 作用:用此注解可以不用在代码中写属性的setter和getter方法,在打包的时候会自动生成编译后的class文件,内容参考如下  需要引入lombok的依赖,且在i...

2018-08-01 15:33:40 1909

原创 ConcurrentHashMap 和HashMap常见的问题总结(jdk1.8的优化点)

JDK1.8之后的改进: 链表改成了红黑树,当链表中的结点达到一个阀值TREEIFY_THRESHOLD时,会将链表转换为红黑树,查询效率提从原来的O(n),提高为O(logn) 将每个segment的分段锁ReentrantLock改为CAS+Synchronized  问题汇: HashMap的get和put的工作原理? 为何说HashMap是线程不安全...

2018-08-01 15:30:06 10143 5

翻译 Java核心技术36课笔记(一):谈谈你对java平台的理解

一 、java是解释执行的说法对吗?不完全正确1、疑问:解释执行和编译执行的区别?类比:解释执行是同声传译(逐字逐句的解释翻译,执行速度慢),编译执行是播放录音(编译成机器可识别的机器码,所以编译执行的,执行速度快)。2、名词解释 JRE(Java Runtime Enviroment):运行时环境,包含jvm和java类库 JDK(Java Development...

2018-07-27 14:50:59 521

转载 java内存工作原理学习笔记(一):概述

java虚拟内存jvm逻辑内存1.程序计数器:每个线程都有自己的一个计数器(因为线程切换时,需要计数器记录执行的位置,这样才能在线程恢复时回到正确的执行位置),记录线程执行的字节码的行号指示器。分支,循环,跳转,异常处理以及线程恢复等都需要这个计数器。此区域是线程私有区域2.虚拟机栈:也是线程私有的空间。生命周期跟线程相同。它描述的是方法的内存模型。当线程调用方法时,会创建栈帧。栈帧,是用于存放局...

2018-06-01 10:57:01 403

原创 类加载过程学习笔记

1.加载(重要)加载阶段是“类加载机制”中的一个阶段,这个阶段通常也被称作“装载”,主要完成:1.1.通过“类全名”来获取定义此类的二进制字节流1.2 将字节流所代表的静态存储结构转换为方法区的运行时数据结构1.3 在java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口相对于类加载过程的其他阶段,加载阶段(准确地说,是加载阶段中获取类的二进制字节流的动作...

2018-06-01 10:46:25 218

转载 Java中几种常量池的区分

Java中几种常量池的区分原文链接:http://tangxman.github.io/2015/07/27/the-difference-of-java-string-pool/           在java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上说法都有问题,笔者尝试着来区分一下这...

2018-06-01 10:43:58 363

转载 B tree和B+ tree,mysql的索引实现

一、b 树和b+树B树是一种多路自平衡搜索树,它类似普通的二叉树,但是B书允许每个节点有更多的子节点。B树示意图如下:B树的特点:(1)所有键值分布在整个树中(2)任何关键字出现且只出现在一个节点中(3)搜索有可能在非叶子节点结束(4)在关键字全集内做一次查找,性能逼近二分查找算法B+树是B树的变体,也是一种多路平衡查找树,B+树的示意图为:从图中也可以看到,B+树与B树的不同在于:(1)所有关键...

2018-04-11 14:30:55 438

原创 MyISAM并发插入、 InnoDB的间隙锁问题分析

根据网络资料学习并整理一、MyISAM并发插入#语法:lock tables [tablename] read/write Local#说明:1、local的作用:在满足MyISAM表并发插入条件的情况下,允许其他用户在表尾并发插入记录2、在用lock tables显示加锁时必须同时取得所有涉及到的表的锁不支持锁升级,也就是说只能访问显示加锁的这些表,不能访问未加锁的表如果加的是[读锁],那么当前...

2018-04-11 14:24:09 1195

原创 ConcurrentHashMap原理分析(锁分离技术)

1、结构由hash表、segment(桶)、hashEntry(节点)组成注:每个segment都继承了ReentrantLock2、hash过程步骤一:第一次hash,h1=hash1(key);步骤二:第二次hash找出segment的位置,h2=hash2(h1高几位)步骤三:第三次hash找出hashEntry的位置,h3=hash3(h2)插入时从hashEntry链表的头插入,删除时会...

2018-04-04 17:08:00 2007

转载 ThreadLocal内存泄漏的问题

前言ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用 ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析 ThreadLocal 内存泄漏的问题ThreadLocal 实现原理ThreadLocal为什么会内存泄漏ThreadLocal 最佳实践Thread...

2018-04-04 16:50:03 187

原创 redis的特性和数据类型

问题:redis相对于关系数据库表结构优势是什么??数据可设置过期时间内存读写速度快数据类型多样化缓存,队列的功能一、redis的特性1、多种数据类型存储字符串类型散列类型列表类型集合类型有序集合类型2、内存存储与持久化内存的读写速度远快于硬盘自身提供了持久化功能(RDB、AOF两种方式)3、功能丰富可用作缓存、队列、消息订阅/发布支持键的生存时间按照一定规则删除相应的键4、简单稳定相比SQL而言...

2018-03-12 10:40:58 399

原创 string、stringbuffer、stringbuilder的区别

String:对String对象的任何改变都不影响到原对象,相关的任何change对象的操作都会生成新的对象。1、String str="hello world" 和String str=new String("hello world")的区别前者:str是指向字面常量的引用,"hello world"被存储在运行时常量池后者:str引用指向一个对象,而创建对象时的构造方法中的形参是指向字面常量的...

2018-03-12 09:39:55 216

转载 redis分布式锁的安全性探讨(二):分布式锁Redlock

在上一篇日志[redis分布式锁真的安全吗?(一):基于单个redis节点的分布式锁]中介绍了基于单个redis实现的分布式锁,存在无法解决的问题,一起回顾如下1、为了提高单redis的可用性,给master挂了一个从slave节点,因为主从复制是异步的,会出现不同客户端同时获取锁的情况客户端1在master中获得了锁,在锁同步到slave之前,master宕机,还未来得及将锁同步到slavesl...

2018-03-07 17:37:19 5962

转载 redis分布式锁安全性探讨(一):基于单个redis节点的分布式锁

一、基于单个redis节点的分布式锁步骤1:向redis发送命令,获取锁SET resource_name my_random_value NX PX 30000解释说明:my_random_value:客户端生成的随机值,要保证在足够长的时间内所有客户端生成的随机值是唯一的NX:当key为resource_name的值不存在时,才能被成功插入(IF NOT EXISTS)。这一点保证了只有一个客...

2018-03-07 17:36:26 701

原创 mysql与oracle的区别

一、并发性(行锁的区别)mysql的InnoDB存储引擎虽然支持行锁,但是当表无索引或者sql语句索引失效时,行锁会变成表锁。oracle行锁,不依赖于表的索引二、事务mysql的MyISAM存储引擎不支持事务,在InnoDB存储引擎下才支持事务oracle完全支持事务三、事务隔离级别mysql默认的隔离级别是:可重复读 repeatable readoracle默认的隔离级别是:不可重复读 re...

2018-03-07 17:33:39 213

转载 hashmap的实现原理(参考

要点一:为什么length是2的幂次方??1、hashMap的存储原理是将key的hash值跟 length-1 进行 & 运算(十进制是%求模运算),从而求得key在hashmap 数组中的位置。2的幂次方可以减少冲突(碰撞),提高hashMap的查询效率。注:碰撞即不同的KEY值求出来的存储位置相同,这种情况叫hash碰撞(冲突),解决碰撞的方法是:链地址法,即将碰撞的oldvalue...

2018-03-05 19:24:11 305

转载 什么是分布式事务(二):分布式事务特性、2PC、3PC

作者:海洋链接:https://www.zhihu.com/question/65292792/answer/229459320来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和...

2018-03-05 19:21:45 2747

转载 什么是分布式事务(一):概念、产生的原因、解决方案

分布式事务是什么先看看百度百科的解释,分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说就是一个大的操作由两个或者更多的小的操作共同完成。而这些小的操作又分布在不同的网络主机上。这些操作,要么全部成功执行,要么全部不执行。PS:拿转帐来说。张三和李四在不同的城市,存储他们账户信息的服务器也在不同的网络主机上。张三有30元钱,李四有...

2018-03-05 19:21:11 6470 1

转载 编程中的幂等性(二):高并发的系统如何保证幂等性

转载自:https://www.cnblogs.com/geyifan/p/6128425.html内容目录:什么是幂等性什么情况下需要幂等幂等VS防重什么情况下需要保证幂等性为什么要设计幂等性的服务幂等的不足保证幂等策略防重复提交策略参考幂等概念来自数学,表示N次变换和1次变换的结果是相同的。这里讨论在某些场景下,客户端在调用服务没有达到预期结果时,会进行多次调用,为避免多次重复的调用对服务资源...

2018-03-05 19:20:24 5905 2

转载 编程中的幂等性(一):http幂等性

一、什么是幂等性?什么是幂等操作?幂等:是一个数学概念,表示N次变换和1次变换的结果相同。幂等操作:其特点是任意多次执行所产生的影响均与一次执行的影响相同(不会改变资源状态,对数据没有副作用)。幂等性:一系列操作都是幂等操作。幂等接口:幂等接口认为,外部调用者会存在多次调用的场景,为了防止重试对数据状态的改变,需要将接口的设计为幂等的HTTP方法的幂等性是指一次和多次请求某一个资源应该具有同样的副...

2018-03-05 19:19:30 1208

转载 脏读、幻读、不可重复读和丢失更新

脏读、幻读、不可重复读和丢失更新2017年6月5日,天气——雨。      前两天整理之前的学习笔记时,发现对事务并发产生的问题——脏读、幻读、不可重复读和丢失更新这些概念有点模糊,于是又重新温习了一遍,现在把自己的一些理解归纳整理如下,方便大家学习。       锁就是防止其他事务访问指定资源的手段。锁是实现并发控制的主要方法,是多个用户能够同时操纵同一个数据库中的数据而不发生数据不一致现象的重...

2018-03-05 19:17:55 256

原创 mysql高级----查询截取分析(二):批量插入数据脚本、用show profile分析sql、全局查询日志

一、批量插入数据脚本往表里插入1000w数据1、建表2、设置参数log_bin_trust_function_creators3、创建函数,保证每条数据都不同(#3.1 随机产生字符串定义函数rand_string(n) 注:delimiter $$表示将sql默认的结束符号(;)改成$$ #3.2 随机产生部门编号定义函数 rand_num()4、创建存储过程#4.1 创建emp表的存储过程#4...

2018-03-05 19:15:26 349

原创 mysql高级----查询截取分析(一):查询优化、慢查询日志

四招:1.观察,至少跑一天,看看生产的慢SQL情况2.开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL3.explain+慢查询分析4.show profile5.数据库服务器参数优化---运维的事一、查询优化1、小表驱动大表(小的数据集驱动大的数据集)注:若大表驱动小表,则会额外增加跟数据库连接的资源消耗2、exists和in2.1exists#语法: select ...from tab...

2018-03-05 19:13:47 475

转载 mysql悲观锁总结和实践

最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证...

2018-03-05 19:11:32 157

转载 mysql乐观锁总结和实践:用version或者时间戳

转载:http://chenzhou123520.iteye.com/blog/1863407原作者:chenzhou123520上一篇文章《MySQL悲观锁总结和实践》谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些不足,因为悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。如果加锁的时间过长,其他用户长时间无法访问,影响了程序的并发访问性,同时这样...

2018-03-05 19:10:54 12792 2

转载 数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)

什么是事务???事务是数据库逻辑工作单元unit(由一组SQL语句组成的逻辑处理单元)四个特性:原子性atomic,一致性,隔离性(有以下四种隔离级别),永久性#知道点复习1、事务的特性2、事务的传播行为如果当前存在事务,就加入该事务required:当前没有事务,就创建一个新事务(常用)supports:当前没有事务,就以非事务执行mandatory:当前没有事务,就抛出异常requires_n...

2018-03-05 19:09:44 445

原创 mysql高级----锁机制(表锁、行锁;读写锁;乐观锁,悲观锁)

一、锁介绍1、定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言尤其重要,也更加复杂。2、举个例子(生活购物)3、...

2018-03-05 19:08:40 5514 3

原创 mysql高级----索引优化(二):索引失效案例(应该避免)

建表SQL索引情况一、全值匹配我最爱二、最佳左前缀法则1、where条件列的,从索引的最左前列开始,且不跳过索引中的列2、违背原则:未以最左前列开始,索引失效3、违背原则:跳过索引中间列(age),只引用了部分索引结论:where条件要满足最佳左前缀法则。口诀:带头大哥不能死,中间兄弟不能断三、不在索引列上做任何操作(计算、函数、自动or手动类型转换),会导致索引失效而转向全表扫描即使满足最左前缀...

2018-03-05 19:05:15 2359 2

原创 mysql高级----索引优化(一):索引分析

一、单表1、表结构2、案例分析显示表的索引信息:show index from 表名重新分析:仍然用了文件排序,因为comments范围查询,会导致索引失效将where条件改成comments=1后,分析结果如下:相当于给定已知组合索引中的两个列,求未知的另外一个列时,可以用索引求得。显示表的索引信息:show index from 表名分析结果:此时排序就不会用到额外的 [文件排序]二、两张表1...

2018-03-05 18:57:32 427

原创 mysql高级--索引简介

一、索引简介1、什么是索引?(排好序的、快速查找的) 索引的本质是一种数据结构,帮助mysql高效获取数据的数据结构。可以理解为:排好序的、快速查找的数据结构。2、为什么要创建索引?作用:提高查找效率,类似于新华字典 功能:排序+快速查询 (注:由于索引的功能,它会影响* where 查询条件的条件约束* order by 后面的排序)举例:若要在排好序的数据中找...

2018-03-05 18:26:48 197

原创 mysql高级---explain详解

一、Mysql Query Optimizer二、Mysql 瓶颈分析CPU:CPU在饱和的时候,一般发生在数据装入内存或从磁盘上读取数据的时候(从磁盘到内存)IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候(装入数据>内存容量)服务器硬件的性能瓶颈:top,free,iostat和vmstat来查看系统的性能状态三、Explain(查询执行计划)假设mysql未出现瓶颈,且优化分析也...

2018-03-05 18:01:31 667

原创 mysql高级--mysql逻辑架构

概览:mysql是分层、可拔插式的存储引擎架构,将查询处理和其它的系统任务以及数据的存储提取(写/读)相分离。1、连接层作用:连接处理、授权认证及相关的安全方案。2、服务层核心功能,如SQL接口,SQL分析及优化,内置函数及查询缓存3、存储引擎常用的两类存储引擎有:MyISAM(读操作)和InnoDB(写操作)阿里巴巴、淘宝用哪个存储引擎呢???  答案:Percona server4、存储层(文...

2018-03-05 14:57:44 291

原创 mysql的7种join理论

一、复习:1、创建索引的格式: 表名》user   列名》id,name,sex,email单列索引:create index idx_user_name on user(name);组合索引:create index idx_user_nameEmail on user(name,email);2、select查询顺序 from>on>join/where>group by&g...

2018-03-05 14:55:39 1338

算法图解,极客时间专栏作家--王争推荐数据结构入门书

本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。

2018-11-08

EXT2.0中文手册

无论你是Ext库的新手,抑或是想了解Ext的人,本篇文章的内容都适合你。本文将简单地介绍Ext的几个基本概念,和如何快速地做出一个动态的页面并运行起来,假设读者已具备了一些JavaScript经验和初级了解HTML Dom。

2009-06-03

HTML DOM文档

DOM是Document Object Model文档对象模型的缩写。根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。简单理解,DOM解决了Netscape的Javascript和 Microsoft的Jscript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本和表现层对像。

2009-03-16

IBM—PC汇编语言课件.rar

本课程以 IBM-PC 为背景机讲授 8088 汇编语言的各种寻址方式及指令系统, 系统介绍汇编语言的基本概念及基本原理,分析讨论用汇编语言进行程序设计的基本思想及基本方法, 课程通过课堂教学和一定量的实验教学相结合。通过本课程的学习 将使学生受到更严密、更系统的程序设计及其思维方法的训练,为深入分析、研究、开发新的软件系统打下良好的训练基础。

2009-03-06

空空如也

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

TA关注的人

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