4 黄复贵

尚未进行身份认证

To be an outstanding geek.

等级
TA的排名 2w+

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

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

2018-04-14 14:17:53

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

相信在Javaweb做文件上传的时候大家都用到commons-fileupload这个组件,使用这个组件实现文件上传时都会用到这句代码List<FileItem>list=servletFileUpload.parseRequest(request);,意思是解析从客户端发送到服务器的request请求(Form表单)得到一个FileItem的List集合,这样每个FileItem都可以简单地

2016-12-11 23:28:34

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

在阅读本文前,应该对Spring有所了解。IntroductiontotheSpringFramework,TheIoCcontainer。首先,IOC与AOP独立于Spring存在,只是Spring给出了IOC与AOP(AOP面向切面通过业务逻辑的分离,如:事务管理,权限控制,日志等,实现内聚开发)的具体实现,这里重点总结IOC。在总结IOC前,有必要说说第一个IOC的例子spri

2016-11-05 16:12:20

插入排序

插入排序(英语:InsertionSort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。代码实现:#include<stdio.h>voidprint_sort_process(intsrc[],intlength){printf("第%d趟排序:",length);inti=0;

2016-09-19 22:44:22

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

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

2016-09-08 14:57:02

给即将大三的自己一封信

时间总是过得很快,转眼间你就即将大三了,在这封信的最开始有必要说说大三的重要性,你要明白大三是一个分水岭,它区分人与人之间的差距。首先,大三有很多专业课,计算机网络,操作系统,数据库原理与设计,J2ee架构与开发,软件项目管理等等,这些知识都将会成为你以后工作的资本,没有这些知识你就相当于站在战场上手无寸铁的士兵。其次,你有可能报名参加面试,或是阿里,或是百度,或是腾讯,或是华为,面试你喜欢的后端开

2016-08-27 15:38:40

SpringMVC实现文件下载

前段时间做项目用Plupload实现了文件分块上传SSM框架+Plupload实现分块上传(Spring+SpringMVC+MyBatis+Plupload),项目仅有文件上传还不够,还应提供文件下载。接下来就在原来项目基础上(SSM框架,Spring+SpringMVC+MyBatis)实现文件下载。并在最后给出效果图。一:前端请求下载:关于下载这部分的前端效果是用jqappend的,没在js

2016-08-27 13:44:36

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

关于Plupload的介绍,相信它的官网http://www.plupload.com/已经给得很详细了。Plupload的上传原理简单点说,就是将用户选中的文件(可多个)分隔成一个个小块,依次向服务器上传,这是它能驾驭上传大文件的原因之一,而且在这个过程可以暂停上传,暂停后再继续上传(异于断点续传)。最重要的是,从头到尾没有一点点UI阻塞,保证了用户体验。下面会开始讲Plupload的实现流程,分

2016-08-23 00:04:45

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

建站不止于增删改查,还有很多很有魅力的地方。对于通信聊天这块已经青睐好久了,前段时间在做的j2ee项目运用到Spring+SpringMVC+MyBatis的框架集合,是关于一个社交平台的网站,类似于facebook,twitter,微博等。在做完基本的CURD(例如评论模块)后,开始研究网站通信并应用于项目中。提到通信,大家都知道Socket。确实,运用Socket能在服务器与客户端之间建立一个数

2016-08-18 23:06:12

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

相信Socket对大家都不陌生了,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。我们平时接触的QQ,其聊天功能就是通过Socket实现的。简单点说,Socket就是通信的一种媒介。下面是Socket通信的原理图:要建立Socket通信,首先要在服务器端建立一个ServerSocket对象对服务器的某个端口进行请求监听。然后,客户端根据指定的服务器地址与

2016-08-14 21:43:55

初识Lucene(下)

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

2016-08-12 12:59:50

初识Lucene(上)

Lucene简介:ApacheLuceneisahigh-performance,full-featuredtextsearchenginelibrarywrittenentirelyinJava.Itisatechnologysuitablefornearlyanyapplicationthatrequiresfull-textsearch,e

2016-08-12 11:25:19

垂直拆分与水平拆分

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

2016-07-19 16:48:35

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

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

2016-07-19 15:49:37

联合索引优化多条件查询

联合索引是由多个字段组成的组合索引。若经常需要使用多个字段的多条件查询(WHEREcol1=…ANDcol2=…ANDcol3=…),可以考虑使用联合索引。现在数据表myIndex中i_testID是主键列,其他列无任何索引:多条件查找名字为xiaoming,城市为beijing,年龄为21的人:返回了一行数据,从执行计划中看到,查询没有使用任何索引,进行了全表扫描,磁盘IO大

2016-07-19 00:39:31

LIMIT优化

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

2016-07-18 21:18:10

查询产生临时表的调优

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

2016-07-18 15:58:53

索引

数据库索引的概念:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速定位数据库表中的特定信息。索引是一种数据结构。DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的就加入搜索结果集合。如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行,大大减少遍历匹配的行数,所以能明显增加查询的速度。来分析这张图片,为Col2列建立了索引,

2016-07-17 22:15:34

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

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

2016-07-17 10:56:54

理解事务的4种隔离级别

数据库事务的隔离级别有4种,由低到高分别为Readuncommitted、Readcommitted、Repeatableread、Serializable。Readuncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,

2016-07-16 16:19:20

查看更多

勋章 我的勋章
    暂无奖章