07 2020 档案
摘要:什么是因特网(公共因特网) 是一个世界范围的计算机网 端系统(主机) 端系统的连接方式: 通信链路和分组交换机进行连接 链路的传输速度: 比特/s bit/s bps 分组交换机(路由器和链路层交换机) 路径: 一个分组所经过的一系列的通信链路和交换机称为路径。 什么是协议 可以理解成一种通信规则
阅读全文
摘要:什么是索引? 索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有: B树, B+树和Hash。 索引的作用就相当于目录的作用。打个比方: 我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那
阅读全文
摘要:异常 1. 异常的体系结构 * java.lang.Throwable * | java.lang.Error:一般不编写针对性的代码进行处理。 * | java.lang.Exception:可以进行异常的处理 * | 编译时异常(checked) * | IOException * | File
阅读全文
摘要:内部类:类的第五个成员 1.定义:Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类. 2.内部类的分类: 成员内部类(静态、非静态 ) vs 局部内部类(方法内、代码块内、构造器内) 3.成员内部类的理解: 一方面,作为外部类的成员: * >调用外部类的结构 * >可以被
阅读全文
摘要:interface:接口 1.使用说明 1.接口使用interface来定义 * 2.Java中,接口和类是并列的两个结构 * 3.如何定义接口:定义接口中的成员 * * 3.1 JDK7及以前:只能定义全局常量和抽象方法 * >全局常量:public static final的.但是书写时,可以省
阅读全文
摘要:abstract: 抽象的 1.可以用来修饰:类、方法 2.具体的: abstract修饰类:抽象类 * > 此类不能实例化 * > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) * > 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 >抽象的使用前提:
阅读全文
摘要:1.可以用来修饰:类、方法、变量 2.具体的: 2.1 final 用来修饰一个类:此类不能被其他类所继承。 * 比如:String类、System类、StringBuffer类 * 2.2 final 用来修饰方法:表明此方法不可以被重写 * 比如:Object类中getClass(); * 2.
阅读全文
摘要:类的成员之四:代码块(初始化块)(重要性较属性、方法、构造器差一些)1.代码块的作用:用来初始化类、对象的信息2.分类:代码块要是使用修饰符,只能使用static 分类:静态代码块 vs 非静态代码块3.静态代码块: >内部可以输出语句 >随着类的加载而执行,而且只执行一次 >作用:初始化类的信息
阅读全文
摘要:static:静态的1.可以用来修饰的结构:主要用来修饰类的内部结构 属性、方法、代码块、内部类2.static修饰属性:静态变量(或类变量) 2.1 属性,是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量) * 实例变量:我们创建了类的多个对象,每个对象都独立的拥一套类中的非
阅读全文
摘要:单元测试方法 * Java中的JUnit单元测试 * * 步骤: * 1.中当前工程 - 右键择:build path - add libraries - JUnit 4 - 下一步 * 2.创建Java类,进行单元测试。 * 此时的Java类要求:① 此类是public的 ②此类提供公共的无参的构
阅读全文
摘要:1.java.lang.Object类的说明: * 1.Object类是所有Java类的根父类 * 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 * 3.Object类中的功能(属性、方法)就具通用性。 * 属性:无 * 方法:equals
阅读全文
摘要:1.多态性的理解:可以理解为一个事物的多种形态。 2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用) 举例: Person p = new Man(); Object obj = new Date(); 3.多态性的使用:虚拟方法调用 > 有了对象的多态性以后,我们
阅读全文
摘要:1.从结果上看:继承性 > 子类继承父类以后,就获取了父类中声明的属性或方法。 > 创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。 2.从过程上看: 当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,...直到调用了java.la
阅读全文
摘要:1.super 关键字可以理解为:父类的 2.可以用来调用的结构:属性、方法、构造器3.super调用属性、方法: 3.1 我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super." 3.
阅读全文
摘要:1.什么是方法的重写(override 或 overwrite)? 子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作. 2. 应用 重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法。 3.举例: class Circle{ pub
阅读全文
摘要:1.为什么要有类的继承性?(继承性的好处) * ① 减少了代码的冗余,提高了代码的复用性 * ② 便于功能的扩展 * ③ 为之后多态性的使用,提供了前提 2.继承性的格式: class A extends B{} * A:子类、派生类、subclass * B:父类、超类、基类、superclass
阅读全文
摘要:this 1.可以调用的结构:属性、方法;构造器2.this调用属性、方法: this理解为:当前对象 或 当前正在创建的对象 2.1 在类的方法中,我们可以使用"this.属性"或"this.方法"的方式,调用当前对象属性或方法。但是, * 通常情况下,我们都择省略"this."。特殊情况下,如果
阅读全文
摘要:1.构造器(或构造方法):Constructor 构造器的作用: * 1.创建对象 * 2.初始化对象的信息 2.使用说明: * 1.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器 * 2.定义构造器的格式:权限修饰符 类名(形参列表){} * 3.一个类中定义的多个构造器,彼此构成
阅读全文
摘要:面向对象的特征一:封装与隐藏1.为什么要引入封装性?我们程序设计追求“高内聚,低耦合”。高内聚 :类的内部数据操作细节自己完成,不允许外部干涉;低耦合 :仅对外暴露少量的方法用于使用。 隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐
阅读全文
摘要:属性: 类的设计中,两个重要结构之一:属性 对比:属性 vs 局部变量 1.相同点: * 1.1 定义变量的格式:数据类型 变量名 = 变量值 * 1.2 先声明,后使用 * 1.3 变量都其对应的作用域 2.不同点: 2.1 在类中声明的位置的不同 * 属性:直接定义在类的一对{}内 * 局部变量
阅读全文
摘要:1.面向对象的三条主线 1.类和类的成员:属性、方法、构造器、代码块、内部类 2.对面对象的三大特征:封装、继承、多态 3.其他关键字:this、super、staic、final、abstract、interface、class、import、package 2.面向对象与面向过程(理解) 1.面
阅读全文
摘要:数组概述 * 1.数组的理解:数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名, * 并通过编号的方式对这些数据进行统一管理。 * * 2.数组相关的概念: * >数组名 * >元素 * >角标、下标、索引 * >数组的长度:元素的个数 * * 3.数组的特点: * 1数
阅读全文
摘要:break和continue关键字的使用 使用范围 循环中使用的作用(不同点) 相同点 break: switch-case 循环结构中 结束当前循环 关键字后面不能声明执行语句 continue: 循环结构中 结束当次循环 关键字后面不能声明执行语句 补充:带标签的break和continue的使
阅读全文
摘要:1.循环结构的四要素 ① 初始化条件 ② 循环条件 >是boolean类型 ③ 循环体 ④ 迭代条件 说明:通常情况下,循环结束都是因为②中循环条件返回false了。 2.三种循环结构: 2.1 for循环结构 for(①;②;④){ ③ } 执行过程:① - ② - ③ - ④ - ② - ③ -
阅读全文
摘要:1.if-else条件判断结构 1.1. 结构一: if(条件表达式){ 执行表达式 } 结构二:二选一if(条件表达式){ 执行表达式1}else{ 执行表达式2} 结构三:n选一if(条件表达式){ 执行表达式1}else if(条件表达式){ 执行表达式2}else if(条件表达式){ 执行
阅读全文
摘要:1-算术运算符 1.算术运算符: + - + - * / % (前)++ (后)++ (前)-- (后)-- + //除号:/ int num1 = 12; int num2 = 5; int result1 = num1 / num2; System.out.println(result1);//
阅读全文
摘要:1.编程中涉及的进制及表示方式: 2.二进制的使用说明:2.1 计算机底层的存储方式:所有数字在计算机底层都以二进制形式存在。2.2 二进制数据的存储方式:所有的数值,不管正负,底层都以补码的方式存储。2.3 原码、反码、补码的说明:正数:三码合一负数: 3.进制间的转换:3.1 图示: 3.2 图
阅读全文
摘要:变量的分类 1.按数据类型分类 详细说明: //1. 整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节) //① byte范围:-128 ~ 127 // ② 声明long型变量,必须以"l"或"L"结尾 // ③ 通常,定义整型变量时,使用i
阅读全文
摘要:1.java关键字的使用 什么是关键字:被java发育特殊含义,用作专门用途的字符串(单词) 特点:关键字中所字母都为小写 具体哪些关键字: 2.保留字:现Java版本尚未使用,但以后版本可能会作为关键字使用。具体哪些保留字:goto 、const注意:自己命名标识符时要避免使用这些保留字 3.标识
阅读全文
摘要:首先了解什么是并发竞争key 多个系统同时对同一个key进行操作,最终key的执行顺序跟我们的期望不同,也就导致了结果不同。 怎么解决? 分布式锁 zookeeper 和 Redis 都可以实现分布式锁(如果不存在 Redis 的并发竞争 Key 问题,不要使用分布式锁,这样会影响性能) 基于zoo
阅读全文
摘要:缓存雪崩 什么是缓存雪崩? 缓存在同一时间大面积的失效,后面的请求都直接落到了数据库上,造成数据库短时间内承受大量请求。 这就好比雪崩一样,数据库的压力可想而知,可能直接就被这么多请求弄宕机了。 举个例子:系统的缓存模块出了问题比如宕机导致不可用。造成系统的所有访问,都要走数据库。 还有一种缓存雪崩
阅读全文
摘要:Redis 配置文件 Redis.conf 中有相关注释,我这里就不贴了,大家可以自行查阅或者通过这个网址查看: http://download.Redis.io/Redis-stable/Redis.conf或者查看我的博客Redis 配置 Redis 提供 6 种数据淘汰策略: volatile
阅读全文
摘要:一般情况下,我们设置保存的缓存数据的时候都会设置一个过期时间。 Redis 中有个设置时间过期的功能,即对存储在 Redis 数据库中的值可以设置一个过期时间。作为一个缓存数据库,这是非常实用的。如我们一般项目中的 token 或者一些登录信息,尤其是短信验证码都是有时间限制的,按照传统的数据库处理
阅读全文
摘要:redis内部使用的是文件事件处理器file event handler,这个文件事件处理器是单线程的,多以redis是单线程的。它采用io多路复用的机制来监听多个socket,根据soket上的时间来选择对应的事件处理器来进行处理。 io多路复用 多个socket 文件时间分派器 时间处理器(连接
阅读全文
摘要:Java 工程师成神之路!阿里巴巴技术专家 Hollis 大佬开源的 Java 学习知识体系,内容巨多,需要筛选出比较重要的部分。 目前的话,这个仓库已经斩获 16k star。Github 地址:https://github.com/hollischuang/toBeTopJavaer
阅读全文
摘要:Github 地址 :https://github.com/kamranahmedse/developer-roadmap ,中文翻译版本在此:https://github.com/kamranahmedse/developer-roadmap/tree/master/translations/ch
阅读全文
摘要:首先讲讲缓存数据的处理流程是怎样的? 为什么要用 Redis/为什么要用缓存? 主要是为了提升用户体验以及应对更多的用户。 缓存的有点: 高性能 : 假如用户第一次访问数据库中的某些数据的话,这个过程是比较慢,毕竟是从硬盘中读取的。但是,如果说,用户访问的数据属于高频数据并且不会经常改变的话,那么我
阅读全文
摘要:现在公司一般都是用 Redis 来实现缓存,而且 Redis 自身也越来越强大了!但是我们还是来简单了解他们的区别与共同点 共同点 : 1.都是内存缓存 2.都有过期策略 3.两者的性能都非常高 区别 : reids Memcached 数据类型 支持的数据类型更丰富(支持更复杂的应用场景)比如:
阅读全文
摘要:我们可以把分布式缓存(Distributed Cache) 看作是一种内存数据库的服务,它的最终作用就是提供缓存数据的服务。 如下图所示,就是一个简单的使用分布式缓存的架构图。我们使用 Nginx 来做负载均衡,部署两个相同的服务到服务器,两个服务使用同一个数据库和缓存。 本地缓存优点: 本地的缓存
阅读全文
摘要:本地缓存,这个实际在很多项目中用的蛮多,特别是单体架构的时候。数据量不大,并且没有分布式要求的话,使用本地缓存还是可以的。 常见的单体架构图如下,我们使用 Nginx 来做负载均衡,部署两个相同的服务到服务器,两个服务使用同一个数据库,并且使用的是本地缓存。 连个项目各自缓存,不共享 本地缓存的方案
阅读全文
摘要:1.注释:Comment 分类: 单行注释:// 多行注释:/* */ 文档注释:/** */ 作用: ① 对所写的程序进行解释说明,增强可读性。方便自己,方便别人 ② 调试所写的代码 特点: ①单行注释和多行注释,注释了的内容不参与编译。 换句话说,编译以后生成的.class结尾的字节码文件中不包
阅读全文
摘要:什么是JDK,JRE 1.开发环境的搭建 1.1 JDK、JRE、JVM的关系 jdk=jre+开发工具包 jre=jvm+Java SE标准类库 1.2 JDK的下载、安装 官方网址: www.oracle.com java.sun.com 安装:傻瓜式安装:JDK 、JRE 注意问题:安装软
阅读全文
摘要:1.基础常识 软件:特定顺序组织的计算机数据和指令的集合。分为:系统软件、应用软件 系统软件:windows , mac os , linux ,unix,android,ios,.... 应用软件:word ,ppt,画图板,... 人机交互方式: 图形化界面 vs 命令行方式 应用程序=算法+数
阅读全文
摘要:获取Jedis实例需要从JedisPool中获取 用完Jedis实例需要返还给JedisPool 如果Jedis在使用过程中出错,则也需要还给JedisPool 案例 import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedis
阅读全文
摘要:先决条件 jdk idea/eclipse Jedis所需要的jar包 Commons-pool-1.6.jar Jedis-2.1.0.jar Jedis常用操作 测试连通性 package cn.lonsun.staticcenter.controller; import redis.clien
阅读全文
摘要:是什么 复制 在 Redis 复制的基础上,使用和配置主从复制非常简单,能使得从 Redis 服务器(下文称 slave)能精确得复制主 Redis 服务器(下文称 master)的内容。每次当 slave 和 master 之间的连接断开时, slave 会自动重连到 master 上,并且无论这
阅读全文
摘要:是什么 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 订阅/发布消息图 命令 案列 先订阅后发布后才能收到消息, 1 可以一次性订阅多个,SUBSCRIBE c1 c2 c3 2 消息发布,PUBLISH c2 hello-redis 3 订阅多个,通配符*, PS
阅读全文
摘要:事务 MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原
阅读全文
摘要:AOF(Append Only File) AOF 优点 使用AOF 会让你的Redis更加耐久: 你可以使用不同的fsync策略:无fsync,每秒fsync,每次写的时候fsync.使用默认的每秒fsync策略,Redis的性能依然很好(fsync是由后台线程进行处理的,主线程会尽力处理客户端请
阅读全文
摘要:Redis 提供了不同级别的持久化方式: RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储. AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,
阅读全文
摘要:在set基础上,加一个score值。之前set是k1 v1 v2 v3,现在zset是k1 score1 v1 score2 v2 常用 案例:略
阅读全文
摘要:KV模式不变,但V是一个键值对 常用 案例:lve
阅读全文
摘要:单值多value 常用 案例: sadd/smembers/sismember
阅读全文
摘要:单值多value 常用 案例 lpush/rpush/lrange lpop/rpop lindex,按照索引下标获得元素(从上到下) 返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从
阅读全文
摘要:单值单value 常用 set/get/del/append/strlen Incr/decr/incrby/decrby,一定要是数字才能进行加减 getrange O(N) N是字符串长度,复杂度由最终返回长度决定,但由于通过一个字符串创建子字符串是很容易的,它可以被认为是O(1)。 例子 re
阅读全文
摘要:Redis keys Redis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如”foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效key值。 关于key的几条规则: 不要太长(不仅消耗内存,而且数据查找成本大) 不要太短(语意不明 比如”u:1000:p
阅读全文
摘要:Redis 数据类型介绍 redis常见数据类型操作命令 redis不是简单的k-v存储,他是一个数据结构服务器,支持不同类型的值。这里的v不仅仅可以是字符串。可以是下面多有别的类型: 二进制安全的字符串 Lists: 按插入顺序排序的字符串元素的集合。他们基本上就是链表(linked lists)
阅读全文
摘要:单进程 单进程模型来处理客户的请求。对读写事件的响应是通过epoll函数包装来做到的。redis的处理速度是完全依靠主进程的执行效率。 Epoll是LINUX内核为处理大批量文件描述符该做了改进的epoll,是Linux下多路复用select/poll的增强版本 它能显著提供在程序在大量并发连接中只
阅读全文
摘要:Redis可以在没有配置文件的情况下通过内置的配置来启动,但是这种启动方式只适用于开发和测试。 合理的配置Redis的方式是提供一个Redis配置文件,这个文件通常叫做 redis.conf。 redis.conf文件中包含了很多格式简单的指令如下: keyword argument1 argume
阅读全文
摘要:系统 安装 下载、解压、编译Redis $ wget http://download.redis.io/releases/redis-5.0.5.tar.gz $ tar xzf redis-5.0.5.tar.gz $ cd redis-5.0.5 $ make 进入到解压后的 src 目录,通过
阅读全文
摘要:是什么 开源免费 遵守BSD协议 是一个高性能的key-value数据库 特点 支持持久化(可以将内存中的数据保存在磁盘中,重启的时候可以再次使用ps:不会宕机就没了) 既支持key-value类型的数据,又支持list、set、zset、hash等数据结构的存储 支持数据的备份(master-sl
阅读全文
摘要:在之前的文章介绍了Spring Cloud Gateway的Predict(断言)、Filter(过滤器),大家对Spring Cloud Gateway有初步的认识,其中在对服务路由转发的这一块,在之前的文章是采用硬编码的方式进行路由转发。这篇文章以案例的形式来讲解Spring Cloud Gat
阅读全文
摘要:在高并发的系统中,往往需要在系统中做限流,一方面是为了防止大量的请求使服务器过载,导致服务不可用,另一方面是为了防止网络攻击。 常见的限流方式,比如Hystrix适用线程池隔离,超过线程池的负载,走熔断的逻辑。在一般应用服务器中,比如tomcat容器也是通过限制它的线程数来控制并发的;也有通过时间窗
阅读全文
摘要:在上一篇文章详细的介绍了Gateway的Predict,Predict决定了请求由哪一个路由处理,在路由处理之前,需要经过“pre”类型的过滤器处理,处理返回响应之后,可以由“post”类型的过滤器处理。 filter的作用和生命周期 由filter工作流程点,可以知道filter有着非常重要的作用
阅读全文
摘要:Spring Cloud gateway工作流程 在之前的文章的Spring Cloud Gateway初体验中,大家已经对Spring Cloud Gateway的功能有一个初步的认识,网关作为一个系统的流量的入口,有着举足轻重的作用,通常的作用如下: 协议转换,路由转发 流量聚合,对流量进行监控
阅读全文
摘要:这篇文章讲述了如何简单地使用Spring Cloud Gateway,来源于Spring Cloud官方案例,地址https://spring.io/guides/gs/gateway 。 简介 Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul
阅读全文
摘要:上一篇文章讲述了如何利用Hystrix Dashboard去监控断路器的Hystrix command。当我们有很多个服务的时候,这就需要聚合所有服务的Hystrix Dashboard的数据了。这就需要用到Spring Cloud的另一个组件了,即Hystrix Turbine。 一、Hystri
阅读全文
摘要:一、Hystrix Dashboard简介 在微服务架构中为例保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应了一个程序的可用性和健壮性,它是一个重要指标。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。 二、准备工作 本
阅读全文
摘要:一、准备工作 Eureka通过运行多个实例,使其更具有高可用性。事实上,这是它默认的熟性,你需要做的就是给对等的实例一个合法的关联serviceurl。 这篇文章我们基于SpringCloud教程第1篇:Eureka(F版本)文章的工程 二、改造工作 在eureka-server工程中resourc
阅读全文

浙公网安备 33010602011771号