自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

waj89757的专栏

励志做一个大鸟的菜鸟级程序猿

  • 博客(371)
  • 资源 (3)
  • 收藏
  • 关注

原创 JSON原理&TOKEN是什么&PULL、PUSH模式

一、背景市面上有众多JSON工具

2021-07-23 17:35:51 803 1

原创 Kafka和RocketMQ区别(架构、存储、高可用)

公司提供两种工具 Kafka和RocketMQ,需要了解原理,业务选型时更好决策。本篇主要讲二者核心区别,然后给出一些业务指导一、架构简介1.1 Kafka三大组件: producer broker consumer1.2 RocketMQ四大组件: producer broker nameSrvconsumerbroker是两者最大分歧,其他都差不多。Kafka broker 就是一个物理节点;负责读写消息、数据同步;负责多节点间协调(路由规则元数据维护,管理t..

2021-03-09 11:43:53 2592 8

原创 我对云原生的几个问题和理解

一、五个问题1.什么是ServiceMesh一切皆函数是什么意思? 一个SpringMVC API接口,有很多filter,很多service。每一个service可以独立一个工程,maven依赖只有这些(甚至只依赖部分JVM),单独部署打包,通过k8s进行流量调度。2.什么是SideCarSideCar原理是什么?怎么实现和进程的共生关系? image镜像打包的时候,sideCar和主程序 相当于两个代码,容器启动后,有两个进程,可以互相通信3...

2021-03-02 14:38:14 422

原创 MySQL总结(五)——Explain的坑以及如何分析SQL

本节主要回答以下4个小问题。一、问题1.explain真的准确吗?limit 100为什么会扫全表?2.怎么确定走没走索引?怎么确定哪里耗时高?3.走索引就一定耗时低吗?4.order by desc 比正序慢吗?二、SQL举例举一个最近碰到的栗子,线上耗时偶尔飘高,于是乎分析了下select source_id from table where a = 1...

2020-03-11 15:49:43 4750 1

原创 MySQL总结(四)——UNDO LOG REDO LOG 详解

本节我们介绍下实现mysql可靠性的两个重要log undo redo log。还是先抛几个问题大家思考思考一、问题1.事务回滚怎么实现?2.RC RR级别可见性是怎么实现的?3.undo redo log 在哪里保存?空间多大?4.redo log在容灾时起到什么作用?二、undo log2.1 先举栗select * from t1 where id = ...

2020-01-15 18:26:13 1250

原创 MySQL总结(三)—— 一次查询流程概述

上一节介绍了BTree的本质,本节我们回到最开始,介绍一次查询都经过哪些步骤。 本节会结合源码粗略介绍查找过程(源码既枯燥又无味。。)几个问题:sql怎么解析,解析成什么了?是否有缓存?怎么查缓存的?举例:create table t1 (`id` intAUTO_INCREMENT;`a` varchar(255),`b` varchar(255...

2019-12-24 16:47:37 559

原创 MySQL总结(二)—— Mysql怎么存储的之真正的BTree

本节专注于讨论BTree的结构。 其他如BTree裂变、查找、插入流程、undolog、redolog各种执行顺序等后面讨论。还是先抛问题。1.数据结构是什么?代码怎么写的?2.这个BTree是在内存还是在磁盘里;内存是不是有一部分BTree的结构?3.联合索引BTree是怎么存储的,多字段查询是怎么检索的?4.为什么用BTree结构,而不用其他存储结构 比如红黑树?...

2019-10-13 20:50:56 1132

原创 MySQL总结(一) 杂谈

用了一段时间通读了Mysql8.0源码,解开了工作中的一些困惑,打算开个专题,精简的总结下。这些问题可能是你我程序员在工作中对mysql的共同的疑惑,还有一直想深入研究但没时间搞明白的事情。第一节主要汇总几个主题,也可以说是几个问题1.Mysql数据怎么存的 1.1文件结构和BTree的代码 1.2 几个重要log日志2.Mysql一次查询经历 2...

2019-10-07 15:46:12 199

原创 分布式数据迁移工具

Data Migration ProjectThis project is a distributed migration service for mysql.It includes full data migration, incremental data migration and real-time data check.

2017-01-02 22:50:54 1562

原创 两阶段提交和三阶段提交的理解

两阶段和三阶段提交

2016-05-22 22:35:55 7577 1

原创 thrift 泛化客户端

thrift 泛化客户端一、痛点在使用thrift时,必须要根据IDL文件编译生成支持thrift协议的客户端代码。一旦有新服务添加,客户端程序必须重新编译并更新线上服务,无法动态调用新服务。二、解决方案2.1主要解决两个问题: 1.数据结构的描述信息 2.一个可以通用的thrift客户端2.2数据结构的描述信息 众所周知thrift是跨平台的,无法像dubbo那样提供一个泛化客户端和

2016-04-28 10:43:49 3729 1

原创 数据迁移经验总结——亿级别多表异构的数据迁移工作

由于系统改版,最近两个月在做数据迁移工作,由于业务的特殊,基本将数据迁移所能踩的坑都踩了一遍,决定好好做个总结。

2015-08-28 20:41:30 4727 1

原创 JVM那些事儿(一)——jvm内存介绍

本节小汪重点介绍下java内存,首先提问:1.jvm内存如何分配2.为什么要划分新生代和老年代,实践中究竟哪些属于新哪些属于旧3.简要介绍一下jstat -gc 如何

2015-02-27 09:22:13 1022

原创 JVM那些事儿(二)——垃圾回收

这节小汪介绍一下jvm的垃圾回收机制,首先我们先提问:1.为什么要有不同的垃圾算法2.垃圾回收器要解决的终极目的是什么3.小汪该如何选择自己的

2015-01-27 22:22:40 1313

转载 JSTL自定义函数以及 及时认证

一、JSTL标签的使用首先,让我们先来了解一下JSTL标签的使用。(1)标签库的配置将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)注意:JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。(2)标签库的使用采用taglib指令引入,如:jsp/jstl/co

2013-06-12 19:49:31 841

转载 OpenSessionInViewFilter 以及session依然closed的解决方法

Spring为我们解决Hibernate的Session的关闭与开启问题。 Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session

2013-06-12 19:14:33 1111

原创 failed to lazily initialize a collection of role:XXX, no session

我得程序用到了一对多关联。在查询parent时候调用了children,就报failed to lazily initialize a collection of role:XXX, no session这个错。将lazy属性改为false依然报这个错误。在开发Struts2.0+hibernate3.2+spring2.5项目过程中,遇到了failed to lazily initial

2013-06-12 19:10:33 961

原创 hql的join fecth 和lazy

使用关联查询的时候:ex:user和person是多对一的关系 person和organization是多对一的关系select u from User u left join u.person p where u.id = 1如果lazy为true,不初始化person类中的父类organizationHibernate: select user0_.id as id4_,

2013-06-11 16:27:34 1033

转载 hql的关联查询 join

6.4.5  左外连接左外连接(Left Outer Join)查询出左表对应的复合条件的所有记录,如查询李晓梅同学的选课信息。下面是类HQLLeftOuterJoinQuery的源代码。package hibernate.ch06;import hibernate.HibernateSessionFactory;import java.util.Iterator;import

2013-06-11 16:16:44 9833

转载 Hibernate之Query接口的uniqueResult()方法

如果查询返回多个值用list()方法[java] view plaincopypublic void testQuery(){          Configuration config = new Configuration().configure();          SessionFactory factory = confi

2013-06-11 10:04:41 2264

转载 JAVA的Date类与Calendar类【转】

Date类在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。这里简单介绍一下Date类的使用。1、使用Date类代表当前系统时间                   Date d = new Date();                   System.out.pr

2013-06-10 21:35:49 767

转载 补码

补码(two's complement) 1、在计算机系统中,数值一律用补码来表示(存储)。 主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 2、补码与原码的转换过程几乎是相同的。 基本简介  补码(2's complement)是一种用二进制表示有号数的方法,也是一种将数字的正负

2013-06-09 15:45:35 1300

转载 Java程序员的堕落 ——只知道框架 不知道原理

我曾在多个场合撰文说过,现在培训出来的企业JAVA开发兵团只知道使用某种框架,但完全不知道这些框架的底层原理。今天早上,在依次对三个职位的应聘者面试中,我又再次见到了这种情形。我们的顾问公司收到了一个客户的招聘需求,要一个经验丰富并通晓SQL的JAVA开发人员。我们公司在这个客户那里享有非常好的声誉,于是我们从招聘代理公司要来了一批简历,开始搜寻合适的目标。首先,关于他们的简历——

2013-06-07 22:28:13 1212

转载 每个程序员都应该了解的内存知识

[编辑的话: Ulrich Drepper最近问我们,是不是有兴趣发表一篇他写的内存方面的长文。我们不用看太多就已经知道,LWN的读者们会喜欢这篇文章的。内存的使用常常是软件性能的决定性因子,而如何避免内存瓶颈的好文章却不好找。这篇文章应该会有所帮助。他的原文很长,超过100页。我们把它分成了7篇,每隔一到两周发表一篇。7篇发完后,Ulrich会把全文发出来。对原文重新格式化是个很

2013-06-07 22:17:28 960

原创 最基本算法 未完待续。。

1.向有序数组中(从大到小),插入一个数,使数字仍然有序i = length;while(x > s[i]){s[i+1] = s[i];i--;}s[i+1] = x;2.使从小到大的数组逆序for(i = 0 , j = length ; i != j ; i++,j--){int x = s[i];s[i] = s[j];s[j]

2013-06-04 17:16:06 771

原创 数组逆序

数组:12345678逆序:87654321算法:for(i = i[begin],j = i[end]; i {t = i[i];i[i] = i[j];i[j] = t;}

2013-06-02 21:17:46 783

转载 位域

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位

2013-06-02 19:47:52 683

原创 一个二进制数字序列,在计算机中作为一个数字单元

int i     i就是一个数字单元字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数。 在ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。  符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。  一个二进

2013-06-02 19:42:23 1614

原创 基本数据结构 java表示(未完)

1.线性表     顺序表 和 链表2.栈   链式和数组展现3.队列(循环队列)  链式和数组展现4.树 (二叉树)  链式和数组展现2.栈见自己的word文档3.队列循环队列    为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circul

2013-06-02 19:38:17 1064

转载 DWR使用总结

DWR使用总结这两天学了下DWR,现在总结一下。DWR是方便使用AJAX连接JS和JAVA的的一个框架,把服务器端 Java 对象的方法公开给 JavaScript 代码。如果是用dwr2.0的jar包,还需要同时导入log4j.jar和commons-loggin.jar,勿忘!!web.xml和dwr.xml放在WEB-INF下!--------------------

2013-06-02 13:43:28 881

转载 Java 位运算(移位、位与、或、异或、非)

Java提供的位运算符有:左移( > ) 、无符号右移( >>> ) 、位与( & ) 、位或( | )、位非( ~ )、位异或( ^ ),除了位非( ~ )是一元操作符外,其它的都是二元操作符。1、左移( Test1、将5左移2位:[java] package com.xcy;  public class Test {     public static

2013-06-02 13:31:54 977

转载 static 变量 方法 代码块

二、static  static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。 被static修饰的成员变量和成员方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享。只要这个类被加载,Java虚拟机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象

2013-05-28 23:00:44 879

转载 final 修饰 类 方法 变量 形参

一、final  根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。你可能出于两种理解而需要阻止改变:设计或效率。final类不能被继承,没有子类,final类中的方法默认是final的。 final方法不能被子类的方法覆盖,但可以被继承。 final成员变量表示常量,只能被赋值一次,赋值后值不再改变

2013-05-28 22:57:21 1919

转载 spring提供的HibernateTemplate()回调函数 为什么要用?

当spring提供的HibernateTemplate()没有提供所需要的功能时,可以用回调函数实现相关功能。     不提倡用getSession()来获得session来实现,因为这样拿到的session是hibernate最原始的session,不享有Spring提供的模板支持 在DAO类中可以使用下面的方法取得session:   final String

2013-05-26 19:53:45 2085

转载 匿名内部类

java匿名内部类转自: http://blog.sina.com.cn/s/blog_62ea4cf40100mubj.html     匿名类是不能有名称的类,所以没办法引用它们。必须在创建时,作为new语句的一部分来声明它们。这就要采用另一种形式的new语句,如下所示: new 这种形式的new语句声明一个新的匿名类,它对一个给定的类进行扩展,或者实现一个给定

2013-05-26 19:50:46 770

转载 getHibernateTemplate()方法怎么执行sql语句

getHibernateTemplate()方法怎么执行sql语句  2010-04-06 13:45:09|  分类: 程序代码类|字号 订阅方法一:获取一个Connection:Connection conn = getHibernateTemplate().getSessionFactory().openSession().conn

2013-05-26 16:49:33 4863

转载 sql和hql 不同的执行方式

Hibernate中addScalar的使用当我们用HQL进行子查询的时候,如select * from Tree where pid in (select id from Tree,此时HIBERANTE就会报错,说什么*号错误之类的。但如果将*改为Tree类里的所有子段时就不会有问题了。就会像平时一样第一行数据返回一个Object[],然后你再根据Tree类里字段对Object

2013-05-26 16:48:35 1246 1

转载 getSession和getHibernateTemplate区别

getSession和getHibernateTemplate区别摘要: 1.使用getSession()方法你只要继承sessionFactory,而使用getHibernateTemplate()方法必须继承 HibernateDaoSupport当然包括sessionFactory2.getSession()方法是没有经过spring包装的,spring会把最原始的ses

2013-05-26 16:44:53 824

转载 Hibernate常见异常(整理ing)

Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1不注意的话,还真的有点无所适从,Batch update returned unexpected row count from update [0]; actual row count: 0; expected:

2013-05-26 12:19:05 1039

转载 Hibernate各种状态与操作

Hibernate各种状态与操作Hibernate的对象有3种状态,分别为:瞬时态(Transient)、 持久态(Persistent)、脱管态(Detached)。处于持久态的对象也称为PO(Persistence Object),瞬时对象和脱管对象也称为VO(Value Object)。瞬时态 由new命令开辟内存空间的java对象,eg. Person

2013-05-26 11:57:37 780

servlet函数

servlet 函数 非常全面

2012-01-14

大象网购物实习报告 JSP

一个不错的基于jsp开发的网站实习报告。各位在做电子商务网站报告的童鞋用的上。

2012-01-08

空空如也

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

TA关注的人

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