- 博客(38)
- 收藏
- 关注
原创 【设计模式】设计模式之单例模式
单例模式简介特点优点缺点使用场景注意1.饿汉式(静态常量)优点缺点代码示例2.饿汉式(静态代码块)3.懒汉式(线程不安全)优点缺点代码示例4.懒汉式(线程安全,同步方法)优点缺点代码示例5.懒汉式(同步代码块)代码示例6.双重检查优点代码示例7.静态内部类优点代码示例8.枚举优点代码示例简介特点只有一个实例自我实例化提供全局访问点优点节省系统资源、提高系统效率控制客户对它的访...
2020-02-06 22:54:29
523
原创 【设计模式】设计模式概述以及七大原则
设计模式设计模式定义本质意义优点设计模式的基本要素常用的七大原则分类创建型结构型行为型OOP的七大原则开闭原则里氏替换原则依赖倒转原则单一职责原则注意接口隔离原则合成复用原则迪米特法则设计模式定义面向对象的一套解决方案,提高代码的可复用性、可维护性、可读性、稳健性、安全性本质面向对象设计原则的实际应用意义对类的封装性、继承性、多态性以及类的关联关系和组合关系的理解优点提高程序员...
2020-01-31 14:32:40
392
原创 [redis]在Java中使用redis
JAVA与REDIS在 Java Web 中的应用场景缓存特点情景考虑切入点读操作写操作高速读/写的场合使用场景流程步骤在 Java 中使用 Redis开启redis前提启动服务器端启动客户端第一步:添加 Jedis 依赖第二步:使用 Redis 连接池第三步:在 Spring 中使用 Redis(1)第一步:使用Spring配置JedisPoolConfig对象(2)第二步:为连接池配置工厂模型...
2020-01-20 09:41:37
516
原创 [redis]redis的基础
REDIES前景提要之NoSQL 技术简介定义特点Redis的单线程优点应用场景适合的场景不适合的场景前言:这些知识对于目前的博客体系而言还不知道分类所属,因为工作需要所以就保存着这部分的笔记,这一内容的偏基础,更多是概念性的前景提要之NoSQL 技术基于内存的数据库,并且提供一定的持久化功能。Redis和MongoDB是当前使用最广泛的NoSQL就Redis技术而言,它的性能十分优越,...
2020-01-20 09:06:28
179
原创 (微信小程序)导航栏悬浮吸顶以及置顶的设置
前言最近在做小程序的项目,遇到一些问题放在这里,一来作为自己经验收集册,收集自己的项目遇到的问题或者做的东西;二来将自己遇到的问题经验分享出来前景提要吸顶功能页面设置在静态的首页,作为一个首页展示的优化来做的,所以没有太多需要加载的数据,可以采用传统的判断滚动窗口高度设置固定栏此方式不适用流加载或者其他需要大量频繁setdata的操作吸顶悬浮导航条成果展示代码wxml&...
2020-01-15 11:38:40
7419
3
原创 [网络通信协议]进程间的通信
进程通信进程特点每个进程各自有不同的用户地址空间任何一个进程的全局变量在另一个进程中都看不到进程间交换数据必须通过内核IPC机制进程间通信(InterProcess Communication,IPC)是进程间共享消息的通信方式消息是发送进程形成的消息块,将消息内容传送给接收进程IPC机制是消息从一个进程的地址空间拷贝到另一个进程的地址空间进程间的通信本质进程之间可以看到一...
2020-01-14 14:20:03
661
原创 【数据结构】字符串
字符串String创建方式字符串留驻特点字符串操作函数StringBufferStringBuilderString 、StringBuffer与StringBuilder的区别效率可变性JVM对String的优化String s = new String ("字符串")创建了几个字符串对象被 final 修饰的原因字符串池的需求缓存 hashcode安全性不可变对象天生是线程安全的String...
2020-01-04 16:47:07
380
原创 【JAVAEE】HTTPServlet
HTTPServlet继承体系定义作用特点方法service()两个方法作用doGet()doPost()doDelete()doOptions()doPut()doTrace()doHead()HttpServlet容器响应Web客户请求流程创建HttpServlet步骤继承体系定义是GenericServlet的子类是Servlet接口的一个实现类是一个抽象类支持HTTPse...
2019-12-31 13:47:18
387
原创 [网络通信协议]session和cookie
session和cookie背景客户端访问服务器的流程注意token组成存放token认证流程token可以抵抗csrf,cookie+session不行cookie意义特性记录用户访问次数Cookie的不可跨域名性Unicode编码:保存中文BASE64编码:保存二进制图片属性名称值用处说明版本号有效期修改、删除域名Domain参数路径安全属性创建流程作用伪造cookie服务器端向客户端发送一个...
2019-12-24 14:29:43
1978
原创 【JAVA-SE】异常类
异常类异常程序的三种错误异常产生的原因使用原则Java异常处理的技巧Java异常的分类和类结构图ThrowableThrowable 类的主要方法ErrorExceptionruntimeException非检查异常(unckecked exception)检查异常checked exceptionIOException自定义异常目的语法组成源码实例异常的注意事项具体异常总结算术错误情形Arith...
2019-12-21 13:19:39
1145
1
原创 [网络通信与协议]三次握手与四次挥手
三次握手与四次挥手TCP报文结构TCP使用窗口机制进行流量控制窗口TCP的流控过程(滑动窗口)TCP连接全过程11个状态SYN_RECVCLOSE_WAITTIME_WAIT客户端状态流转服务器状态流转两个序号标志位三次握手作用初始状态图解具体步骤第一次握手第二次握手第三次握手四次挥手图解具体步骤第一次挥手第二次挥手第三次挥手第四次挥手另一种情况为什么需要四次挥手为什么需要三次握手半连接队列SYN...
2019-12-21 10:41:54
153
原创 认证机制之JWT
认证机制之JWT常见的认证机制HTTP BASIC AUTHSession和cookieJWT-Token认证JWT简介什么是JWT特点优点缺点使用缺陷适用情景数据结构JWT头(header)组成令牌类型散列算法转换字符串有效载荷(payload)claimsregistered claimspublic claimsprivate claims注意签名目的参数生成签名公式Base64URL算法注...
2019-12-20 14:23:02
372
原创 [网络通信与协议]TCP与UDP
TCP与UDPTCP与UDP的区别TCP与UDP基本区别具体编程时的区别编程区别编程步骤的区别TCPTCP编程的服务器端一般步骤是TCP编程的客户端一般步骤是UDPUDP编程的服务器端一般步骤是UDP编程的客户端一般步骤是UDP应用场景TCP与UDP的区别tcp比较可靠、不容易粘包、不容易丢包udp操作简单、传输速度比较快TCP与UDP基本区别1.基于连接与无连接2.TCP要求系统资源...
2019-12-19 17:52:25
169
原创 [网络通信协议]网络模型
网络模型网络模型名称定义功能OSI七层网络模型名称定义功能结构目的优点应用层(Application)功能服务协议注意表示层(Presentation)功能协议会话层(Session)功能协议传输层(Transport)功能协议注意网络层(Network)功能主要问题协议注意数据链路层(Data Link)功能协议注意物理层(Physical)功能协议补充前言文章源于网络整理,用做笔记网络模...
2019-12-19 17:21:07
1814
原创 [网络通信协议]HTTP各版本
HTTP各版本对比HTTP1.0特点缺点HTTP1.1优点长连接管道机制分块传输host字段缓存处理cache-contro字段断点传输缺点HTTP2.0二进制分帧多路复用(连接共享)头部压缩服务器推送优点区别对比HTTP2.0与HTTP 1.1的区别HTTP1.1的合并请求是否适用于HTTP2.0HTTP1.0是一种无状态、无连接的应用层协议。特点HTTP1.0规定浏览器和服务器保持短暂...
2019-12-16 11:54:34
450
原创 [网络通信协议]HTTP和HTTPS
HTTP和HTTPSHttp和Https的基本概念Http与Https的区别Https的优点Https的缺点(对比优点)请求方式GET请求POST请求PUT请求DELETE请求HEAD请求HTTPS如何保证安全,加密过程Http和Https的基本概念Http:超文本传输协议(Http,HyperText Transfer Protocol)设计Http最初的目的是为了提供一种发布和接收HTML...
2019-12-13 11:26:19
554
原创 [网络通信协议]http
HTTPHTTP基础什么是HTTP特点缺点HTTP的生命周期工作原理连接请求应答常用的HTTP头信息关闭连接请求过程过程概览请求过程的具体分析1.域名解析2.TCP连接(三次握手)3.建立TCP连接之后,发起HTTP请求4.服务器端响应http请求,浏览器得到html代码5.浏览器解析html代码,并请求html代码中的资源6.浏览器对页面进行渲染呈现给用户总结HTTP基础什么是HTTPht...
2019-12-12 13:17:17
200
原创 [网络通信协议]websocket
websocket定义背景HTTP轮询短轮询长轮询概念实现过程特点WebSocket与TCP,HTTP的关系组成结构WebSocket 客户端客户端 APIWebSocket 属性属性 描述事件 事件处理程序 描述方法 描述示例WebSocket 服务端JavaSpring在 Spring 实现 WebSocket 服务器步骤:WebSocket 代理工作方式如何建立连接1、客户端:申请协议升级2...
2019-12-11 12:48:57
961
原创 玄学maven
玄学maven安装概念回顾计算机搭建maven的步骤为什么说maven是个玄学问题呢?反思心路历程网络环境配置一致性版本前言:maven作为依赖管理工具,在框架的学习中是不可或缺的知识基础。搞明白maven才可以顺利的完成框架的搭建。在学习之初,并没有认真的了解国maven的原理,草草的跟着把IDEA的maven搭建好,嗟来一份repository和setting.xml放在自己电脑里,然后就...
2019-11-28 16:18:00
163
原创 【算法】快速排序
快速排序(Quick Sort)快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。1 算法描述快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下:从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆...
2019-11-01 16:00:48
162
原创 [面试]分段锁
分段锁并发容器类的加锁机制是基于粒度更小的分段锁,分段锁也是提升多并发程序性能的重要手段之一。在并发程序中,串行操作是会降低可伸缩性,并且上下文切换也会减低性能。在锁上发生竞争时将通水导致这两种问题,使用独占锁时保护受限资源的时候,基本上是采用串行方式—-每次只能有一个线程能访问它。所以对于可伸缩性来说最大的威胁就是独占锁。概念分段锁其实是一种锁的设计,并不是具体的一种锁设计目的细化锁...
2019-10-29 11:49:03
216
原创 [面试]自旋锁
自旋锁(spinlock)概念自旋锁是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁通过不断的轮询来尝试获取锁,是一种占用CPU时间的非阻塞锁,当锁的等待时间短,效率会很高使用场景锁竞争不激烈,锁占用时间小的代码块自旋锁适用于多核的CPU。实现方式如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它...
2019-10-27 14:14:17
217
原创 [面试]公平锁与非公平锁
对于Java ReentrantLock而言,通过构造函数指定该锁是否是公平锁,默认是非公平锁。同步锁按照线程申请锁的顺序,非同步则不保证公平锁概念加锁前检查是否有排队等待的线程,优先排队等待的线程,先来先得。实现方式在java中,通过new ReentrantLock(true)来实现;优缺点公平锁的好处是等待锁的线程不会饿死,但是整体效率相对低一些;非公平锁概念线程不是按...
2019-10-27 11:58:25
136
原创 [面试]读写锁与互斥锁
Lock接口以及对象,控制了竞争资源的安全访问,但是这种锁不区分读写,称这种锁为普通锁。为了提高性能,Java提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,如果没有写锁的情况下,读是无阻塞的,在一定程度上提高了程序的执行效率。互斥锁(ReentrantLock)概念是一次最多只能有一个线程持有的锁。当有一个线程要访问共享资源(临界资源)之前会对线程访问的这段代码(临界区...
2019-10-27 11:30:21
624
原创 [面试]悲观锁与乐观锁
乐观锁与悲观锁不是指具体的什么类型的锁,而是指看待并发同步的角度。乐观锁(Optimistic Lock)基本概念乐观锁是一种乐观思想:认为对于同一个数据的并发操作,是不会发生修改的。即认为读多写少,遇到并发写的可能性低在更新数据的时候,会采用尝试更新,不断重新的方式更新数据。乐观的认为,不加锁的并发操作是没有事情的。即在更新的时候会判断一下在此期间别人有没有去更新这个数据,采取在写时...
2019-10-23 19:16:43
178
原创 【算法】算法的时间复杂度和空间复杂度
一、数据结构与算法的基本概念数据描述客观事实的符号,是计算机中可以操作的对象,能被计算机识别,并输给计算机处理的符号集合。数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也被成为记录。、数据对象是性质相同数据元素的集合,是数据的一个子集数据项一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位。数据结构相互之间存在一种或者多种特定关系的数据...
2019-10-17 08:58:52
878
原创 [面试]JVM内存模型
声明:整理自不同来源的文章,仅供学习使用CPU同内存交互内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变...
2019-10-16 11:34:28
114
原创 [面试]进程与线程
进程定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是操作系统进行资源分配和调度的一个独立单位;指在系统中正在运行的一个应用程序;程序一旦运行就是进程;程是指程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列...
2019-10-16 11:21:38
143
原创 【JAVA-WEB】JSON
JSONJOSN简介是一种轻量级的数据交换格式采用完全独立于编程语言的文本格式来存储和表示数据在JS中JSON是对象,其他语言中JSON是字符串定义JSON对象:{‘键名’:’值’,’键名’:值}取数据方式一:键找值xxx.键取数据方式二:xxx[‘键’]遍历JSON对象:for(key in xxx){执行体xxx[key]}遍历数组:for(index in ){arr[i...
2019-07-21 20:05:58
103
原创 【JAVA-SE】面向对象
面向对象面向对象思想封装、继承、多态面向对象思想特点符合我们思想习惯的思想、复杂事情简单化、执行者变成指挥者事物----类—封装(属性,功能);属性—成员变量(属性);功能—成员方法(功能)步骤实例化类(创建对象):Leiming duixiangming=new Leiming();获取属性:duixiangming.shuxingming;调用方法:duixinagmi...
2019-07-13 14:26:22
92
原创 【JAVA-WEB】JavaScript
JavaScript概述定义变量基本数据类型原始数据类型(5种)变量全局变量与局部变量全局对象局部对象全局作用域与函数作用域运算符数据类型的自动转换NAN特性其他类型转为number其他类型转boolean对象关键字保留关键字内置对象StringNumberDate日期Math数组对象Boolean对象函数“函数”返回值函数重载参数全局方法对象RegExp两个思想BOMWindow 对象获取其他对...
2019-07-13 14:25:15
205
原创 【JAVA-WEB】JDBC
【JAVA-WEB】JDBC步骤类DriverManage类Statement接口登陆验证小案例SQL注入编写工具类配置文件事务事物的四大特性ACID语法格式批处理连接池DBCPC3P0Druid概念:java database contaiction用java 语言跟数据库建立连接,进行增删改查的操作。本质:语言规范,是一套接口。数据库驱动:数据库厂商写的实现类步骤导入对应jar ...
2019-07-13 14:19:48
112
原创 【JAVA-WEB】CSS
CSS基础知识css的作用css的特性CSS 跟HTML 配合使用的方式方式1--内联样式方式2--内部方式方式3--外联样式基本语法选择器类选择器id选择器标签选择器包含选择器通配符选择器 *伪类子选择器 div >p相邻选择器 +相邻所有选择器 div ~属性选择器过滤选择器(伪类选择器)选择器的优先级基本属性位置属性字体属性设置字体字体大小的设置字体颜色字体的样式字体的加粗字体的阴...
2019-06-27 16:51:47
127
原创 【JAVA-WEB】HTML
@ HTML目录简介HTML(HyperText Markup Language )超文本标记语言,扩展名为 “.html”或“.htm”(微软的操作系统),由浏览器解释的文件。html标记是与大小写无关的标记可以拥有自己的属性。属性他能够为页面上的HTML元素提供附加信息。特点1、 简易性:超级文本标记语言版本升级采用超级方式,从而更加灵活方便。2 、可扩展性:超级文本标记语言的...
2019-06-27 14:10:21
677
原创 【JAVA-SE】数组与集合
数组数组数组的定义定义: 存储同一种数据类型的多个数据,数组是引用数据类型定义方式:动态初始化,静态初始化定义格式格式1: 数据类型[] 数组名;格式2: 数据类型 数组名[];数组的初始化初始化:为数组中的数组元素分配内存空间,并为每个数组元素赋值。Java中的数组必须先初始化,然后才能使用。初始化的分类:动态初始化: 只指定长度,由系统给出初始化值格式:数据类...
2019-06-17 17:03:05
172
原创 【JAVA-SE】流程控制语句
前言:一件完整的事件从开始到结束都有自己的一套流程,越复杂的事件其流程也越复杂。在编程语言中,如何利用流程的逻辑控制事件的发展与走向,减少代码量?如何利用流程控制语句实现想要的功能?在这之前我们先要了解什么是流程控制语句,流程控制语句有哪些,各自是如何实现流程控制的?分类:顺序结构、选择结构、循环结构顺序结构概述:最简单最基本的流程控制、按顺序执行(写在前面的先执行,写在后面的后执行)执行...
2019-06-17 14:57:48
92
原创 【JAVA-SE】基础知识
JRE:Java Runtime Environment(Java运行环境)包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。JDK:JDK(Java Development Kit Java开发工具包)JDK是提供给Java开发人员使用的,其中包含了java的开发工...
2019-06-17 14:31:23
147
原创 【JAVA-SE】大纲目录
前言:这是一篇JavaSE部分的大纲,或者说是目录。写这个目录的目的有两个:(一)为了有一个清晰而完整的知识体系,当然一个完整的知识体系并不是一蹴而就的,需要不断的积累学习,所以日后也会经常对它进行修补;(二)为了自检,依照目录回忆知识点,供日后查漏补缺,温故而知新,不断的学习也需要不断的温故。基础知识标识符命名规则方法概述常量变量运算符逻辑运算符位运算符三元运算符关键字未...
2019-06-16 16:22:52
476
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人