Java并发编程——线程池的使用

本文基于JDK 1.6,在高版本JDK中源码有所出入。

一、Java中的ThreadPoolExecutor类

java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,因此如果要透彻地了解Java中的线程池,必须先了解这个类。下面我们来看一下ThreadPoolExecutor类的具体实现源码。

在ThreadPoolExecutor类中提供了四个构造方法:

查看更多

分享到

Java设计模式——工厂模式

1. 什么是工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一,它提供了一种创建对象的最佳方式。

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象

查看更多

分享到

Java设计模式——单例模式

一、单例模式的介绍

1.1 什么是单例模式

单例模式指的是一个类只会有一个实例,即一个类只有一个对象实例。它的特点有:

  • 单例类只能有一个实例

  • 单例类必须自己创建自己的唯一实例

  • 单例类必须给所有其他对象提供这一实例

查看更多

分享到

理解HTTP、HTTPS协议

主要特点

  1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  2. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

  3. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  4. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

查看更多

分享到

字符串的模式匹配(KMP)算法

一、背景

给定一个主串(以 S 代替)和模式串(以 P 代替),要求找出 P 在 S 中出现的位置,此即串的模式匹配问题

Knuth-Morris-Pratt 算法(简称 KMP)是解决这一问题的常用算法之一,这个算法是由高德纳(Donald Ervin Knuth)和沃恩·普拉特在1974年构思,同年詹姆斯·H·莫里斯也独立地设计出该算法,最终三人于1977年联合发表。

在继续下面的内容之前,有必要在这里介绍下两个概念:真前缀真后缀

查看更多

分享到

波兰表达式与逆波兰表达式

常见的算术表达式,称为中缀表达式,例如:

5 + ( 64 / 2 ) * 3

波兰表达式

波兰表达式也称为前缀表达式,以上面的例子为例,其波兰表达式为:

+ 5 * - 6 / 4 2 3

查看更多

分享到

IDEA下SpringBoot实现热部署

Step1: 按照下图所示,勾选Build project automatically:

查看更多

分享到

Java8 Streams API 详解

一、为什么需要 Stream

Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。

Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation)。

查看更多

分享到

Java Web中接入支付宝支付

注:因为没有企业账号,所以本篇文章为沙箱环境中,但是其逻辑和真实环境是一样的。

接入支付宝的步骤大致如下:

  1. 申请一个沙箱环境

  2. 生成签名,并在沙箱环境中设置好签名

  3. 下载官方的SDK结合API学习后开发

    查看更多

分享到

Axiso解决跨域访问

这里以访问豆瓣Top250为例,直接访问如下:

this.$axios.get("http://api.douban.com/v2/movie/top250")
.then(res=>{
console.log(res)
})
.catch(err=>{
console.log(err)
})

查看更多

分享到