Java锁Lock的种类

2020-04-24
阅读 9 分钟
6.2k
我们平时听到用到的锁有很多种:公平锁/非公平锁、可重入锁/不可重入锁、共享锁/排他锁、乐观锁/悲观锁、分段锁、偏向锁/轻量级锁/重量级锁、自旋锁。其实这些都是在不同维度或者锁优化角度对锁的一种叫法,我们在程序中用到的也就那么几种,比如synchronized,ReentrantLock,ReentrantReadWriteLock。

Java阻塞式IO通信

2020-03-26
阅读 7 分钟
2k
网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接建立成功,双方就可以通过网络套接字(Socket)进行通信。在基于传统同步阻塞模型开发中,ServerSocket...

Java线程状态及其转换

2020-03-26
阅读 6 分钟
1.1k
运行(RUNNABLE):java线程中将就绪(ready)和运行中(running)统称为运行(RUNNABLE)。线程创建后调用了该对象的start方法,此时处于就绪状态,当获得CPU时间片后变为运行中状态;

Mysql慢查询日志

2020-03-11
阅读 2 分钟
2k
数据库的慢查询是影响项目性能的一大因素,对于数据库我们要优化SQL,首先要找到需要优化的SQL,这就需要我们知道sql执行时间等信息,除了使用SHOW PROFILES;外,mysql也提供了“慢查询日志”功能,用来记录查询时间超过某个设定值的SQL,这将极大程度帮助我们快速定位到症结所在,以便对症下药。

大数据学习之路之HBASE

2019-09-20
阅读 13 分钟
3.5k
HBase是一个开源的、分布式的,多版本的,面向列的,半结构化的NoSql数据库,提供高性能的随机读写结构化数据的能力。它可以直接使用本地文件系统,也可以使用Hadoop的HDFS文件存储系统。不过,为了提高数据的可靠性和系统的健壮性,并且发挥HBase处理大数据的能力,使用HDFS作为文件存储系统才更为稳妥。

大数据学习之路之Hadoop

2019-09-19
阅读 15 分钟
4.9k
Hadoop是一个开源的分布式计算平台,用于存储大数据,并使用MapReduce来处理。Hadoop擅长于存储各种格式的庞大的数据,任意的格式甚至非结构化的处理。两个核心:

Ununtu安装邮件服务器

2019-07-15
阅读 4 分钟
3.7k
此文我们使用Postfix来搭建邮箱服务器,Postifx是一个SMTP服务器。SMTP服务器也被称为MTA(message transfer agent)

web.xml详解

2019-07-04
阅读 4 分钟
3k
在java工程中,web.xml用来初始化工程配置信息,比如说welcome页面,filter,listener,servlet,servlet-mapping,启动加载级别等等。每一个xml文件都有定义格式规范的schema文件,web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml的模...

Nginx介绍和使用

2019-07-03
阅读 4 分钟
3.2k
Nginx介绍和使用 一、介绍 Nginx是一个十分轻量级并且高性能HTTP和反向代理服务器,同样也是一个IMAP/POP3/SMTP代理服务器。 二、特性 HTTP服务器 反向代理服务器 简单的负载均衡和容错 支持热部署 三、nginx模块 nginx模块一般分为三类: handler:负责处理客户端请求并产生待响应内容。 filter:负责对输出的内容进行...

搜索引擎检索技巧

2019-07-01
阅读 1 分钟
2.6k
搜索引擎检索技巧 我们常用的搜索引擎是google和百度,掌握一些常用的搜索技巧对检索信息的效率和准确度有很大帮助。 1. 双引号 - 完全匹配 把检索词放在双引号里面代表完全匹配,也就是说搜索的返回结果包含检索词,顺序也一致。 2. 减号 - 排除 减号后面的检索词表示你想排除包含这个检索词的结果。使用这个减号的时候...

DNS域名解析过程

2019-02-20
阅读 1 分钟
5.7k
我们都知道在浏览器通过域名发起一个网络请求的时候,会有DNS服务器将域名解析成ip地址,以便向正确的ip地址发送请求,那么这一个过程具体是怎么处理的呢?今天整理了一下DNS域名解析的过程。大致分为10步:

Gremlin入门

2019-01-29
阅读 4 分钟
4.1k
Gremlin是Apache ThinkerPop框架下的图遍历语言,Gremlin是一种函数式数据流语言,可以使用户使用简洁的方式表述复杂的属性图的遍历或查询。每个Gremlin遍历由一系列步骤(可能存在嵌套)组成,每一步都在数据流(data stream)上执行一个原子操作。

HugeGraph入门

2019-01-28
阅读 4 分钟
5.3k
HugeGraph是百度在2018年中旬开源的一款图数据库(Graph Database)系统,可以存储海量的顶点(Vertex)和边(Edge)。实现了Apache ThinkerPop 31框架,支持Gremlin图查询语言2。HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果。也可以再用户程序中调用hugeGraph API进行图分析或查询。

Ubuntu搭建C++开发环境

2018-11-30
阅读 1 分钟
6.3k
Ubuntu搭建C++开发环境 使用IDE:Clion 虚拟机:VMware+Ubuntu18.04 1. 安装Vim 个人习惯vim,先安装一下 {代码...} 2. 安装git 2.1 安装git {代码...} 2.2 生成ssh {代码...} 2.3 将ssh秘钥设置到git仓库上 {代码...} 3. 安装Clion 3.1 下载Clion Linux版:[链接] 3.2 安装Clion {代码...} 3.3 破解Clion:[链接] {代码...

HTTPS协议入门

2018-11-26
阅读 2 分钟
1.4k
HTTPS协议入门 1. HTTPS出现的背景 虽然HTPP协议很优秀并且方便,但是不得不正视HTTP协议存在的一些问题: 通信使用明文(不加密),内容可能会被窃听; 不验证通信双方的身份,因此有可能遭遇伪装; 无法证明报文的完整性,所以有可能已遭篡改; 这些问题不仅在HTTP协议上出现,其他未加密的协议中也会存在这类问题。 ...

协程

2018-11-15
阅读 1 分钟
1.9k
协程又称微线程,从名字可以看出,协程的粒度比线程更小,并且是用户管理和控制的,多个协程可以运行在一个线程上面。那么协程出现的背景又是什么呢,先来看一下目前线程中影响性能的特性:

Java诊断工具Arthas

2018-11-14
阅读 8 分钟
2.9k
Arthas是阿里开源的一个线上java诊断工具,发现阿里还是挺喜欢开源一些技术的,造福人类。昨天试用了一下,发现真是强大,解决了我工作两年的很多困扰,有点相见恨晚的感觉。

实现一个简单的Tomcat

2018-11-06
阅读 7 分钟
1.6k
需要将请求和响应封装成request和response:我们在写后端代码的时候都是直接使用request和response的,这是因为Tomcat已经做好了。

Redis的数据类型

2018-10-10
阅读 4 分钟
2.3k
Redis的数据类型 Redis支持的数据类型一般有6种: 字符串String 字符串链表linked-list 哈希hash 字符串集合set 有序字符串集合sorted set 基数HyperLogLog 比较常用的是字符串和哈希类型。 1. 字符串String 特点: 二进制保存的,存入和获取的数据相同; Value最多可以容纳的数据长度是512M; {代码...} 2. 哈希Hash 特...

Java设计模式之builder模式

2018-09-25
阅读 4 分钟
1.8k
今天学mybatis的时候,知道了SQLSessionFactory使用的是builder模式来生成的。再次整理一下什么是builder模式以及应用场景。

工厂和抽象工厂模式

2018-09-21
阅读 4 分钟
1.9k
抽象工厂模式:如果产品的种类多了,使用一个工厂可能不够,会导致逻辑复杂,可读性差等。这个时候我们可以定义一个工厂接口,通过多个工厂实现类来处理不同的产品。

RESTful入门

2018-09-19
阅读 2 分钟
3k
和RPC一样,都是目前比较主流的URL链接风格,也可以说是web服务的一种架构风格。REST全称Representational State Transfer,表现层状态转移。用一句话简单的概括就是URL定位资源,用HTTP动词(GET,POST,DELETE,PUT)描述操作。其实它真正的全称是Resource Representational State Transfer,看字面意思就是资源在网络...

RocketMQ入门

2018-09-10
阅读 4 分钟
5k
RocketMQ是阿里开源的消息中间件,它是纯java开发,具有低延迟、高吞吐量、高可用性和适合大规模分布式系统应用的特点。从名字可以看出Rocket火箭,代表RocketMQ主打速度。RocketMQ思路起源于Kafka,它对消息的可靠传输及事务性做了优化。

Servlet学习笔记

2018-09-05
阅读 10 分钟
2.4k
工作以来就一直在用各种web框架,比如SpringMVC,Spring Cloud这些,向外提供接口都很方便,但是一直在想它的内部是怎样对外暴露服务的,正好之前学习java基础的时候也没好好看servlet这块,抽个时间学习总结一下,也能更好的理解掌握现在的web框架。

Resin初识

2018-09-04
阅读 2 分钟
2.8k
resin是一个非常流行的web引用服务器,对servlet和jsp提供了良好的支持,自身采用java开发。resin分为普通版和专业版,主要区别是专业版支持缓存和负载均衡。

SpringMVC入门笔记

2018-09-04
阅读 8 分钟
2.2k
Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架 ,是Spring系开源项目中的一个,和IoC配合使用。通过策略接口,Spring框架是高度可配置的,而且支持多种视图技术。Spring分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让他们更容易进行定制。Spring MVC解决的问题如下:

MD5介绍

2018-08-20
阅读 2 分钟
4.5k
md5的全称是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位(16字节,1字节8位)的散列值(常见的是用32位的16进制表示,比如:0caa3b23b8da53f9e4e041d95dc8fa2c),用于确保信息传输的完整一致。

使用vue-cli搭建VUE项目

2018-08-07
阅读 2 分钟
3.4k
使用vue-cli搭建VUE项目 1. 安装并初始化项目 Vue.js提供了一个官方命令行工具,可用于快速搭建大型的应用。 {代码...} 2. 运行并访问项目 {代码...} 项目启动成功,通过浏览器访问[链接]:8080就可以看到项目的主页了。 3. 项目目录结构 刚初始化完成的项目目录以及作用: 目录/文件 说明 build 项目构建(webpack)相关代...

安装使用VUE

2018-08-03
阅读 2 分钟
1.4k
但是在构建大型项目的时候推荐使用NPM安装,NPM能够很好的和诸如webpack或Browserify模块打包器配合使用,同时Vue也提供配套工具来开发单文件组件。

Protocol Buffers学习笔记

2018-08-01
阅读 3 分钟
3.3k
Protocol Buffers是google发明的一种数据交换格式,独立于语言,独立于平台。与其他的数据交换格式有所不同,Protocol Buffers是一种二进制的格式,因此在网络传输的时候效率更高,相对于json它的文件体积更小,相对于xml,它的解析速度更快。