1、进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位)
2、线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位)
3、区别:线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。 多进程是指操作系统能同时运行多个任务(程序)。 多线程是指在同一程序中有多个顺序流在执行。
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口(其实准确来讲,应该有三种,还有一种是实现Callable接口,并与Future、线程池结合使用)
几种常用的认证机制
HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可, 但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避免采用HTTP Basic Auth
OAuth(开放授权)是一个开放的授权标准,允许用户让第三方应用访问该用户在某一web服务上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。
OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的第三方系统 (例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。 这样,OAuth让用户可以授权第三方网站访问他们存储在另外服务提供者的某些特定信息,而非所有内容
- 简洁、轻量、设计良好。不需要 powerdesigner 这种重量的建模工具
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
if(StringUtils.isBlank(inputString)){...} //不推荐直接使用String.isEmpty,因为它无法检测null对象
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.5</version>
</dependency>
阿里云开放端口 https://jingyan.baidu.com/album/95c9d20d624d1eec4e756125.html?picindex=3
腾讯云开放端口,暂未找到官方说明,但1025端口被官方禁用。
1、文件改后缀:
mv *.jpg *.png
2、文件改名,将一堆asdXXX.jpg的文件,更改为123XXX.png的文件:
mv asd*.jpg 123*.png
windows下的命令为ren
3、cmd 下java -jar运行一个程序,中文乱码(零时生效):
$ CHCP 65001
65001 UTF-8
950 繁体中文
936 简体中文
437 美式英语