黄复贵的博客

执着、奉献、勤奋、创新

黄复贵:从北京理工到今日头条

基本信息 年级学院:2014级软件学院,本科生 毕业去向:今日头条,后端研发工程师 关于我的基本信息,只列出上面这两点,对这片文章来说其实也足够了,所以也没列出其他更多的。我更想表达的,是即将毕业这一年来的心路历程,以及一些微不足道给学弟学妹准备的毕业求职经验分享。 心路历程&a...

2018-04-14 14:17:53

阅读数 765

评论数 0

源码剖析CommonsMultipartResolver解释parseRequest无法获得FileItem

相信在Javaweb做文件上传的时候大家都用到commons-fileupload这个组件,使用这个组件实现文件上传时都会用到这句代码List<FileItem> list = servletFileUpload.parseRequest(request);,意思是解析从客户端发送到服...

2016-12-11 23:28:34

阅读数 3082

评论数 1

通过简单Spring事例理解SpringIOC思想

在阅读本文前,应该对Spring有所了解。Introduction to the Spring Framework,The IoC container。 首先,IOC与AOP独立于Spring存在,只是Spring给出了IOC与AOP(AOP面向切面通过业务逻辑的分离,如:事务管理,权限控制,日志...

2016-11-05 16:12:20

阅读数 968

评论数 0

插入排序

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。代码实现:#include<stdio.h> void print_sort_process(int src[],in...

2016-09-19 22:44:22

阅读数 476

评论数 0

基于mini-db对索引的进一步思考以及分析比较fseek与fgets偏移光标的异同

这篇博客是这个栏目的第一篇文章,因此在此之前有必要介绍一下这个项目的大概情况。要求就是要通过C或C++实现一个简单的数据库,要有最基本的增删改查功能,之后要通过为字段创建索引数据结构提高SELECT查找的效率。项目链接:https://github.com/HuangFuGui/Software-...

2016-09-08 14:57:02

阅读数 615

评论数 1

给即将大三的自己一封信

时间总是过得很快,转眼间你就即将大三了,在这封信的最开始有必要说说大三的重要性,你要明白大三是一个分水岭,它区分人与人之间的差距。首先,大三有很多专业课,计算机网络,操作系统,数据库原理与设计,J2ee架构与开发,软件项目管理等等,这些知识都将会成为你以后工作的资本,没有这些知识你就相当于站在战场...

2016-08-27 15:38:40

阅读数 3401

评论数 1

SpringMVC实现文件下载

前段时间做项目用Plupload实现了文件分块上传SSM框架+Plupload实现分块上传(Spring+SpringMVC+MyBatis+Plupload),项目仅有文件上传还不够,还应提供文件下载。接下来就在原来项目基础上(SSM框架,Spring+SpringMVC+MyBatis)实现文...

2016-08-27 13:44:36

阅读数 7151

评论数 4

SSM框架+Plupload实现分块上传(Spring+SpringMVC+MyBatis+Plupload)

关于Plupload的介绍,相信它的官网http://www.plupload.com/已经给得很详细了。Plupload的上传原理简单点说,就是将用户选中的文件(可多个)分隔成一个个小块,依次向服务器上传,这是它能驾驭上传大文件的原因之一,而且在这个过程可以暂停上传,暂停后再继续上传(异于断点续...

2016-08-23 00:04:45

阅读数 7102

评论数 28

SSM框架+WebSocket实现网页聊天(Spring+SpringMVC+MyBatis+WebSocket)

建站不止于增删改查,还有很多很有魅力的地方。对于通信聊天这块已经青睐好久了,前段时间在做的j2ee项目运用到Spring+SpringMVC+MyBatis的框架集合,是关于一个社交平台的网站,类似于facebook,twitter,微博等。在做完基本的CURD(例如评论模块)后,开始研究网站通信...

2016-08-18 23:06:12

阅读数 29372

评论数 90

Socket通信 ---模拟用户登录

相信Socket对大家都不陌生了,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。我们平时接触的QQ,其聊天功能就是通过Socket实现的。简单点说,Socket就是通信的一种媒介。下面是Socket通信的原理图: 要建立Socket通信,首先要在服务器端...

2016-08-14 21:43:55

阅读数 4816

评论数 2

初识Lucene(下)

本文将给出Lucene 6.1.0的代码实现与讲解。请确保已经阅读:初始Lucene(上)。Lucene从最初的1.9.1更新到现在的6.1.0。在这个过程中一些接口已经被弃用,也有新功能的加入,因此不同版本的Lucene代码实现方式可能是不一样的,具体版本的代码实现可以查看官方文档Lucene ...

2016-08-12 12:59:50

阅读数 1503

评论数 0

初识Lucene(上)

Lucene简介:Apache Lucene is a high-performance, full-featured text search engine library written entirely in Java. It is a technology suitable for near...

2016-08-12 11:25:19

阅读数 550

评论数 0

垂直拆分与水平拆分

垂直拆分:垂直拆分是指数据表列的拆分,把一张列比较多的表拆分为多张表通常我们按以下原则进行垂直拆分: 把不常用的字段单独放在一张表。 把TEXT,BIGINT等大字段拆分出来放在附表中。 经常组合查询的列放在一张表中(联合索引)。 垂直拆分的表在查询的时候用JOIN关键字连接起来即可。水平拆分:水...

2016-07-19 16:48:35

阅读数 1358

评论数 0

数据库设计:范式与反范式

我们在设计数据库的过程中,往往要用到范式或反范式的设计模式。熟悉地掌握范式与反范式的要领,学会在实际开发中恰当地混合使用范式与反范式,才能设计出结构合理,执行高效的数据库。下面就以一个经典的例子进行讲述范式与反范式:职工-部门表:部门-部门领导表:结合这两张表,我们知道,职工Tom与Hill都在部...

2016-07-19 15:49:37

阅读数 4323

评论数 0

联合索引优化多条件查询

联合索引是由多个字段组成的组合索引。若经常需要使用多个字段的多条件查询(WHERE col1 = … AND col2 = … AND col3 = …),可以考虑使用联合索引。现在数据表myIndex中i_testID是主键列,其他列无任何索引:多条件查找名字为xiaoming,城市为beiji...

2016-07-19 00:39:31

阅读数 14977

评论数 1

LIMIT优化

当我们想要在数据表中查找特定的几行时,常常使用LIMIT关键字限制返回的结果数。但是LIMIT的性能又如何呢?示例数据表film来自mysql的示例数据库sakila,其中film_id列为主键列(约束)直接使用LIMIT:从结果可以看到,我们返回了film_id从51开始到55结束的5条记录。值...

2016-07-18 21:18:10

阅读数 1519

评论数 0

查询产生临时表的调优

我们都知道,SQL查询时若产生了临时表,一般要消耗更多的内存,降低查找的效率。因此,当查询时产生了临时表,要进行优化,使引擎在查询时不用创建临时表就能完成查询。示例使用的是MySQL示例数据库sakila。actor表中有一个主键actor_id,演员的first_name与last_name。f...

2016-07-18 15:58:53

阅读数 3742

评论数 0

索引

数据库索引的概念: 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速定位数据库表中的特定信息。索引是一种数据结构。 DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位...

2016-07-17 22:15:34

阅读数 597

评论数 0

分析比较多表查询中的IN与JOIN

IN 是子查询的关键字,JOIN 是连接的关键字,项目开发中经常会使用到多表查询,而子查询与连接正是实现多表查询的重要途径。那两者的实质有什么区别?IN与JOIN谁更好?下面就来分析与比较。现在有test1与test2两张表,都没有任何像主键,外键那样的约束,且只有一个字段。两张表是非相关的。现在...

2016-07-17 10:56:54

阅读数 16487

评论数 3

理解事务的4种隔离级别

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程...

2016-07-16 16:19:20

阅读数 138774

评论数 65

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