自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GarfieldEr007的专栏

勤奋治学 深度思考 静心钻研 先苦后甜

  • 博客(53)
  • 资源 (1)
  • 收藏
  • 关注

转载 MyBatis动态SQL底层原理分析

前言废话不多说,直接进入文章。我们在使用mybatis的时候,会在xml中编写sql语句。比如这段动态sql代码: UPDATE users name = #{name} , age = #{age}

2017-09-27 22:46:31 1162

转载 MySQL索引知识总结

对MySQL索引知识的总结笔记。普通索引索引是一种数据结构,主要用于性能的提高。比如我们有一个表t_users,有4个字段:1234567create table t_users ( id bigint(20) not null auto_increment, name varchar(255) not null, age bigint(20)

2017-09-27 22:44:37 949

转载 sql必知必会(第四版) 学习笔记二 视图

本书用到的几个表的建表sql语句如下:--销售产品供应商CREATE TABLE Vendors ( vend_id varchar(20) not null, vend_name varchar(50) not null, vend_address varchar(100), vend_city varchar(100), vend_state varcha

2017-09-23 17:01:28 901

转载 sql必知必会(第四版) 学习笔记一

温习一遍简单的sql语法,把自己掌握还不够的地方,做了些笔记....1 去重复关键词,distinct    select distinct sname from student; 2 限制结果top的用法     select top 5 id from student 获取前五条记录     可以利用top来写sql分页语句 3

2017-09-23 17:00:27 1025

转载 读书笔记 | 为什么从世界500强CEO、政界要员,到著名演员都用这个方法来提高效率?

大家好,我是Rachel。我一直自诩是那种不需要使用calendar,不需要做week planner的人,因为我有一个强大的大脑,我可以都记下。 但是渐渐地,工作上, 生活上,事情越来越多,越来越细。 突然有一天,我感到自己变得很焦虑,很暴躁。事情压得我喘不过气,每天都好忙,被死期追着跑,甚至出现了遗漏和忘记。终于,我意识到,我大脑的内存不够用了。

2017-09-23 16:22:57 1329

转载 分享 | 全职在家工作/读书应该如何保持效率

记得之前有位读者留言说:携隐,能不能分享一下你SOHO也能保持高效的秘诀?我最近刚开始全职在家做自己的事,总觉得东摸摸,西摸摸,时间一下子就过去了,特别没有效率。肿么办!自从我们公司搬到WeWork,我也是大半时间在公司工作的啦。但回国后有颇长一段时间,我确实是天天都在家办公的。我反而觉得,在家效率非常高,因为省去了琢磨今天穿啥出门,琢磨三餐吃啥(阿姨会在家

2017-09-23 16:19:48 2834

转载 RPC框架几行代码就够了

转于作者梁飞在公司的Blog: http://pt.alibaba-inc.com/wp/experience_1330/simple-rpc-framework.html 因为要给百技上实训课,让新同学们自行实现一个简易RPC框架,在准备PPT时,就想写个示例,发现原来一个RPC框架只要一个类,10来分钟就可以写完了,虽然简陋,也晒晒: Java代码  

2017-09-22 23:24:15 852

转载 API设计原则

原文链接:API Design Principles – Qt Wiki基于Gary的影响力上 Gary Gao 的译文稿:C++的API设计指导译序Qt的设计水准在业界很有口碑,一致、易于掌握和强大的API是Qt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是Qt在API设计上的实践总结。虽然Qt用的是C++,但其中设计原则和思考是具有普适性的(如果

2017-09-22 23:11:01 3091

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

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

2017-09-22 23:09:28 1155

转载 MySQL——EXPLAIN和执行计划

EXPLAINMySQL 里提供一个解释命令EXPLAIN。EXPLAIN的用法有两种,分别是:1、解释表结构,等同于DESCRIBE,语法: EXPLAIN table_name; 2、解释查询语句,获得关于 MySQL 如何执行SELECT语句的信息,语法: EXPLAIN [EXTENDED|PARTITIONS] SELECT select_options;

2017-09-22 22:55:58 971

转载 SQL逻辑查询语句执行顺序

高效使用索引的首要条件是知道什么样的查询会使用到索引,这个问题和B+Tree中的“最左前缀原理”有关,下面通过例子说明最左前缀原理。这里先说一下联合索引的概念。在上文中,我们都是假设索引只引用了单个的列,实际上,MySQL中的索引可以以一定顺序引用多个列,这种索引叫做联合索引,一般的,一个联合索引是一个有序元组,其中各个元素均为数据表的一列,实际上要严格定义索引需要用到关系代数,但是这里我不想

2017-09-22 22:49:26 942

转载 SQL逻辑查询语句执行顺序

我的抱怨我一个搞应用开发的,非要会数据库,这不是专门的数据库开发人员干的事么?话说,小公司也没有数据库开发人员这么个职位吧。好吧,对数据库最深的印象还停留在大学《数据库原理》这堂课上,什么第一范式,第二范式…,这些理论的东西,多多少少还是记得点,至于更深层次的,我不会。所以呢,撸起袖子,开始学习吧。干程序员,最不怕的就是学习,如果你连学习都怕了,那还是早点退出这行吧。你说是吧。而我

2017-09-22 22:48:01 753

转载 深入探讨 Java 类加载器

类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中并执行。现在类加载器在 Web 容器和 OSGi 中得到了广泛的使用。一般来说,Java 应用

2017-09-21 21:52:48 1046

转载 Java深度历险(二)——Java类的加载、链接和初始化

在上一篇文章中介绍了Java字节代码的操纵,其中提到了利用Java类加载器来加载修改过后的字节代码并在JVM上执行。本文接着上一篇的话题,讨论Java类的加载、链接和初始化。Java字节代码的表现形式是字节数组(byte[]),而Java类在JVM中的表现形式是java.lang.Class类的对象。一个Java类从字节代码到能够在JVM中被使用,需要经过加载、链接和初始化这三个步骤。这三个步骤中

2017-09-21 21:51:12 951

转载 【深入Java虚拟机】之四:类加载机制

转载请注明出处:http://blog.csdn.net/ns_code/article/details/17881581类加载过程    类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示:    其中类加载的过程包括了加载、验证、准备、解析、初始化五个

2017-09-21 21:50:00 760

转载 利用 Java dump 进行 JVM 故障诊断

引言对于大型 java 应用程序来说,再精细的测试都难以堵住所有的漏洞,即便我们在测试阶段进行了大量卓有成效的工作,很多问题还是会在生产环境下暴露出来,并且很难在测试环境中进行重现。JVM 能够记录下问题发生时系统的运行状态并将其存储在转储(dump)文件中,从而为我们分析和诊断问题提供了重要的依据。常见的转储文件包括 Java Dump, Heap dump 和 System dump。

2017-09-21 21:48:42 1150

转载 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。    现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露

2017-09-21 21:47:13 839

转载 Java堆内存

Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象。在 Java 中,堆被划分成两个不同的区域:新生代 ( Young )、老年代 ( Old )。新生代 ( Young ) 又被划分为三个区域:Eden、From Survivor、To Survivor。这样划分的目的是为了使 JVM 能够更好的管理堆内存中的对象,包括内存的分配以及回收。堆的内存模

2017-09-21 21:46:20 812

转载 AspectJ切入点语法详解

6.5.1  Spring AOP支持的AspectJ切入点指示符       切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下:         execution:用于匹配方法执行的连接点;         within:用于匹配指定类型内的方法执行;     

2017-09-21 21:29:14 908

转载 Spring AOP 之 通知、连接点、切点、切面

1:知识背景软件系统可以看成是由一组关注点组成的,其中,直接的业务关注点,是直切关注点。而为直切关注点提供服务的,就是横切关注点。2:面向切面的基本原理什么是面向切面编程横切关注点:影响应用多处的功能(安全、事务、日志)切面:横切关注点被模块化为特殊的类,这些类称为切面优点:每个关注点现在都集中于一处,而不

2017-09-21 21:26:41 16853 2

转载 Spring AOP中定义切点(PointCut)和通知(Advice)

本文讨论一下Spring AOP编程中的两个关键问题,定义切点和定义通知,理解这两个问题能应付大部分AOP场景。如果你还不熟悉AOP,请先看AOP基本原理,本文的例子也沿用了AOP基本原理中的例子。切点表达式切点的功能是指出切面的通知应该从哪里织入应用的执行流。切面只能织入公共方法。在Spring AOP中,使用AspectJ的切点表达式语言定义切点其中excecution()

2017-09-21 21:24:22 1775

转载 JVM GC参数以及GC算法的应用

之前一篇Blog已经将GC的机制以及GC的算法讲了一下。而这篇Blog主要是讨论这些GC的算法在JVM中的不同应用。1. 串行收集器串行收集器是最古老,最稳定以及效率高的收集器可能会产生较长的停顿,只使用一个线程去回收-XX:+UseSerialGC新生代、老年代使用串行回收新生代复制算法老年代标记-压缩串行收集器的日志输出:

2017-09-19 23:20:06 949

转载 JVM(3):Java GC算法 垃圾收集器

概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和

2017-09-19 23:18:34 798

转载 JVM 垃圾回收算法及回收器详解

本文主要讲述JVM中几种常见的垃圾回收算法和相关的垃圾回收器,以及常见的和GC相关的性能调优参数。GC Roots我们先来了解一下在Java中是如何判断一个对象的生死的,有些语言比如Python是采用引用计数来统计的,但是这种做法可能会遇见循环引用的问题,在Java以及C#等语言中是采用GC Roots来解决这个问题。如果一个对象和GC Roots之间没有链接,那么这个对象也可以被

2017-09-19 23:15:24 806

转载 JVM内存管理–GC算法精解(五分钟让你彻底明白标记/清除算法)

相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧。不过LZ丑话说前面哦,这篇文章应该能让各位彻底理解标记/清除算法,不过倘若各位猿友不能在五分钟内看完,那就不是LZ的错啦。好了,前面只是小小开个玩笑,让各位猿友放松下心情。下面即将与各位分享的,是GC算法中最基础的算法——标记/清除算法。如果搞清楚这个算法,那么后面两个就完全是小菜一碟了

2017-09-19 23:13:16 841

转载 字段类型与合理的选择字段类型

本篇博客稍微有点长,它实际上包括两个内容:一是mysql字段类型的介绍,二是在mysql建表过程中是如何正确选择这些字段类型;字段类型数值MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分(UNSIGNED)或

2017-09-19 23:11:47 1292

转载 MySQL获取数据库每个表的行数

这个问题的起因,是我要进行数据库数据的迁移,迁移后确定数据是否都迁移成功而遇到的。对于数据库的迁移,我是使用MySQL官方的数据库管理工具MySQL Workbench完成的。源数据库和目标数据库都使用MySQL Workbench连接上去。下面以测试数据库为例讲讲过程。(如果不想看我废话,想直接查看怎样获取数据库/表记录数的同学,请直接翻到“四、获取数据库每个表的行数”和“ 五、获取数据

2017-09-19 23:09:11 8641 1

转载 我的MYSQL学习心得(4) : 数据类型

我的MYSQL学习心得(1) :简单语法我的MYSQL学习心得(2) :数据类型宽度我的MYSQL学习心得(3) : 查看字段长度MYSQL里的BLOB数据类型BLOB是一个二进制大对象,用来存储可变数量的数据。BLOB类型分为4种:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储文件的最大大小上不同。MySQL的

2017-09-19 23:07:15 1114

转载 分布式事务之最终一致的Mq实现

问题的起源分布式系统的特性对分布式系统有过研究的读者,可能听说过“CAP定律”、“Base理论”等,非常巧的是,化学理论中ACID是酸、Base恰好是碱。这里我们不对这些概念做过多的解释,有兴趣的读者可以查看相关参考资料。这里针对一致性我们做个简单的科普: 分布式事务有强一致,弱一致,和最终一致性这三种: 强一致 当更新操作完成之后,任何多个后续进程或者线程的访问都

2017-09-17 22:59:36 1099

转载 聊聊分布式事务

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

2017-09-17 22:58:40 801

转载 关于分布式事务、两阶段提交协议、三阶提交协议

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在分布式一致性一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介绍如何有效的解决分布式的一致性问题,其中包括什么是分布式事务,二阶段提交和三阶段提交。分布式

2017-09-17 22:56:59 823

转载 保证分布式系统数据一致性的6种方案

编者按:本文由「高可用架构后花园」群讨论整理而成。有人的地方,就有江湖有江湖的地方,就有纷争问题的起源在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要满足要么同时成功;要么同时失败。A、B、C 可能是多个不同部门开发、部署在不同服务器上的远程服务。

2017-09-17 22:53:06 962

转载 分布式系统的事务处理

当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:1)数据分区:就是把数

2017-09-17 22:52:03 795

转载 分布式事务?No, 最终一致性

分布式一致性一、写在前面现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在互联网金融等一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和成本考虑,传统的强一致的解决方案(e.g.单机事务)纷纷被抛弃。其理论依据就是响当当的CAP原理。我们往往为了可用性和分区

2017-09-17 22:50:34 883

转载 Spring事务配置的五种方式

前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。    总结如下:    Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一

2017-09-17 22:31:37 706

转载 深入理解 Spring 事务原理

一、事务的基本原理Spring事务 的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行:    获取连接 Connection con = DriverManager.getConnection()    开启事务con.setAutoCommit(true/false);    执

2017-09-17 22:29:20 701

转载 Spring事务管理的四种方式(以银行转账为例)

本文配套示例代码下载地址(完整可运行,含sql文件,下载后请修改数据库配置):http://download.csdn.net/detail/daijin888888/9567096一、事务的作用  将若干的数据库操作作为一个整体控制,一起成功或一起失败。  原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。  一致性:指事务前后数据的完整性必须

2017-09-17 22:28:12 1012

转载 Spring 事务机制详解

Spring事务机制主要包括声明式事务和编程式事务,此处侧重讲解声明式事务,编程式事务在实际开发中得不到广泛使用,仅供学习参考。Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。我们在使用Spring声明式事务时,有一个非常重要的概

2017-09-17 22:25:25 813

转载 spring事物配置,声明式事务管理和基于@Transactional注解的使用

事物管理对于企业应用来说是至关重要的,好使出现异常情况,它也可以保证数据的一致性。spring支持编程式事务管理和声明式事务管理两种方式。        编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。     

2017-09-17 22:23:55 711

转载 Spring事务管理(详解+实例)

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机

2017-09-17 22:22:31 688

搜索引擎以及网上免费学术资源的检索

介绍了一下搜索引擎的工作原理和组成部分,以Google和百度为代表介绍了搜索引擎的高级检索功能,以及搜索引擎非常强大的最常用的八条高级检索命令,最后对网上免费学术资源网站进行了介绍。

2015-09-22

空空如也

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

TA关注的人

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