- 博客(38)
- 收藏
- 关注
原创 [JAVA]面试题..持续更新
文章目录日期格式化输出日期格式化输出y:year-of-era;正正经经的年,即元旦过后;Y:week-based-year;只要本周跨年,那么这周就算入下一年;就比如说今年(2019-2020) 12.31 这一周是跨年的一周,而 12.31 是周二,那使用 YYYY 的话会显示 2020,使用 yyyy 则会从 1.1 才开始算是 2020。2019-12-31 to yyyy-MM-dd: 2019-12-312019-12-31 to YYYY-MM-dd: 2020-12-31..
2022-02-07 21:25:13
290
原创 tcp/ip 学习笔记
def TCP/IP(): https://www.ixigua.com/i6805832300513722892/滑动窗口慢启动拥塞算法RTTnattydef TCP_IP():局部文件句柄限制:vim /etc/security/limits.conf增加下面root soft nofile 1000000root hard nofile 1000000* soft nofile 1000000* hard nofile 1000000* 表示当前用户,修改后要重启全局文
2021-06-16 22:31:11
225
2
原创 MySQL 与 Redis 缓存的同步
Redis和MySQL这对黄金组合在很多场景中都会被应用到。但如何保证Redis缓存中的数据同步一直都是开发过程中比较关注的问题。那么今天将介绍其中一种解决方案,后续如果还有更好的解决方案将持续更新。先存储到Redis,再同步到MySQL客户端有数据来了之后,先将其保存到Redis中,然后再同步到MySQL中。2)这种方案本身也是不安全/不可靠的,因此如果Redis存在短暂的宕机或失效,那么会丢失数据。先写入MySQL,再通知Redis读取MySQL并同步客户端先将数据写入MySQL, 再
2021-03-20 16:18:17
321
原创 自动生成spring RESTful web服务端和客户端代码
在使用springboot开发 RESTFul 接口的时候,我们往往需要定义 model 实体-> request mapping定义路由 -> 业务逻辑处理.等步骤. 对于不同的业务前两部代码的相似度非常高,今天我们将介绍一种工具自动为我们生成这部分代码,让开发专注于业务逻辑的编写,且生成的代码都是异步接口(reactive响应式编程).在使用之前首先需要下载 openapi-generator-cli-4.0.3.jar .下面以获取和增加用户信息为例子编写yaml文件userap
2021-01-11 22:50:00
630
原创 高并发环境下的性能优化-异步调用(Future)
在业务处理过程中,我们会经常遇到一次用户请求往往会涉及到多个操作。以获取用户信息及其账户余额为例,它包含了从用户中心获取用户基本信息(T1)以及从用户金融中心获取其对应的账户余额信息(T2)如果采用同步调用的话,总的响应时间将是 T1 + T2。类似这种两个子操作在执行过程中没有依赖关系的调用切忌使用同步,这样会大大降低系统的并发量。下面我们介绍几种使用异步调用来来优化掉同步调用,从而缩短响应时间为max(T1,T2)FutureTaskFutureTask一个可取消的异步计算,FutureTas
2020-11-15 19:52:02
807
原创 python可变参数
-- coding: utf-8 -‘’’位置可变参数: 一个形参可以匹配任意个参数在形参前面使用 * 表示该形参是可变参数,可以接收多个实参收集多个实参为一个 tuple‘’’def add(*nums):s = 0print(type(nums))for x in nums:s += xprint(s)add(3, 6, 9)add(nums=1) # got an unexpected keyword argument ‘nums’‘’’关键字可变参数形参前面使用 **
2020-11-09 21:26:23
258
原创 数据库表设计之用户权限表
需求分析1、管理员给用户分配权限,权限数据写到数据库中。2、认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据)user:用户表,存储了系统用户信息,用户类型包括:学生、老师、管理员等role:角色表,存储了系统的角色信息,学生、老师、教学管理员、系统管理员等user_role:用户角色表,一个用户可拥有多个角色,一个角色可被多个用户所拥有menu:记录了菜单及菜单下的权限role_permission:角色权限表,一个角色可拥有多个权限,一个权限可被多个角色所拥有...
2020-10-25 21:19:24
3272
原创 三个线程交替打印零和奇偶数
import java.util.concurrent.Semaphore;import java.util.function.IntConsumer;public class ParallePrintNumber { public static void main(String[] argv) throws Exception { ZeroOddEven zeroOddEven = new ZeroOddEven(9); IntConsumer consu.
2020-09-24 21:16:58
457
原创 python-日志分析
import datetimeimport relogin = '''192.168.1.1 - - [19/Feb/2020:10:23:39] "GET /o2o/media.html?menu=3 HTTP/1.1" 200 16691 "-" "Mozillia/5.0 (compatible; EasouSpider; +http://www.youkuaiyun.com/search/spider.html)"'''def convert_time(timestr): return da
2020-09-20 19:16:20
175
原创 求字符串中不含重复字符的最长子串的长度
import osimport sysdef max_length_of_substring(input_str): if input_str is None or len(input_str) <= 0: return 0 chars_index_record = {} str_len = len(input_str) max_len = 0 start_index = 0 for i in range(str_len): c
2020-09-14 21:27:16
337
原创 字典树C++实现
#ifndef _TireTree_hpp_#define _TireTree_hpp_#include <string>#include <algorithm>#include <iostream>using std::string;template<typename T>class TireeTreeNode {public: #define MAX_CHILD_NUM 26 TireeTreeNode() : leaf(f
2020-09-03 21:34:06
190
原创 STL源码分析之Vector
目录Vector的底层数据结构元素增加元素删除notesVector的底层数据结构元素增加元素删除notesat()与 operator[] 下标操作符的区别:at 操作首先会检查下标是否越界,越界则抛出异常。
2020-09-02 18:35:48
219
原创 http协议学习笔记
目录原理HTTP 请求与响应消息的格式请求方法详解状态码和状态文字常见的报文头实战优化原理HTTP(Hyper Text Transfer Protocol)超文本传输协议。是用于从web服务器传输超文本到本地浏览器的传输协议。HTTP是一个应用层协议,由请求和响应构成,是一个标准的个客户端和服务器模型.HTTP协议定义了web客户端如何从web服务器请求Web页面,以及服务器如何把Web页面传送给客户端.HTTP协议采用了请求/响应模型.客户端向服务器发送一个请求报文,请求报文包括请求的方法,url
2020-07-09 17:35:14
347
原创 C/C++ 学习笔记
@TOC多继承 1 如果一个子类继承了多个父类: 如果其中两个或多个父类有重名的函数,则子类必须覆盖此重名函数,否则通过子类调用此函数将报错。 如果其中两个或多个父类继承了相同的基类,则其父类需要使用虚继承来继承基类,否则共同的基类将被初始化多次。不能被inline的函数包含了递归、循环等结构的函数一般不会被内联。虚拟函数一般不会内联,但是如果编译...
2020-07-09 10:30:06
238
原创 reactive响应式编程
目录反应式编程(Reactive Programming)HttpClient反应式编程(Reactive Programming)反应式编程(Reactive Programming)这种新的编程范式越来越受到开发人员的欢迎。在传统的编程范式中,我们一般通过迭代器(Iterator)模式来遍历一个序列。这种遍历方式是由调用者来控制节奏的,采用的是拉的方式。每次由调用者通过 next()方法来获取序列中的下一个值。使用反应式流时采用的则是推的方式,即常见的发布者-订阅者模式。当发布者有新的数据产生时
2020-06-16 22:56:35
742
原创 使用 nginx + fastDFS搭建静态资源服务器(集群)
目录需求分析分布式文件系统FastDFS环境搭建nginx代理访问静态资源需求分析某视频网站拥有大量的视频/文件/图片提供给用户下载.为了解决海量文件存储以及传输访问的瓶颈问题,需要使用分布式文件系统对海量视频和图片进行管理.分布式文件系统文件系统是负责管理和存储文件的系统软件,它是操作系统和硬件驱动之间的桥梁,操作系统通过文件系统提供的接口去存取文件,用户通过操作系统访问磁盘上的文件。常见的文件系统:FAT16/FAT32、NTFS、HFS、UFS、APFS、XFS、Ext4.什么是分布式文
2020-05-31 15:37:03
1223
1
原创 Mysql入门到精通笔记
目录常用命令索引索引类型创建索引索引失效场景锁事务常用命令索引索引是一种将数据库中单列或多列的值进行排序的数据结构,使用它是为了提高数据库表访问速度。索引类型1 普通索引 :不应用任何限制条件的索引,该索引可以在任何数据类型中创建。2 唯一性索引:使用UNIQUE参数可以设置唯一索引,索引的值必须唯一。主键是一种特殊的唯一索引。可以约束字段的唯一性。**** 实践:添加该字段值相同的多条记录。3 全文索引:使用 FULLTEXT 参数可以设置索引为全文索引。全文索引只能创建在 CHAR, V
2020-05-14 22:41:24
173
原创 JVM学习笔记
目录性能分析和检测工具垃圾收集器调优参数垃圾回收算法常见问题Object o = new ojbect 总共多少字节性能分析和检测工具[top]观察系内存和CPU消耗top -Hp pid 观察进程中的线程CPU和内存消耗。[jps]打印所有java进程的 ID[jstack]jstack pid > pid.stack 生成虚拟机当前线程快照。jstack -l pid ...
2020-04-02 18:07:19
259
原创 python学习笔记
目录元组函数参数format元组定义一个元素的元组. t = (1,) 逗号不能少命名元组:from collections import namedtupleStudent = namedtuple(‘Student’, ‘name age’)tom = Student(‘tom’, 20)tom.name字符串:center/zfill/rjust/ljust函数参数顺序...
2020-03-05 21:46:33
103
原创 hibernate学习笔记
目录getloadclass[hibernate多对一关联映射][一对一关系映射]hibernate一对一主键关联映射(双向关联Person<----->IdCard)hibernate一对一唯一外键关联映射(单向关联Person----->IdCard)[flush][一对多关系映射]【查看隔离级别】【lazy 策略】【HQL】get 加载上来的对象为持久对象; ...
2020-03-01 14:25:36
182
原创 Netty学习笔记
目录IO模型NioEventLoop设计模式IO模型IO操作分两步:1)发起IO请求等待数据准备.2)实际IO操作.1. 阻塞与非阻塞阻塞和非阻塞关注的是: 线程在等待调用结果(消息,返回值)时的状态.阻塞调用是指调用结果返回之前,当前线程会被挂起。非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。2.同步与异步同步和异步关注的是:消息通信机制所谓同步,就是在发出一...
2020-01-05 19:40:39
339
1
原创 springcloud 学习笔记
目录注册中心(eureka)简单实例HA编程实战配置中心config server配置(application.properties)实战注册中心(eureka)Eureka是Netflix开源的服务发现组件,本身是基于Rest的服务,它包含服务端和客户端两部分;在SpringCloud中将它集成在其中,从而实现了微服务的发现与注册;Eureka Server- 服务端-没有存储,内存保持...
2019-12-22 22:12:15
168
原创 springboot配置和常用注解
目录配置加载顺序配置加载顺序1 SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。可放置目录(优先级从高到低)file:./config/ (当前项目路径(运行目录)的config目录下);file:./ (当前项目路径);classpath:/config/ (类路径config目录下);classpath:/ (类路径config下).2 运行只...
2019-12-22 21:33:50
134
原创 springboost数据库开发
目录springboost 配置文件Mybatisspringboost 配置文件 spring.config.location=file:C:\\properties\\application.yml spring.config.name=applicationMybatis1 添加依赖(gradle)'org.mybatis.spring.boot:mybatis-spring-...
2019-12-21 18:21:30
484
原创 使用K8S部署nginx
目录导入Base image编写部署文件部署导入Base image从已有项目拷贝 nginx base imagedocker save -o nginx.tar.gz nginx:xxxxdocker load -i nginx.tar.gzdocker push nginx:xxxxdocker tag nginx:xxxx nls-nginx:19.5测试镜像是否正常工作...
2019-12-20 21:26:50
759
原创 JAVA-并发编程笔记
目录摘要什么是并发线程的几种状态锁的分类AbstractQueuedSynchronizer(队列同步器)ReentrantLock(可重入锁)实现分析线程池使用及实现原理摘要这篇文章主要记录了JAVA并发编程中使用的主要类(包括它们的实现原理)和面试过程会被问到的一些概念。什么是并发并发就是指程序同时处理多个任务的能力。并发编程的根源在多个任务情况下对访问资源的有效控制。线程的几...
2019-12-20 17:12:11
371
原创 redis 学习曲线及记录笔记
[分布式锁]static const std::string LOCK_SCRIPT=“if redis.call(“GET”,KEYS[1]) == ARGV[1] then\n” " return “”\n" “else\n” " return redis.call( “SET”, KEYS[1], ARGV[1], “EX”, ARGV[2], “NX”)\n" “end”;st...
2019-12-17 20:47:02
718
原创 nginx学习笔记
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务...
2019-12-13 16:23:48
112
原创 Docker和K8S安装
Docker简介Docker是一个开源的容器引擎,它有助于更快地交付应用。 Docker可将应用程序和基础设施层隔离,并且能将基础设施当作程序一样进行管理。使用 Docker可更快地打包、测试以及部署应用程序,并可以缩短从编写到部署运行代码的周期。Docker的优点如下:1、简化程序Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linu...
2019-12-13 15:57:58
172
原创 [RabbitMQ] RabbitMQ消息可靠性保证:消息确认/重传/持久化/死信队列等
1 消息确认1.1 消息发送确认当一个消息发送出去之后,我们需要知道它是否发送成功。在RabbitMQ中提供了:1)Confirm callback:确认消息是否到达broker。2) Return callback :当消息到达broker后,exchange 路由消息的时候,如果根据 routing key 无法找到一个匹配的队列,则触发此回调(在发送消息时候需要指定 mand...
2019-02-22 18:23:29
7380
原创 [RabbitMq] 在 spring boot中使用RabbitMq
1 配置RabbitMQ连接信息spring boot遵循约定大于配置的原则,在内部它默认配置了RabbitMQ 服务端的信息(RabbitProperties .java类中)。其中默认host为localhost。@ConfigurationProperties(prefix = "spring.rabbitmq")public class RabbitProperties {...
2019-02-16 22:13:24
312
原创 [RabbitMq] 核心概念,原理与实战
1 特点RabbitMQ是一个在AMQP基础上完成的,可复用的企业消息系统。它是一个高可用分布式集群技术,提供消息发布订阅,消息轨迹查询,定时(延时)消息,资源统计,监控报警等一系列消息云服务,是企业级互联网架构的核心产品。2 使用场景在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。比如...
2019-02-16 21:39:35
272
原创 [RabbitMq] 安装与使用
1安装(centos)1.1安装erlang yum install erlang1.2 安装rabbitMQ yum install rabbitmq-server -y1.3设置开机自动启动 chkconfig rabbitmq-server on1.4 启动服务service rabbitmq-server start1.5 查看服务状态servic...
2019-01-13 22:14:15
110
原创 [JAVA] Spring AOP
核心概念:切面(Aspect):一个关注点的模块化,在企业应用编程中,首先需要通过分析抽取出通用的功能,即“切面”。事务、日志、安全性的框架、权限都是切面. 连接点(JointPoint) 表示需要在程序中插入横切关注点的扩展点,Spring只支持方法执行连接点,在AOP中表示为“在哪里干”.切入点(PointCut) 对相关连接点的描述,即可以认为连接点的集合。Spring支持正则表达...
2019-01-13 16:54:15
163
原创 [C++] 集合元素(如字符串)的排列组合
1 求集合中元素的全排列(递归)原理:从集合中选出一个元素作为排列的第一个元素,然后对剩余的元素进行全排列。如此递归处理,从而得到所有元素的全排列。以对 123 进行全排列为例.可以按以下步骤执行:将1固定在第一位,求剩余23的排列,得到 123 132将2固定在第一位,求剩余13的排列,得到:213 231将3固定在第一位,求剩余12的排列,得到:312 321#if...
2018-12-30 17:30:05
1106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人