9 xieyu_zy

尚未进行身份认证

互联网攻城狮,DB方面的Java开发工作,多面手,做过传统行业开发,做过DBA,开发,技术管理,项目管理,产品管理,经过几年磨练,自认为算是高级泥水匠。技术上个人自认为擅长java相关核心技术,如JVM,JUC,JDBC,连接池,Java ByteCode,Java OOD设计,代码调优。擅长数据库应用技术Oracle及MySQL,擅长分布式存储架构分布式计算,善于常见问题诊断和系统调优。

等级
TA的排名 5k+

MySQL JDBC为什么都不开启PreparedStatement Cache

同样技术的文章我发现几年前写过一次,^_^:https://blog.csdn.net/xieyuooo/article/details/10732375当时写这篇文章更多偏重于内部的代码实现逻辑来写,可能很多朋友看得更多是云里雾里,不知道对自己有什么帮助,最近也有人在问我为什么我们写代码不开启PSCache,其实从源码确实可以找到答案,不过我觉得用博客写源码分析可能更多是对我自己有帮助,对...

2019-08-20 22:47:56

自我思辨的力量-追求完美的内心驱动

这些年很多朋友通过邮件等方式与我交流,希望了解到一些学习和成长的方法。我认为对于每一个人在不同的阶段成长方法是不同的,而成长这种事情与每个人阅历和性格有很大的关系,不太好一概而论,我抛一个在我认知范围的共性:“自我思辨”,对工作中的一些影响(虽然这不是个人成长的唯一因素,但它一定是个人成长的重要因素之一),这种能力应该说每个人都天生具备的,可能由于工作环境或自身因素阅历等因素,导致我们...

2019-07-24 20:15:17

常见Serialize技术探秘(ObjectXXStream、XML、JSON、JDBC byte编码、Protobuf)

今天是1024程序员节日,没错2的10次方,二进制的节日,那么我就突发奇想,写一篇关于网络传递二进制数据时的序列化和反序列化数据中各种常见的方案,其中不乏一些底层方案和一些开源界很流行的方案,它们在技术上的实现的初衷和背景有较大的区别,因此在设计的架构也会有很大的区别,最终在落地后的:解析速度、对系统的影响、传输数据的大小、可维护性及可阅读性等方面有着较大的区别。 文章分成3个部分:1...

2018-10-24 21:42:04

MySQL JDBC StreamResult通信原理浅析

好几年没写技术博客了,今天写一个小的技术点给大家分享,关于MySQLJDBCStreamResult的原理分享,难度不大,就当程序员的闲聊。如果使用MySQLJDBC读取过比较大的数据(例如超过1GB),应该清楚在读取的时候,很可能会Java堆内存溢出,我们的解决方案通常是使用useCursorFetch读取或Stream读取来处理。使用Stream读取的方式通常的操作方式是在执行SQL...

2018-10-17 17:02:56

关于Java特种兵下册

《Java特种兵下册》这本书一直没出,至上册出版近1年以来,每周会有很多小伙伴发私信或邮件问起我下册出版的事情,纵使目前有很多无奈,小胖还是初步决定准备写下册。下册内容(下册的内容小胖):下册内容在其它博客里面有所标注,但由于事隔一年多,所以小胖有很多知识的认知也有所变化,所以内容上也会有做一些调整。1、设计方面内容依然会写,小胖依然用自己的方式告诉大家怎么样去设计,当然小胖会改很多内容,设计也...

2015-08-20 11:01:15

MySQL JDBC的queryTimeout的一个坑

遇到一个MySQLJDBC的queryTimeout的坑,比较恶心,算是它的BUG,也可以不算,^_^,为啥这么说?看一下下面的解释:现象:用同一个Connection执行大批量SQL的时候,导致了OOM现象。细节现象描述:1、SQL是从某个存储设备上拿到的,不会直接占用大量的内存,每次只会取最多1千条数据过去,也会判定容量不超过多少M。2、每一批SQL执行会单独创建Statement对象,执行

2014-10-08 21:16:54

《Java特种兵 上册》勘误、问答、反馈、心得

大家好,Java特种兵上册已经正式在9月初上市发售。这本书可能很多人拿到会有不同的感受,大多数在意料之中。不论如何,如果您有什么问题,可以在该博客反馈我,我会在回复、正文中将其反馈。以下是近期一些同学向我提出的问题:【光盘中的代码编译有点问题,如何使用?】:解释:本书的代码大部分基于JDK1.6,少部分会依赖于JDK1.7。不过代码之间的依赖关系不强,因此在切换JDK版本的时候,将相应的类注

2014-09-17 12:23:19

一年纯手工打造的Java老A上册开始预售了

Java老A这本书写了很久,昨天终于开始在china-pub、京东、天猫上开始预售了,不过既然叫预售,就肯定还没到货。有兴趣的人可以去看看哈(后续其它网站地址也会在这里公开):china-pub:http://search.china-pub.com/s/?key1=java%cc%d8%d6%d6%b1%f8&type=&pz=1京东:http://search.jd.com/Search?ke

2014-08-16 14:11:52

关于写的Java书籍进展

大家好,去年说要写本Java书,近期就快出版了。目前已经开始打印样书了,最快于本月中旬左右就可以在互动网www.china-pub.com上看到消息,其它各个网站何时会发售要看具体进货情况。去年我预期是半年写好这本书,6个月左右确实将手稿写好,但由于是第一次写书,所以没有意料到许多review的成本也是很高的,另外需要在每次review过后与出版社沟通。经过几次review下来后,书中改掉许多问题

2014-08-04 18:56:00

mysql jdbc处理0日期格式蛋疼问题-也算是BUG

最近在写一个数据库访问的中间平台时,使用MySQLJDBC处理一些日期数据,遇到点变态的问题,给大家乐一乐!首先来看看什么样的日期数据这么蛋疼呢?DATE      0000-00-00DATETIME 0000-00-0000:00:00TIMESTAMP0000-00-0000:00:00TIME       25:21:22对于前3种情况,直接用JDB

2014-06-06 19:41:49

简单的并发编程中犯2的一个小例子--CAS使用时一定要考虑下是否有必要做轮询

并发编程我自己写过不少文章,不过我由于其相对需要理解更多的东西,我自己写代码也有时长犯2的时候,对于这些犯2的问题,我们只能将它作为自己宝贵的经历和财富,本文是很简单Java并发方面的小文章,为啥?因为是一个犯2的例子,这里给大家做个简单分享。先简单描述下场景:在一个app中,我需要为访问者提供某种信息的存储,由于架构上已经确定的方式,所以可以确保每一个app上存储的用户不会太多,于是就放在了内存

2014-01-23 14:08:49

javap浅析-书籍第3章的手写稿样稿

3.2.1javap命令工具第1章中我们就提到了有些地方需要用javap命令工具来看编译后的指令是什么,第2.2.1节中胖哥使用了一个简单的程序让大家感受了一下javap命令工具是什么,这里再次谈到javap命令工具了。或许这一次我们可以对javap命令工具说得稍微清楚一点。为此,胖哥会单独再写几段小程序给大家说说javap命令工具的结果怎么看。胖哥为什么要给简单程序呢?为啥不直接来个复杂的

2013-12-20 19:05:36

稀里糊涂参与了【CSDN 2013年度博客之星评选】,觉得小胖的博客还行,请投一票,哈哈

hi,玩Java的小伙伴们,起来吧!很稀里糊涂地成为CSDN2013年度博客之星评选的候选人,大家觉得小胖的文章写得还行的话,就投票吧,哈哈!        投票地址:http://vote.blog.csdn.net/blogstaritem/blogstar2013/xieyuooo          顺便,小胖的书快出版了哦,一本纯手工打造的Java书,60W字左右,不过是一本比较快

2013-12-15 14:15:14

书籍中的一个小样章-Java并发编程AQS原理浅析

AQS的全称为(AbstractQueuedSynchronizer),这个类也是在java.util.concurrent.locks下面。这个类似乎很不容易看懂,因为它仅仅是提供了一系列公共的方法,让子类来调用。那么要理解意思,就得从子类下手,反过来看才容易看懂。如下图所示:图5-15AQS的子类实现这么多类,我们看那一个?刚刚提到过锁(Lock),我们就从锁开始吧。这里就先以Reentr

2013-12-14 13:51:04

MySQL JDBC 5.1.25的一个坑(应该算是BUG)

这是公司的一个重要项目中的真实案例(目前还未证实其它版本是否存在,不过刚看了最新版5.1.26版本还是没有修复这个操作方式,不过用的小伙伴们要注意了哦):什么样的情况呢,当在代码中使用connection.close()方法的时候,神奇般的StackOverflow了!没错,这就是JDBC自己导致的死递归,堆栈输出的内容如下所示:这个堆栈信息可以:  ConnectionImpl.realC

2013-10-30 14:16:33

今年-计划写一本java方面的书籍-初稿正式完成

几个月前,提到了《今年-计划写一本java方面的书籍》,目前初稿已经完成,字数为50W字左右,现在已经正式进入修订阶段,不过出版估计需要一段时间,因为出版社有他们的安排和流程。章节有所变化,从23章压缩为21章,第一篇的6个章节讲解一些基础技术,是本书的重点,占了半本书的内容,接着会讲解一些源码、设计、实现、和其他的内容。本书主体依然希望帮助工作时间不长,但渴望成长的人,也许会有所迷茫,也许有所困

2013-10-09 11:01:08

MySQL JDBC PrepareStatement基本的两种模式&客户端空间占用的源码分析

关于预编译(PrepareStatement),对于所有的JDBC驱动程序来讲,有一个共同的功能,就是“防止SQL注入”,类似Oracle还有一种“软解析”的概念,它非常适合应用于OLTP类型的系统中。在JDBC常见的操作框架中,例如ibatis、jdbcTemplate这些框架对JDBC操作时,默认会走预编译(jdbcTemplate如果没有传递参数,则会走createStatement),这貌

2013-08-31 14:29:23

spring启动component-scan类扫描加载过程---源码分析

最近因为写书的事情,一段时间没有写博客了,有朋友最近问到了spring加载类的过程,尤其是基于annotation注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring3.0的版本来说明(虽然版本有所区别,但是变化并不是特别大),另外,这里

2013-06-13 23:03:30

今年-计划写一本java方面的书籍

原本以博客为主,在众多朋友的支持下,今年决心写一本java书籍,不论是否能收到大家的关注,也会尽心去写好每一条内容。其实目前java方面的书籍十分多,而高手看来,十本书有8、9本是垃圾书,要么是本身写得不好,或者没有阐述到真正想要的,要么是抄来抄去。也许我写书带着两个目的,一个是我写的是否能给你带来价值,否则我没必要写。第二如果市面上有差不多的书,我写着更没意思,我希望解决某些人群,在成长中遇到困

2013-05-12 00:54:40

Java线程池架构2-多线程调度器(ScheduledThreadPoolExecutor)

在前面介绍了java的多线程的基本原理信息:《Java线程池架构原理和源码解析(ThreadPoolExecutor)》,本文对这个java本身的线程池的调度器做一个简单扩展,如果还没读过上一篇文章,建议读一下,因为这是调度器的核心组件部分。 我们如果要用java默认的线程池来做调度器,一种选择就是Timer和TimerTask的结合,在以前的文章:《Timer与TimerTask的真正原理&使用

2013-04-29 03:58:44

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。