在Sql Server中,每一个join命令,在内部执行时,都会采用三种更具体的join方式来运行。这三种join的方法是:nested loops join、merge join和hash join。这三种方法,没有哪一种是永远最好的,但是都有其最适合的上下文。SQL Server会根据两个结果集所基于的表格结构,以及结果集的大小,选择最合适的联接方法。当然,用户也可以在语句里指定join的方法,也就是添加join hint,SQL Server会尽力尊重你的选择。但是,有些查...
阅读全文
嵌入式开发者应该对大端和小端很熟悉。在内存单元中数据是以字节为存储单位的,对于多字节数据,在小端模式中,低字节数据存放在低地址单元,而在大端模式中,低字节数据存放在高地址单元。比如一个定义一个short型的变量a,赋值为1,由于short型数据占2字节。
在小端模式中,其存放方式为:
0X4000 00000001
0X4001 00000000
而在大端模式中,其存放方式为:
0X4000 00000000
0X4001 00000001
...
阅读全文
在前面我们将了很多关于同步的问题,然而在现实中,需要线程之间的协作。比如说最经典的生产者-消费者模型:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列)的占用权。因为生产者如果不释放对临界资源的占用权,那么消费者就无法消费队列中的商品,就不会让队列有空间,那么生产者就会一直无限等待下去。因此,一般情况下,当队列满时,会让生产者交出对...
阅读全文
包含语句用于在 PHP 文件中引入另一个文件,这样有利于代码重用。PHP 中共有 4 个包含外部文件的方法,分别是 include、include_once、require、require_once。
include 语句
include 语句包含并运行指定文件。被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名),就按照 include_path(在配置文件中可查看 include_path)指定的目录寻找。如果在 include_path 下没找到该文件,那么 include 最后会在...
阅读全文
网络编程就是编写程序使两台联网的计算机相互交换数据。这就是全部内容了吗?是的!网络编程要比想象中的简单许多。
那么,这两台计算机之间用什么传输数据呢?首先需要物理连接。如今大部分计算机都已经连接到互联网,因此不用担心这一点。
在此基础上,只需要考虑如何编写数据传输程序。但实际上这点也不用愁,因为操作系统已经提供了 socket。即使对网络数据传输的原理不太熟悉,我们也能通过 socket 来编程。
...
阅读全文
j2ee项目就是web项目。Web服务是总体概念,J2EE是一种实现方式,还有.NET版、PHP版等不同的实现方式,Web服务器是指能处理Http协议请求开放了某些服务端口的机器.比如OS+IIS,OS+Apach.
作为JavaWeb开发,Servlet才是核心,Tomcat便是servlet容器。
需要掌握的相关知识:
前端web:HTML、CSS、Javascript、javascript框架Jquery。
数据库:Oracle、Mysql和PostgreSQL之类的关系型数据库、Hadoop
框架:SS...
阅读全文
在分布式系统被广泛应用的今天,服务有可能分布在网络中的各个节点中。因此,服务之间的调用对分布式系统来说,就显得尤为重要。
对于高性能的 RPC 框架,Netty 作为异步通信框架,几乎成为必备品。例如,Dubbo 框架中通信组件,还有 RocketMQ 中生产者和消费者的通信,都使用了 Netty。今天,我们来看看 Netty 的基本架构和原理。
Netty 的特点与 NIO
Netty 是一个异步的、基于事件驱动的网络应用框架,它可以...
阅读全文
最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的
if (msgType = "文本") {
// dosomething
} else if(msgType = "图片") {
// doshomething
} else if(msgType = "视频") {
// doshomething
} else {
// doshomething
}
就是根据消息的不同类型有不同的处理策略,每种消息的处理策略代码都很长,如果都放在这种if else代码快中...
阅读全文