12 2019 档案
摘要:一、高可用原理图:就是配置多个nginx,防止其中某个nginx宕机,有备无患。keepalived用来防止单点故障,后面主要通过修改keepalived的配置文件来完成高可用。 二、配置 1.在两个服务器(192.168.17.129、192.168.17.131)上安装两台Nginx,参考前面N
阅读全文
摘要:1. 动静分离 通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外
阅读全文
摘要:一、Tomcat准备 在8080和8081两个端口的Tomcat下的webapps目录下,分别建立love文件,并添加love.html文件,写上各自的端口号。 二、修改Nginx配置文件,并重启Nginx 三、测试 两个网页循环出现,Success。 四、服务器分配策略 1. 轮询(默认) 每个请
阅读全文
摘要:本章内容: 准备工作 ①安装Tomcat ②对外开放访问的端口(如果防火墙已开放,此步可忽略) ③在windows系统中通过浏览器访问Tomcat服务器 反向代理效果:打开浏览器,在浏览器地址栏输入地址www.123.com,跳转到linux系统Tomcat主页面中 一、安装Tomcat 1. wg
阅读全文
摘要:本章内容: 1.Nginx安装 2.Nginx命令 3.Nginx配置文件 一、Nginx安装 Step1:安装依赖包 gcc zlib pcre openssl yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
阅读全文
摘要:20.有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: "()",输出: true;输入: "()[]{}",输出:
阅读全文
摘要:本章内容: 基本概念 1.Nginx是什么,做什么事情? 2.反向代理 3.负载均衡 4.动静分离 一、Nginx是什么、作用? Nginx(engine x)是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强。能经受住高负载的考验,有报告表明能支持高达50000个并发连接数。 二
阅读全文
摘要:【基本介绍】 代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。 被代理的对象可以是远程对象,创建开销大的对象或者需要安全控制的对象。 代理模式分类:静态代理、动态代理(JDK代
阅读全文
摘要:1.基本介绍 装饰者模式:定态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了OCP(开闭)原则。 2.实践 【案例】星巴克咖啡订单:三种咖啡,三种调料,要求在扩展新的咖啡种类时具有良好的扩展性,使用OO来计算不同种类咖啡的费用。 这样设计当增加一个单品咖啡时,或者一
阅读全文
摘要:【基本介绍】 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作,起别名为包装器。主要分为:类适配器模式、对象适配器模式、接口适配器模式。 1.类适配器模式 案例说明:将220V交流电(src 被适配者)通过充电器(相当于A
阅读全文
摘要:https://blog.csdn.net/likun_li/article/details/90021165 【案例】 点单披萨项目(披萨种类,制作过程,订购),实现点单功能 Pizza类 1 //将Pizza 类做成抽象 2 public abstract class Pizza { 3 pro
阅读全文
摘要:所谓的单例设计模式就是采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。例如Hibernate的SessionFactory,一个项目只需要一个SeesionFactory即可。 使用场景:需要频繁进行创建和销毁的对象,创建对象消耗
阅读全文
摘要:UML类图——统一建模语言 UML类图用于描述系统中类(对象)本身的组成和类(对象)之间的静态关系。类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合。 1.依赖关系 Dependency 只要是类中使用到了对方,那么它们之间就存在依赖关系。如果没有对方,连编译都通过不了。 总结:①类中使用到
阅读全文
摘要:1.两数之和(S) 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。分析:第一想法是按照剑指offer中的思路(双指针)解决,但是剑指Offer中
阅读全文
摘要:一、为什么使用指针 ①指针能够有效的表示数据结构。 ②能动态分配内存,实现内存的自由管理。 ③能方便地使用字符串。 ④指针直接与数据的存储地址有关。比如:值传递不如地址传递高效,因为值传递先从实参的地址中取值,再赋值给形参代入函数计算。而指针则把形参的地址直接指向实参地址,使用时直接取出数据,效率提
阅读全文
摘要:本章内容: 1.死锁 2.多线程并发最佳实践(如何安全并发) 3.Spring与线程安全 4.HashMap与ConcurrentHashMap深入分析 一、死锁 1.产生必要条件 (1)互斥条件:进程要求对所分配的资源(如打印机)进⾏排他性控制,即在⼀段时间内某资源仅为⼀个进程所占有。此时若有其他
阅读全文
摘要:本章内容: 1.FutureTask 2.ForkJoin 3.BlockingQueue 一、FutureTask 通过直接继承Thread和实现Runnable接口创建线程,都有一个缺点:在执行完任务之后无法获取执行结果。而自从JDK1.5开始,提供了Callable和Future,通过他们可以
阅读全文
摘要:本章内容: 1.CountDownLatch 2.CyclicBarrier 3.Semaphore 4.ReentrantLock 一、CountDownLatch CountDownLatch类使用AQS同步状态来表示计数。当该计数为0时,所有的acquire操作(对应到CountDownLat
阅读全文
摘要:相关链接 https://www.cnblogs.com/barrywxx/p/8678698.html 本章内容: 1.AQS产生背景 2.AQS的设计和结构 3.AQS源代码实现 4.AQS应用(继承AQS的组件)★★★★★--见5-2 一、AQS产生背景 Jdk1.5开始引入了j.u.c包,这
阅读全文
摘要:本章内容 1.不可变对象:不可变对象条件、final关键字、Collections.unmodifiableXXX、Guava ImmutableXXX 2.线程封闭:Ad-hoc线程封闭、堆栈封闭、ThreadLocal-JDBC分析 3.线程不安全类:StringBuilder->StringB
阅读全文
摘要:本章内容 1.发布对象与对象逸出 2.安全发布的四个方法 一、发布对象和对象逸出 发布对象:使一个对象能够被当前范围之外的代码所使用。 对象逸出:是一种错误的发布,之当一个对象还没有构造完成时,就对其他线程可见 二、安全发布的四种方法 1.在静态初始化函数中初始化一个对象引用。 2.将对象的引用保存
阅读全文
摘要:题一:【矩阵中的路径】 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d
阅读全文
摘要:本章内容: 原子性:AtomicXXX、CAS原理、Unsafe、AtomicLong&LongAddr、AtomicReference&AtomicReferenceFieldUpdater、AtomicStampReference 锁:synchronized(修饰代码块、方法、静态方法、类)、
阅读全文
摘要:本章内容: 1.并发与高并发理解 2.缓存一致性 3.乱序执行优化 4.Java内存模型(JMM) 5. 并发的优势、风险 一、并发与高并发理解 并发:同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入换出内存,这些线程时同时存在的,只不过处于执行过程中的不同状态。如果运行在
阅读全文
摘要:https://blog.csdn.net/qq_37141773/article/details/103138476 一、虚拟机 同样的java代码在不同平台生成的机器码肯定是不一样的,因为不同的操作系统底层的硬件指令集是不同的。 同一个java代码在windows上生成的机器码可能是0101..
阅读全文
摘要:第十章 构建Web内容的技术 一、HTML HTML(HyperText Markup Language,超文本标记语言)是为了发送Web 上的超文本(Hypertext)而开发的标记语言。超文本是一种文档系统,可将文档中任意位置的信息与其他信息(文本或图片等)建立关联,即超链接文本。标记语言是指通
阅读全文
摘要:第九章 基于HTTP的功能追加协议 通过在HTTP的基础上添加新的功能来提高性能和功能。 一、消除HTTP瓶颈的SPDY SPDY(SPeeDY)目的是提高HTTP性能,缩短Web页面的加载时间(50%)。 1.HTTP瓶颈 现代需求:实时更新海量用户公开发布的内容,服务器上一有内容更新,就会将这些
阅读全文
摘要:抽象建模能力 题一:【扑克牌顺子】 LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh M
阅读全文
摘要:题一:【数字在排序数组中出现的次数】 统计一个数字在排序数组中出现的次数。 法一:暴力解决O(N) 1 public class Solution { 2 public int GetNumberOfK(int [] array , int k) { 3 int count = 0; 4 for(i
阅读全文
摘要:第八章 确认访问用户身份的认证 某些Web页面只想让特定的人浏览,或者仅本人可见。而认证机制可以达到这个目标。 1. 认证概念 为了核对用户信息,通常需要一些这些信息:密码、动态令牌、数字证书、生物证书、IC卡等。 HTTP/1.1使用的认证方式:BASIC认证(基本认证)、DIGEST认证(摘要认
阅读全文
摘要:第七章 确保Web安全的HTTPS 使用HTTPS通信机制可以有效防止信息窃听或身份伪装等安全问题。 1.HTTP缺点 【通信使用明文(不加密)】:内容容易被窃听。 加密处理防止被窃听。根据加密的对象分为: ①通信的加密:通过SSL(安全套接层)或TLS(安全传输协议)的组合使用,加密HTTP的通信
阅读全文
摘要:第六章 HTTP首部 HTTP首部包括:请求行<方法,URI,版本号>/响应行<版本,状态码>、请求/响应首部字段、通用首部字段、实体首部字段 1.HTTP首部字段 HTTP首部字段结构:首部字段名:字段值。 【请求首部字段】: 【响应首部字段】: 【通用首部字段】:请求报文和响应报文都会使用的首部
阅读全文
摘要:第五章 与HTTP协作的Web服务器 一台Web服务器可搭建多个独立域名的Web网站,也可以作为通信路径上的中转服务器提升传输效率。 1.用单台虚拟机实现多个域名 HTTP/1.1规范允许一台HTTP服务器搭建多个Web站点。即使物理层面只有一台服务器,但只要使用虚拟主机,则可以假想已具有多台服务器
阅读全文
摘要:第四章 返回结果的HTTP状态码 HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务端的处理是否正常、通知出现的错误等。 1.状态码的类别 2. 2XX成功 200 OK 表示服务端已正常处理请求 204 No Content 表示成功处理,但是响应报文不含实体的主体部分 206 Part
阅读全文
摘要:第三章 HTTP报文中的HTTP信息 HTTP通信过程:客户端—》服务端,服务端—》客户端。 1.HTTP报文 使用HTTP协议交互的信息被称为HTTP报文,包括请求报文和响应报文。 【请求报文和响应报文结构】报文首部(请求行/相应行+首部字段<请求、响应、通用、实体首部字段>)+报文主体 2.报文
阅读全文
摘要:第二章 简单的HTTP协议 针对HTTP协议结构进行讲解 1.通过请求和响应的交换来达成通信目的 应用HTTP协议时,必定是一端担任客户端角色,另一端担任服务器端角色。 【请求报文】是由请求方法、URI、协议版本、请求首部字段、内容实体组成的。 【响应报文】是由协议版本、状态码、状态码原因短语、响应
阅读全文
摘要:第一章 了解Web及网络基础 Web建立基础、HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地址:具体过程包括浏览器搜索自身的 DNS 缓存、搜索操作系统的 DNS 缓存、读取本地的 Host
阅读全文
摘要:第七章 确保Web安全的HTTPS 使用HTTPS通信机制可以有效防止信息窃听或身份伪装等安全问题。 1.HTTP缺点 【通信使用明文(不加密)】:内容容易被窃听。 加密处理防止被窃听。根据加密的对象分为: ①通信的加密:通过SSL(安全套接层)或TLS(安全传输协议)的组合使用,加密HTTP的通信
阅读全文
摘要:第四章 返回结果的HTTP状态码 HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务端的处理是否正常、通知出现的错误等。 1.状态码的类别 2. 2XX成功 200 OK 表示服务端已正常处理请求 204 No Content 表示成功处理,但是响应报文不含实体的主体部分 206 Part
阅读全文
摘要:第一章 了解Web及网络基础 Web建立基础、HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地址:具体过程包括浏览器搜索自身的 DNS 缓存、搜索操作系统的 DNS 缓存、读取本地的 Host
阅读全文
摘要:题一:【丑数】 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 分析:自己写了一个,算法复杂度太大了——写一个判断是否是丑数的函数,然后依次判断 1 public
阅读全文
摘要:题一:【数组中出现次数超过一半的数字】 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 法一:暴力破解——使用Map记录数组中每个数字出
阅读全文
摘要:虚拟机执行子系统 第八章 虚拟机字节码执行引擎 第六、七章讲解了如何在Class文件中定义类,如何将类加载到虚拟机中,本章主要讲解虚拟机如何执行定义在Class文件里的字节码。 所有Java虚拟机的执行引擎都是一致的:输入的是字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。 一、运行时
阅读全文
摘要:虚拟机执行子系统 第七章 虚拟机类加载机制 本章讲述虚拟机如何加载Class文件?Class文件中的信息进入虚拟机之后有什么样的变化? 【类加载机制】:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载
阅读全文
摘要:虚拟机执行子系统 第六章、类文件结构 Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现“一次编写,到处运行”。 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式——字节码(ByteCode)是构成平台无关性的基
阅读全文
摘要:题一:【复杂链表的复制】 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 分析:复制一个链表,则需要复制链表中的每一个节点和节点之间
阅读全文
摘要:自动内存管理机制 第三章 垃圾收集器与内存分配策略 【哪些内存需要回收?、什么时候回收?如何回收?】 一、对象已死吗——对象是否是垃圾? 1.引用计数算法 【基本思想】:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加一;当引用失效时,计数器值减一;任何时刻计数器值为0的对象就是不可能再
阅读全文
摘要:自动内存管理机制 第二章、Java内存区域与内存溢出异常 【虚拟机中内存如何划分,以及哪部分区域、什么样代码和操作会导致内存溢出、各区域内存溢出的原因】 一、运行时数据区域 Java虚拟机所管理的内存包括以下几个运行时数据区域【虚拟机内存模型】: 1.程序计数器: 可以看作是当前线程所执行的字节码的
阅读全文
摘要:题一:【包含min函数的栈】 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 分析:时间复杂度要求高,可牺牲空间。定义两个栈stack(正常操作)和stackMin(栈顶元素是最小值)。每次push时,直接向stack压入元素,并且和stack
阅读全文
摘要:第一章 走进Java 一、Java技术体系 Java技术体系组成部分:Java程序设计语言、Java虚拟机、Class文件格式、Java API类库 JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程
阅读全文
摘要:面试思路 题一:【二叉树的镜像】 操作给定的二叉树,将其变换为源二叉树的镜像。 分析:使用递归=》边界条件:节点为空,交换当前节点的左右节点。 1 /** 2 public class TreeNode { 3 int val = 0; 4 TreeNode left = null; 5 TreeN
阅读全文
摘要:题一:【链表中倒数第k个节点】 输入一个链表,输出该链表中倒数第k个结点。 分析:快慢指针,快指针比慢指针先走k-1步,当快指针走到末尾时,慢指针之乡的位置就是倒数第k个节点; 1 /* 2 public class ListNode { 3 int val; 4 ListNode next = n
阅读全文
摘要:题一:【数值的整数次方】 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0。 分析:大力出奇迹:注意exponent大于0小于0的情况 1 import java.lang.Math; 2 publ
阅读全文
摘要:网络层概述:网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送(解决的是主机和主机的问题)。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。在 TCP / IP 体系结构中,由于网络层使用 IP 协议,因此分组也叫 IP 数据报,简称数据报。 一、网络层提供
阅读全文
摘要:题一:【二进制中1的个数】 输入一个整数n,输出该数二进制表示中1的个数。其中负数用补码表示。 分析:常规解法:n的二进制每次和flag做与运算 =》查看当前位是否为1,如果是count++,然后将flag左移一位。 1 public class Solution { 2 public int Nu
阅读全文
摘要:动态规划(递归)解题步骤: 1.将原问题拆分成子问题。 2.确认状态。 3.确认边界状态(初始条件)。 4.状态转移方程。 题一:【斐波那契数列】 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 分析:斐波那契数列:{0 1 1 2
阅读全文
摘要:题一:【旋转数组的最小数字】 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回
阅读全文
摘要:一、运输层概述 运输层(传输层),解决的是计算机程序到计算机程序之间的通信问题,即所谓的“端”到“端”的通信(网络层解决的是主机到主机之间的通信)。引入传输层的原因: 增加复用和分用的功能、 消除网络层的不可靠性、 提供从源端主机到目的端主机的可靠的、与实际使用的网络无关的信息传输。运输层的最终目标
阅读全文
摘要:题一:【用两个栈实现队列】 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 分析:栈-先进后出 队列-先进先出 知识点:Stack API 法一:暴力-一个栈存储push的数据,一个栈pop数据。每次push前将stack2中数据添加到stack1中,每次pop
阅读全文
摘要:http\ftp\smtp\dns\ssh\dhcp\telnet 一、应用层概念 运输层为应用进程提供了端对端的通信服务。但是不同的网络应用进程之间还需要不同的通信规则。因此,在运输层之上还需要有应用层协议。 应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间的通信
阅读全文
摘要:题一:【重建二叉树】输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 分析:根据示例可以知道,前序遍历序列第1个
阅读全文
摘要:一、物理层概念、作用 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输比特流,而不是具体的传输媒介;主要任务是确定与传输的接口有关的一些特性:接口形状大小、规定电压范围等。 物理层的作用是尽可能的屏蔽掉传输媒体和通信手段的差异,是物理层上面的数据链路层感受不到差异,这样只需要数据链路层只需要考
阅读全文
摘要:附1:Stack API 附2:ArrayList API 题一:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 法一:递归 1 /** 2 * public class ListNode { 3 * int val; 4 * ListNode next = null; 5 * 6
阅读全文

浙公网安备 33010602011771号