自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 秒懂Java动态编程(Javassist研究)

概述什么是动态编程反射动态编译调用JavaScript引擎动态生成字节码动态编程解决什么问题Java中如何使用Javassit使用方法动态生成一个类动态添加构造函数及方法动态修改方法体什么原理总结概述什么是动态编程?动态编程解决什么问题?Java中如何使用?什么原理?如何改进?(需要我们一起探索,由于自己也是比较菜,一般深入不到这个程度)。什么是动态编程动态...

2019-09-27 13:45:56 243

原创 Hibernate JPA创建表使用innodb

如果在persist.xml中 dialect 使用 org.hibernate.dialect.MySQL5Dialect,那么创建表默认使用Myisam;要改为默认使用innodb,dialect 使用org.hibernate.dialect.MySQL5InnoDBDialect。另外注意,Myisam不支持外键约束。...

2019-09-06 13:40:18 707

转载 MYSQL的SQL性能优化总结

很多时候,我们的程序出现的“性能问题”,其实是我们自己写的那"坨"代码的问题,是自己Coding的问题,是Mysql的DML语句使用的问题。以下是我总结的关于MySQL DML语句的使用中需要注意的点。对于select *要时刻保持谨慎的态度绝大多数情况,是不需要select *的。一旦使用了这种语句,便会让优化器无法完成索引覆盖扫描这类优化,而且还会增加额外的I/O、内存和CPU的消耗...

2019-08-28 14:08:38 168

转载 数据库Sharding的基本思想和切分策略

本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示一、基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这...

2019-08-27 14:01:23 173

转载 分库分表需要考虑的问题及方案

分库分表的基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个...

2019-08-27 13:58:13 117

原创 MySQL readview

建议阅读:https://yq.aliyun.com/articles/560506

2019-08-13 17:05:21 1059

转载 InnoDB MVCC实现原理及源码解析

1、原理介绍数据多版本(MVCC)是MySQL实现高性能的一个主要的一个主要方式,通过对普通的SELECT不加锁,直接利用MVCC读取指版本的值,避免了对数据重复加锁的过程。InnoDB支持MVCC多版本,其中RC和RR隔离级别是利用consistent read view方式支持的,即在某个时刻对事物系统打快照记下所有活跃读写事务ID,之后读操作根据事务ID与快照中的事务ID进行比较,判断可...

2019-08-12 17:28:52 131 1

原创 InnoDB MVCC

InnoDBis amulti-versioned storage engine: it keeps information about old versions of changed rows, to support transactional features such as concurrency androllback. This information is stored in t...

2019-08-12 17:14:31 124

转载 MySQL SQL优化之覆盖索引

前些天,有个同事跟我说:“我写了个SQL,SQL很简单,但是查询速度很慢,并且针对查询条件创建了索引,然而索引却不起作用,你帮我看看有没有办法优化?”。我对他提供的case进行了优化,并将优化过程整理了下来。我们先来看看优化前的表结构、数据量、SQL、执行计划、执行时间等。1. 表结构:CREATE TABLE `t_order` ( `id` bigint(20) u...

2019-08-12 10:38:52 122

原创 mysql explain结果中Type的含义

摘自:https://dev.mysql.com/doc/workbench/en/wb-performance-explain.htmlTable7.1Visual Explain Diagram InformationSystem Name Color Text on Visual Diagram Tooltip related information SYS...

2019-08-08 14:39:57 774 1

转载 MySQL联接查询算法(NLJ、BNL、BKA、HashJoin)

一、联接过程介绍为了后面一些测试案例,我们事先创建了两张表,表数据如下:CREATE TABLE t1 (m1 int, n1 char(1));CREATE TABLE t2 (m2 int, n2 char(1));INSERT INTO t1 VALUES(1, 'a'), (2, 'b'), (3, 'c');INSERT INTO t2 VALUES(2, 'b'), (...

2019-08-07 16:20:28 790 1

原创 ubuntu下使用QtCreator调试hotspot源码

首先你需要学习如何使用openjdk7的源码中的makefile来编译hotspot虚拟机。这个过程如何操作就省略了。《深入理解java虚拟机》一书及网上均有很多教程。现在假设你已经完成了这一步骤,并生成了debug版本的hotspot虚拟机。首先我们使用QtCreator新建一个Plain C++ Project。新建完后添加hotspot的源码,这个有点麻烦,需

2016-07-20 16:26:00 638

原创 虚拟机增加磁盘大小

我用的是VMware workstation 10。首先现在vmware中增加磁盘空间大小。点击虚拟机-》设置-》硬盘-》实用工具。。。这样增加了之后只是增加了实际可用的空间,但是在虚拟机中的系统的分区大小是没改变的。我安装的虚拟机为ubuntu 12.04, 没有分区。。。要扩展/dev/sda1,要使用分区修改工具:gparted(http://ja

2016-07-20 10:59:48 1086 1

转载 Ubuntu 12.04 下编译OpenJDK 7问题

刚开始选择在Windows的Cygwin下编译,结果问题连连,两天都搞不定。只有换到Ubuntu下面。记录一下不过12.04的Ubuntu使用的是3.2的内核,而openJDK的hotspot的Makefile里面支持的内核没这么高,所以会遇到一些问题。所以个人建议还是用9或者10的Ubuntu版本。编译的过程不复杂:下载源代码。 按照README-builds.html里面ubu

2016-07-19 10:23:14 392

转载 深入解析HashMap、HashTable

集合类之番外篇:深入解析HashMap、HashTableJava集合类是个非常重要的知识点,HashMap、HashTable、ConcurrentHashMap等算是集合类中的重点,可谓“重中之重”,首先来看个问题,如面试官问你:HashMap和HashTable有什么区别,一个比较简单的回答是:1、HashMap是非线程安全的,HashTable是线程安全的。2、Hash

2016-07-05 19:36:22 385

转载 Java集合类: Set、List、Map、Queue使用场景梳理

本文主要关注Java编程中涉及到的各种集合类,以及它们的使用场景   相关学习资料 http://files.cnblogs.com/LittleHann/java%E9%9B%86%E5%90%88%E6%8E%92%E5%BA%8F%E5%8F%8Ajava%E9%9B%86%E5%90%88%E7%B1%BB%E8%AF%A6%E8%A7%A3%28colle

2016-07-05 18:54:59 1342

转载 深入理解计算机系统(2.8)---浮点数的舍入,Java中的舍入例子以及浮点数运算(重要)

本文转载地址:http://www.cnblogs.com/zuoxiaolong/p/computer12.html 前言   上一章我们简单介绍了IEEE浮点标准,本次我们主要讲解一下浮点运算舍入的问题,以及简单的介绍浮点数的运算。  之前我们已经提到过,有很多小数是二进制浮点数无法准确表示的,因此就难免会遇到舍入的问题。这一点其实在我们平时的计算当中会经常

2016-06-30 13:31:27 1127

转载 float与double类型的范围和精度

转自:http://www.cnblogs.com/tekson/archive/2009/07/16/1524604.html         http://www.ruanyifeng.com/blog/2010/06/ieee_floating-point_representation.html         http://docs.oracle.com/cd/E19059

2016-06-30 13:28:19 1263 2

转载 学习JAVA浮点数必看文章!

虽然几乎每种处理器和编程语言都支持浮点运算,但大多数程序员很少注意它。这容易理解 ― 我们中大多数很少需要使用非整数类型。除了科学计算和偶尔的计时测试或基准测试程序,其它情况下几乎都用不着它。同样,大多数开发人员也容易忽略 java.math.BigDecimal 所提供的任意精度的小数 ― 大多数应用程序不使用它们。然而,在以整数为主的程序中有时确实会出人意料地需要表示非整型数据。例

2016-06-29 10:02:04 2837

转载 详解Java泛型type体系整理

一直对jdk的ref使用比较模糊,早上花了点时间简单的整理了下,也帮助自己理解一下泛型的一些处理。java中class,method,field的继承体系java中所有对象的类型定义类Type说明:Type : Type is the common superinterface for all types in the Jav

2016-06-22 11:17:21 1324 1

转载 四种常见的 POST 提交数据方式

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头

2016-06-21 10:49:02 128

转载 Struts2表单验证、模型驱动、防重复提交、数据回显笔记整理

刚学完一些零散的struts内置功能,做点笔记,就当回顾一遍,也便以后使用。----------------------------------------------------------------------------------------------------------------------------------------                  1)表单

2016-06-17 13:50:09 998

转载 关系代数中的除法运算

原文地址:http://blog.sina.com.cn/s/blog_6ce299970101hblw.html数据库考试中经常会出现关系运算题目而一般的加减乘运算相对比较简单,通常不会直接出题比较容易乱的是除法认真看下面这段中的图,很容易就理解出除法的     除法运算的定义:这个概念的描述的非常抽象,刚开始学习的同学完全

2016-05-24 10:08:00 738

转载 hibernate中casecade和inverse的区别

原文地址:http://www.mkyong.com/hibernate/different-between-cascade-and-inverse/#Many Hibernate developers are confuse about the cascade option and inverse keyword. In some ways..they really look

2016-05-20 17:09:01 424

转载 hibernate集合映射inverse和cascade详解

原文地址:http://www.cnblogs.com/amboyna/archive/2008/02/18/1072260.html1、到底在哪用cascade="..."?cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或删除对像时更方便一些,只要在cascade的源头上插入或是删除,所有cascade的关系就会被自己动的插入或是删除。便是为了能

2016-05-20 14:22:45 349

转载 Oracle外键级联删除和级联更新

1 级联删除Oracle在外键的删除上有NO ACTION(类似RESTRICT)、CASCADE和SET NULL三种行为。下面以学生-班级为例说明不同情况下的外键删除,学生属于班级,班级的主键是学生的外键。 ?123456789101112

2016-05-20 13:45:47 572

转载 使用log4jdbc记录SQL信息

原文地址:http://www.cnblogs.com/xdp-gacl/p/4081848.html一、log4jdbc的简单介绍  使用log4jdbc在不改变原有代码的情况下,就可以收集执行的SQL文和JDBC执行情况。  平时开发使用的ibatis,hibernate,spring jdbc的sql日志信息,有一点个缺点是占位符与参数是分开打印的,如

2016-05-19 16:58:54 340

转载 利用log4j显示hibernate打印sql中的参数

利用log4j显示hibernate打印sql中的参数大家都知道在 hibernate.cfg.xml 配置文件中添加以下三条配置,就可以在控制台显示执行的sql:[html] view plain copy   property name="show_sql">trueproperty>    property name

2016-05-19 16:27:19 894 1

转载 windows cmd命令显示UTF8设置

原文地址:http://www.cnblogs.com/QQParadise/articles/1685177.htm在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符集。  如果想正确显示UT

2016-05-18 16:24:24 501

转载 mysql int(3)与int(11)的区别

原文地址:http://blog.sina.com.cn/s/blog_610997850100wjrm.html总结,int(M) zerofill,加上zerofill后M才表现出有点点效果,比如 int(3) zerofill,你插入到数据库里的是10,则实际插入为010,也就是在前面补充加了一个0.如果int(3)和int(10)不加zerofill,则它们没有什么

2016-05-18 16:20:48 315 1

转载 文章5:http协议中content-length 以及chunked编码分析

原文地址: http://blog.csdn.net/yankai0219/article/details/8269922 0.序1.http/1.1协议中与chunked编码的相关字段1)Entity Body2)Content-length3)Message Length4)content-length字段的作用 2.chunked编码

2016-04-29 14:10:13 497

转载 eclipse巧用正则表达式替换

在工作中,经常碰到重构代码,有些事情明明很简单,但要改的东西太多了,重复工作量太大,所以学点技巧是灰常有用的   首先在Person.java中有这些静态常量,注意至少有40多个静态常量 Java代码  ...      public static final String PREFERENCE_HIDE_HELP_BLOG    = "PREFERENCE_H

2016-04-27 14:13:03 1462

转载 Accessing Members of an Enclosing Class

A local class has access to the members of its enclosing class. In the previous example, the PhoneNumber constructor accesses the member LocalClassExample.regularExpression.In addition, a local cl

2016-04-23 12:28:08 469

转载 关于Class.getResource和ClassLoader.getResource的路径问题

Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题。Class.getResource(String path)path不以’/'开头时,默认是从此类所在的包下取资源;path 以’/'开头时,则是从ClassPath根下获取;什么意思呢?看下面这段代码的输出结果就

2016-04-20 14:15:38 235

转载 class.getResource()和getResourceAsStream乱码问题

getResource方法使用了utf-8对路径信息进行了编码,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,在此,调用了URLDecoder的decode方法进行解码,以便得到原始的中文及空格路径。String configPath = this.getClass().getClassLoader().getResource("allowPat

2016-04-20 13:39:09 7677

转载 深入 理解 Statement 和 PreparedStatement

一、使用Statement而不是PreparedStatement对象JDBC驱动的最佳化是基于使用的是什么功能. 选择PreparedStatement还是Statement取决于你要怎么使用它们. 对于只执行一次的SQL语句选择Statement是最好的. 相反, 如果SQL语句被多次执行选用PreparedStatement是最好的.PreparedStatement的第一次执行

2016-04-20 10:10:31 303

原创 eclipse自动校验xml文件是否符合dtd\xsd约束

今天试了一下eclipse写xml文件,在里面使用了dtd约束,然后编写xml内容,但是却发现似乎eclipse没有按照dtd约束来检查xml文件,也就是xml文件写错了却没提示。试验了好久,发现右键有个"Validate"选项可以校验xml文件,但是每次保存后都要手动右键点"Validate",太麻烦了!!!!!!!只好去找解决方法了,中文搜索似乎也搜不到,大家都没遇到这问题???还

2016-04-14 17:35:14 6262

转载 Eclipse debug JDK源码无法看到局部变量

Generally speaking, to be able to watch the variables while stepping through JDK source code, you need the class files to be compiled with debug information i.e. compile using javac -g.     So your

2016-04-05 16:53:51 1162

转载 java线程虚假唤醒

public class MyStack {          private List list = new ArrayList();                public synchronized void push(String value) {              synchronized (this) {                  list.add

2016-04-05 14:03:33 1484

转载 happens-before俗解

学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。synchronized、大部分锁,众所周知的一个功能就是使多个线程互斥/串行的(共享锁允许多个线程同时访问,如读锁)访问临界区,但他们的第二个功能 —— 保证变量的可见性 —— 常被遗忘

2016-04-02 17:25:46 259

空空如也

空空如也

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

TA关注的人

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