Springboot + gradle + websocket的简单使用
项目结构: 引入依赖: "org.springframework.boot:spring-boot-starter-websocket",
"org.springframework.boot:spring-boot-starter-thymeleaf", 启动类: public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoAppli
1.15 克隆虚拟机
克隆之前需要关闭虚拟机,init 0 修改主机名; hostnamectl set-hostname shuxin-2 退出系统重新登录即可
linux命令之tr用法
tr命令可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。 语法 tr(选项)(参数) 选项 -c或——complerment:取代所有不属于第一字符集的字符;
-d或——delete:删除所有属于第一字符集的字符;
-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;
-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。 参数 字符集1:指定要转换或删除的原字符集。当执行转
深入浅出NIO之Channel、Buffer
前言 Java NIO 由以下几个核心部分组成: 1 、Buffer 2、Channel 3、Selector 传统的IO操作面向数据流,意味着每次从流中读一个或多个字节,直至完成,数据没有被缓存在任何地方。 NIO操作面向缓冲区,数据从Channel读取到Buffer缓冲区,随后在Buffer中处理数据。 本文着重介绍Channel和Buffer的概念以及在文件读写方面的应用和内部实现原理。 Buffer A buffer is a linear, finite sequence of el
深入浅出NIO之Selector实现原理
前言 Java NIO 由以下几个核心部分组成: 1、Buffer 2、Channel 3、Selector Buffer和Channel在深入浅出NIO之Channel、Buffer一文中已经介绍过,本文主要讲解NIO的Selector实现原理。 之前进行socket编程时,accept方法会一直阻塞,直到有客户端请求的到来,并返回socket进行相应的处理。整个过程是流水线的,处理完一个请求,才能去获取并处理后面的请求,当然也可以把获取socket和处理socket的过程分开,一个线程负责
同步,异步,阻塞和非阻塞
首先来说下概念: 同步:调用方等待被调用方执行完成,才能继续执行,在被调用方执行期间,调用方会一直等待。 异步:通常是被调用方直接返回一个结果,告诉调用方,我们已经接收到任务了,然后再去慢慢的执行任务。调用方直接获取到了结果,就会继续执行后面的任务。 阻塞:调用方虽然可能已经知道被调用方已经获取到任务了,但是就是想要等待被调用方真正的执行完成。 非阻塞:调用方不关心,也不会等待被调用方完成任务,因为如果有需要,被调用方会来通知调用方。 以上是我对同步与异步,阻塞与非阻塞的个人理解,其实同步和异
有状态的单点登录原理
登录: 1.客户端发起请求到服务端 2.服务端查看session是否登录,如果已经登录,那么就访问资源; 如果还没登录,那么重定向到认证中心,并携带服务URL; 3.认证中心查看该请求有没有全局会话, 如果有,那么就根据session的token,重定向到服务端,并携带token信息; 服务端获取到token信息,携带token、sessionid和登注销地址,去认证中心查证是否是有效token, 如果是,认证中心就把登出地址保存到数据库中,就创建回话,返回访问资源; 如果没有,把登录页面返回
day7_集合,深浅copy
一、集合 集合是无序的,不重复的数据集合,其元素为可哈希(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)。以下是集合最重要的两点: 去重,把一个列表变成集合,就自动去重了。 关系测试,测试两组数据之前的交集、差集、并集等关系。 1、集合的创建 set1 = set({1,2,'barry'})
set2 = {1,2,'barry'}
print(set1,set2) # {1, 2, 'barry'} {1, 2, 'barry'} 2、集合的增 set1 = {'
Python解码编码问题
一、先说说编解码问题 编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。 Eg: 1 2 str1.decode('gb2312') #将gb2312编码的字符串转换成unicode编码 str2.encode('gb2312') #将unicode编码的字符串转换成gb2312编码 python2.7 idle GUI界面打印中文会出现乱码,这是idle本身问题: cmd界面
Oracle 的jdbc方法
package com.swift.jdbc_oracle;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.junit.After;
import
[Q&A] 解决 SBT 初始化或下载 jar 包速度慢的问题
原文地址:https://www.cnblogs.com/memento/p/9153012.html 在 C:\Users\用户名\.sbt 目录下添加一个 "repositories" 文件,注意没有后缀~ 补充如下内容: [repositories]
local
osc: http://maven.aliyun.com/nexus/content/groups/public
typesafe: http://repo.typesafe.com/typesafe/ivy-rel
"javascript:" 伪协议与平稳退化
"javascript:"伪协议是一种非标准化协议,其可以让我们通过一个链接调用javascript 函数。例如:<a href="javascript:pop('http://www.xxx');">Example</a> 但是这样也有一些问题,那就是这种形式在支持伪协议的浏览器中可以使用,但是老旧的浏览器则会尝试打开这个链接并且报错。 同时随着一些用户操作‘禁用javascript’(不得不说,部分用户会禁用js以阻止一些网页弹窗,而一些浏览器可能也会有默认禁用),也会让这样的形式失效,这
Jmeter环境搭建与使用(Linux)
一、Linux上安装jdk(jdk版本>1.8,已安装的可以忽略) 使用命令:java -version,出现java版本表示已安装,如下图: 1.官网下载JDK,下载tar.gz格式jdk安装包:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2.下载后放到Linux上,将其解压到/usr/lib/jvm下: [root@localhost software]# mkdir
BZOJ_3998_[TJOI2015]弦论_后缀自动机
BZOJ_3998_[TJOI2015]弦论_后缀自动机 Description 对于一个给定长度为N的字符串,求它的第K小子串是什么。 Input 第一行是一个仅由小写英文字母构成的字符串S 第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位置的相同子串算作多个。K的意义如题所述。 Output 输出仅一行,为一个数字串,为第K小的子串。如果子串数目不足K个,则输出-1 Sample Input aabc 0 3 Sample Output aab HINT
Objective--C语言预处理命令之条件编译(#ifdef,#else,#endif,#if等)
预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。 预处理指令是以#号
今日推荐
周排行