Wenqi's Blog


  • 首页

  • 归档

  • 标签

  • 读书记

  • 勾搭

Java NIO解析

发表于 2017-12-02 | | 阅读次数:

这篇文章先从阻塞与非阻塞,同步与异步之间的定义和关系说起,然后探讨liunx下的5种IO模型,支持非阻塞IO的select/poll/epoll系统调用的基本原理,然后通过Java代码搭建bio方式的服务端,改进服务器在并发场景下bio多线程和线程池的实现方式,最后介绍Java nio来实现一个服务器和多个客户端对话。

阅读全文 »

MySQL-SQL之索引

发表于 2017-11-30 | | 阅读次数:

索引具有加快数据库服务器查询数据的速度的作用,其作用目的是为将经常作用于查询标志(比如where语句的查询条件)的列新建一个数据结构,这个数据结构的每一个元素通常包含两个信息:索引列的值和索引值所执行的数据行的地址。

阅读全文 »

MySQL-SQL之游标,触发器和事务

发表于 2017-11-28 | | 阅读次数:

游标的出现使得对一个查询结果集的每一行结果能够更细粒度的操作,现在MySQL只支持在存储过程中定义存储过程。一个游标的使用过程是这样的:

  • 使用 <declare 游标名 cursor for 查询语句> 定义一个游标
  • 使用 <open 游标名> 打开游标准备使用
  • 使用fetch语句获取结果中的一行结果到变量 <fetch 游标名 into 变量名>
  • 使用 <close 游标名>关闭游标
阅读全文 »

MySQL-SQL之视图、存储过程

发表于 2017-11-23 | | 阅读次数:

例如一个用户表customers(主键为cust_id),一个用户可以有多个订单,订单表为orders(主键为order_num,外键为cust_id),一个订单有多个订单项,订单项表是orderitems(主键order_num,order_item,外键order_num,prod_id),每个订单项对应一个产品,产品表products(主键prod_id,外键vend_id),每个产品对应一个供货商(vendors表,主键vend_id),和多个评价(productnotes表,主键note_id,外键prod_id),也就是如下图所示。

阅读全文 »

MySQL-SQL之表的基本操作

发表于 2017-11-23 | | 阅读次数:

创建表

1
2
3
4
5
6
create table tableName(
列名 类型名 限定词<not null,default value, autoincrement>
primary key(列名1,列名2……)
foreign key(列名1) references 参照表名(参照列名)
foreign key(列名2) references 参照表名(参照列名)
)
阅读全文 »

Java动态代理解析

发表于 2017-11-07 | | 阅读次数:

代理模式是一个高频使用的设计模式,其原因在于我们可以在不改变被代理类的情况下,提供一个和被代理类一样的代理类,并负责预处理被代理类的方法,过滤或执行被代理类的方法以及后续操作。这里所说的一样是指代理类对象可以替代被代理类对象,实现这种效果有两种,一种是代理类和被代理类实现同一个接口,另一种是代理类直接继承自被代理类,这两种方式在接下来的jdk动态代理和cglib中均有体现。在深入了解动态代理之前,我们先了解一下Java的反射机制和静态代理,其中反射机制是动态代理实现的基础。

阅读全文 »

再探Java泛型

发表于 2017-11-01 | | 阅读次数:
  1. 泛型类
  2. 泛型方法
  3. 边界符extends,一般< T extends ConcreteType >用于支持通用T类型的方法调用,方法体中会用到T对象,而< ? extends Concrete >通配符限制类型是用来解决方法参数传递过程中泛型的不可协变性,也就是List类型的参数不接受List参数,但是List<? extends ParentClass>可以接受List参数
    阅读全文 »

自顶向下的Java虚拟机

发表于 2017-10-29 | | 阅读次数:

最近看了《深入理解Java虚拟机》这本书,感觉书中的章节写的很零散,如果能够通过一个完整的例子将所有的知识点串联起来,将整个故事讲清楚,无疑对Java虚拟机运作原理的学习有更好的帮助,本文之所以称为自上而下的Java虚拟机是受《计算机网络:自顶向下方法》启发,想要从上层开始讲起,然后逐步了解这些我们习以为常背后Java虚拟机所做的工作,以期这篇总结能够让Java虚拟机运作的脉络更加清晰。

阅读全文 »

深入理解排序算法java版

发表于 2017-10-19 | | 阅读次数:

简单插入排序

插入排序的基本思想是将整个排序序列划分成“有序区间”和“无序区间”,然后逐个将无序区间中的元素插入到前面有序区间了,逐步将这个区间变有序。其算法复杂度为O(n^2)
其算法描述如下:

阅读全文 »

优先队列(堆)

发表于 2017-10-08 | | 阅读次数:

优先队列也就是我们常说的小根堆,它至少支持两种操作:插入,删除最小者,它的一种实现方式是二叉堆。

阅读全文 »
1234
Wenqi

Wenqi

To do one thing well.

38 日志
16 标签
RSS
Email 订阅
GitHub Linkin
友情链接
  • Mi&Jack
  • MengQi
© 2017 — 2019 Wenqi
由 Hexo 强力驱动
|
主题 — NexT.Mist