自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZhouRX的博客

共同的信仰——不断追寻技术和超越自我的信仰

  • 博客(48)
  • 收藏
  • 关注

原创 前端埋点学习笔记

目的埋点是为了采集用户行为数据(例如页面访问路径,点击了什么元素),便于进行数据分析。三大类型现有的埋点采集方案可以大致被分为三种手动埋点需要调用埋点的业务方在需要采集数据的地方调用埋点的方法,可以根据需要在任意地点任意场景进行数据采集,采集信息也完全由业务方来控制流量可控(利)写死方法,不灵活(弊)可视化埋点运营人员通过可视化的界面拖拽配置实现,这些活动控件元素都带有唯一标识。通过埋点配置后台,将元素与要采集事件关联起来,可以自动生成埋点代码嵌入到页面中业务方工作量少

2021-07-11 13:32:28 352 1

原创 虚拟DOM学习笔记

思想核心思想:相对于 DOM 对象,原生的 JavaScript 对象处理起来更快。Virtual DOM 本质上就是在 JS 和 DOM 之间做了一个类似于缓存的东西。这就可以类比 CPU 和硬盘,既然硬盘这么慢,我们就在它们之间加个缓存:既然 DOM 这么慢,我们就在它们 JS 和 DOM 之间加个缓存。CPU(JS)只操作内存(虚拟 DOM),最后的时候再把变更写入硬盘(DOM)。并且,每次计算出最少的需要更新的变化,然后再去修改真实的DOM互联网1.0那种静态页面信息向用户单向传播信息的时代早已

2021-07-11 13:30:31 116

原创 scorllTop兼容性问题

在实现“回到顶部”功能时,需要判断用户下拉页面的举例,来判断是否需要显示“回到顶部”的按钮。因此准备使用 document.body.scrollTop的值大小来判断。代码如下:window.onscroll = function(){ //滚动超出高度,显示按钮,否则隐藏 var backtop = document.body.scrollTop; //滚动超过三分之一的屏幕高度时,将按钮从 display:none设置成block if(backtop >= (pageloo

2021-07-11 13:28:08 244

原创 《Spring实战》笔记 第7章 Spring MVC的高级技术

文章目录Spring MVC配置的替代方案自定义DispatcherServlet配置添加其它的Servlet和Filter在web.xml中声明DispatcherServlet处理multipart形式的数据配置multipart解析器处理multpart请求处理异常将异常映射为HTTP状态码编写异常处理的方法为控制器添加通知跨重定向请求传递数据通过URL模板进行重定向使用flash属性Spring MVC配置的替代方案自定义DispatcherServlet配置在AbstractAnnotati

2021-03-28 15:42:05 137

原创 《Spring实战》笔记 第5章 构建Spring Web应用程序

文章目录Spring MVC起步跟踪Spring MVC的请求搭建Spring MVCSpring MVC起步跟踪Spring MVC的请求搭建Spring MVC配置DispatcherServletDispatcherServlet是Spring MVC的核心。在这里请求会第一次 接触到框架,它要负责将请求路由到其他的组件之中。在Servlet 3.0环境 中,容器会在类路径中查找实现 javax.servlet.ServletContainerInitializer接口的类,如果能发现的

2021-03-27 21:08:48 91

原创 《spring实战》笔记 第10章 Spring&JDBC

文章目录Spring的数据访问哲学了解Spring的数据访问异常体系数据访问模板化配置数据源使用JNDI数据源Spring能够帮忙消除持久化代码中哪些单调枯燥的数据库访问逻辑可以依赖Spring来处理底层的数据访问,这样就可以专注于应用程序中数据的管理了Spring的数据访问哲学为了避免持久化的逻辑分散到应用的各个组件中,最好将 数据访问的功能放到一个或多个专注于此项任务的组件中。这样的组件通常称为数据访问对象(data access object,DAO)或Repository。为了避免应用与特

2021-03-27 11:15:31 110

原创 类加载器概述

文章目录什么是类加载器?JDK中自带了3个类加载器怎么加载的双亲委派机制什么是类加载器?专门负责加载类的命令/工具ClassLoaderJDK中自带了3个类加载器启动类加载器扩展类加载器应用类加载器String s = “abc”代码在开始执行之前,会将所需要的类全部加载到JVM中通过类加载器加载,看到以上代码,类加载器会找String.class文件,找到就加载怎么加载的首先,通过“启动类加载器”加载启动类加载器专门加载:\jre\lib\rt.jar中的类rt.jar都是

2021-03-18 18:22:40 69

原创 反射

文章目录获取Class的三种方式通过java语言中的反射机制可以操作字节码文件在 java.lang.reflect包下面获取Class的三种方式ClassClass c1 = Class.forName("java.lang.String");Class.forName是一个静态方法方法的参数是一个字符串,是类的全限定类名java中任何一个对象都有一个方法,叫做getClass()在Object中String s = "abc";Class x = s.getClass();

2021-03-18 18:10:14 92 1

原创 Nginx入门

文章目录正向代理和反向代理负载均衡Nginx是一个高性能的Http和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务 正向代理和反向代理代理客户端的就是正向代理:比如VPN代理服务器端的就是反向代理负载均衡Nginx提供的负载均衡策略有两种:内置策略和扩展策略内置策略轮询加权轮询lp hash轮询:依次来加权轮询:iphash:对客户端请求的ip进行Hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决

2021-03-17 23:30:37 49

原创 多线程

文章目录多线程什么是进程?线程?实现线程的方式编写一个类,继承java.lang.Thread,重写run方法,new实例,调start编写一个类,实现java.lang.Runnable接口,实现run方法使用匿名内部类两种方法对比多线程什么是进程?线程?进程是一个应用程序线程是进程的一个执行单元(执行场景)一个进程可以启动多个线程进程A和进程B的内存独立不共享线程A和线程B,在Java语言中,堆内存和方法区内存共享,但是栈内存独立,一个线程一个栈启动10个线程,就有10个栈空间,每个栈与

2021-03-15 02:13:19 127 1

原创 对象的序列化和反序列化

文章目录基础用法序列化多个对象基础用法红色箭头标出来的就是序列化反过来就是反序列化,根据编号来一块一块组装序列化:拆分 Serialize 将java对象的状态保存下来的过程,用ObjectOutputStream反序列化:组装 DeSerialize 将硬盘上的数据重新恢复到内存中,恢复成java对象 ObjectInputStream因为有数据库的存在,所以不是很常用有异常要处理,可以try catch 也可以直接扔出去不管如果是单纯的普通Student类,这样运行会爆出异常说

2021-03-14 22:27:13 235

原创 TreeSet自定义类型的排序 Comparable 和 Comparator

需要给自定义类型实现比较接口实现了比较接口以后,不需要再写equals了,因为comapreTo已经帮忙比较的事情,如果两个对象相等,compareTo的结果是0,新的值会覆盖旧的值到 add(p2)的时候会报错说ClassCastException: Person cannot be cast to class java.lang.Comparable因为TreeSet调用add方法,其实是底层调用了 TreeMap 的 put方法new TreeSet<>() new 的时候,

2021-03-14 15:30:26 182 1

原创 《Spring实战》笔记 Ch3 高级装配

文章目录高级装配环境与profile高级装配一种方式就是在单独的配置类(或XML文件)中配置每个bean, 然后在构建阶段(可能会使用Maven的profiles,activation属性)确定要将哪一个配置编译到可部署的应用中。环境与profile...

2021-03-11 21:54:03 80

原创 《Spring实战》笔记 Ch2 装配Bean

文章目录装配BeanSpring配置的可选方案自动化创建bean创建可被发现的Bean为组件扫描的bean命名设置组件扫描的基础包通过为bean添加注解实现自动装配通过Java代码装配Bean创建配置类声明简单的bean借助JavaConfig实现注入通过XML装配bean创建XML配置规范声明一个简单的bean借助构造器注入初始化bean装配BeanSpring配置的可选方案三种装配Bean的方式:使用XML文件进行显式的配置使用Java代码,创建一个JavaConfig的java文件,用代码

2021-03-11 10:38:40 139 4

原创 java: 错误: 无效的源发行版:15

最近把java的版本从15换到了8于是再跑之前java15创建的项目出现了这个报错在尝试了网上的方法之后还是没用最后怀疑是Maven出了问题,一看果然这里也是要从15改成8的https://blog.csdn.net/qq_37252519/article/details/110069418如果这个方法不行,上面这个博客比较详细,应该可以解决问题...

2021-03-03 23:04:58 677 1

原创 Java 两个Integer对象的值一样,用 == 比较结果确实不相等

HashMap<Character, Integer> mapS = new HashMap();HashMap<Character, Integer> mapT = new HashMap();/***省略**/for(Map.Entry<Character, Integer> entry : mapT.entrySet()) if (mapS.get(entry.getKey()) != entry.getValue()) { re.

2021-02-26 10:23:41 849

原创 数据结构与算法学习笔记 哈希表

哈希表哈希函数哈希函数算出来的就是哈希值哈希碰撞Map vs SetHashSet 和 HashMap 略快于 TreeSet 和 TreeMap但是TreeSet和TreeMap更加有序

2021-02-26 09:28:00 95

原创 体系结构 07 可扩展架构后续

可扩展架构后续遗留问题如何解决水平扩展系统中的缓存和会话等状态问题?使用负载均衡器,如HAProxy,使得系统能够水平扩展。但是由于请求被分发到不同的backend,在原来的web系统中间,如果使用了缓存技术,在某一个服务实例上面生成了缓存,因为下一个请求可能不发送到它那儿,所以缓存没有发挥它的直接作用,导致缓存的优势没有发挥出来。更严重的是说,如果应用本身是带状态的(虽然http本身是一个无状态协议,但是可以通过session和cookie来实现多个请求放置在一个会话中间来管理),请求被发送到不同

2021-02-24 16:34:04 88

原创 体系结构06 可扩展架构

文章目录可扩展架构问题来源扩展实现负载均衡可扩展架构问题来源CS/BS架构技术挑战扩展垂直扩展 Scale Up硬件提高垂直扩展(更强的硬件) => 水平扩展(更多的硬件)实现负载均衡为了避免load balancer失效:增加back load balancer冗余...

2021-02-23 16:19:32 142 1

原创 数据结构与算法学习笔记 堆栈和队列

文章目录定义定义Stack - First in Last Out (FILO)Array or Linked ListQueue - First In First Out (FIFO)Array or Doubly Linked List题目链接https://leetcode.com/problems/backspace-string-compare/description/https://leetcode.com/problems/implement-queue-using-

2021-02-23 09:13:40 69

原创 设计模式 02 单例模式

文章目录单例模式单例设计模式介绍单例模式有八种实现方式饿汉式(静态常量)实现方式优缺点饿汉式 (静态代码块)实现方式优缺点懒汉式(线程不安全)实现方式优缺点懒汉式(线程安全,同步方法)实现方式优缺点懒汉式(线程安全,同步代码块)实现方式优缺点双重检查实现方式优缺点静态内部类实现方式优缺点枚举实现方式优缺点单例模式单例设计模式介绍所谓的单例设计模式,就是采取一定的方法,保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。单例模式有八种实现方式饿汉

2021-02-22 22:27:53 86

原创 设计模式00 概述

设计模式类型设计模式分为三种类型,共23种创建型模式单例模式抽象工厂模式原型模式建造者模式工厂模式结构型模式适配器模式桥接模式装饰模式组合模式外观模式享元模式代理模式行为型模式模板方法模式命令模式访问者模式迭代器模式观察者模式中介者模式备忘录模式解释器模式状态模式策略模式职责链模式...

2021-02-22 20:35:52 72

原创 体系结构 05 REST架构

REST架构MVC架构存在的问题:展示层页面与计算逻辑混杂(比如模板引擎中使用的变量名称问题)用户接口并不标准Resource Representational State Transfer 表现层状态转化Rest指的是一组架构约束条件和原则为设计一个功能强、性能好、适宜通信的Web应用如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构核心概念资源 (Resources)表现层 (Representation)状态转化 (State Transfer

2021-02-22 15:57:20 111

原创 数据结构与算法学习笔记 数组与链表

文章目录数组与链表数组链表数组与链表数组访问元素所用的时间复杂度是 O(1)插入和删除元素所用的时间复杂度是O(n)链表时间复杂度插入O(1)删除O(1)查找O(n)习题:https://leetcode.com/problems/reverse-linked-list/https://leetcode.com/problems/swap-nodes-in-pairshttps://leetcode.com/problems/linked-list-cyclehttps:/

2021-02-22 09:33:16 77

原创 体系结构 04 模型-视图-控制器架构

文章目录模型-视图-控制器 架构web应用发展CGI技术在页面中嵌入脚本 , 解释执行获得页面内容Servlet改进MVCSpring MVC模型-视图-控制器 架构web应用发展CGI技术实现浏览器动态内容展示每次都要启动一个进程,开销太大在页面中嵌入脚本 , 解释执行获得页面内容Servlet小程序运行在服务器的JVM中,性能比虽然Servlet可以解决CGI带来的性能问题和安全性问题,但它没有解决将计算逻辑和展示界面混杂在一起的问题,可读性、可维护性、可扩展性很差改

2021-02-21 11:51:09 161

原创 体系结构 03 客户机服务器架构

客户机服务器架构优点资源共享集中化管理(客户机帮服务器分担)性能分布安全ClientRely on servers forFilesDevicesProcessing powerBehaviorInitiates requestswait for and recive repliesusually connects to a small number of servers at one timeServerComputers or processes

2021-02-21 09:43:50 676 1

原创 体系结构 02 分层架构

02 分层架构软件设计发展初始状态:硬件问题:如何提高算法适应性分离出了汇编状态:硬件+程序问题:程序的共性(稳定)成分:计算机资源管理产生:操作系统分离出了:应用程序状态:硬件+操作系统+应用程序问题:程序的共性(稳定)成分:数据管理产生了:数据库操作系统分离出了:应用软件状态:硬件+操作系统+数据库管理系统+应用软件问题:程序的共性(稳定)成分:资源管理和服务产生了:中间件(应用服务器)分离出了:业务逻辑example核心思想实现了

2021-02-21 09:40:16 89 1

原创 体系结构 01 基于构建的软件架构

文章目录SA : Component-based Architecture 基于构建的软件架构Software Component控制反转 IoCSA : Component-based Architecture 基于构建的软件架构《Software Architecture with Spring 5.0》参考书https://spring.io 参考资料软件体系结构的定义Architecture is a subjective thing, a shared understanding

2021-02-21 09:38:52 290

原创 设计模式01 设计模式七大原则

文章目录02 设计模式七大原则1 单一职责原则2 接口隔离原则依赖倒置原则02 设计模式七大原则设计模式的目的:代码重用性(相同功能的代码,不用多次编写)可读性(编程规范性,便于其它程序员的阅读和理解)可扩展性(当需要增加新的功能时,非常的方便,可维护性)可靠性(当我们增加了新的功能后,对原来的功能没有影响)使程序呈现高内聚,低耦合的特性设计模式七大原则,是各种设计模式的基础,也就是,设计模式为什么这样那样设计的依据1 单一职责原则基本介绍对类来说的,一个类应该只负责一项职责。

2021-02-20 17:36:52 88

原创 Sping学习笔记

文章目录Spring简介组成spring 7 大模块拓展IoCIoC理论IOC本质HelloSpringIOC创建对象的方式Spring配置别名bean的配置importDI 依赖注入构造器注入Set方式注入【重点】拓展方式注入bean的作用域bean的自动装配测试byName自动装配byType自动装配使用注册实现自动装配使用注解开发使用Java的方式配置Spring代理模式静态代理动态代理AOP什么是AOP?AOP在Spring中的作用使用Spring实现AOP声明式事物Spring中的事物管理Spr

2021-02-20 14:44:28 131

原创 数据库基础 第五章 笔记

复习指导Embedded SQL (ESQL)SQL statements embedded in host language为什么要引入 ESQL?SQL存在一定的缺点:需要知道所有的表和列需要知道复杂的SQL语法会出现太多的错误,尤其是 Update 和 Delete为了解决上述问题,出现了 ESQLexec sql select count(*) into :host_val from customers;语法上的区别:以 “exec sql" 开始,

2021-02-20 14:28:19 89

原创 软工II 20-23章 笔记

第20、21章 软件交付、软件维护与演化1.软件维护的重要性(1)由于会出现新的需求,如不维护软件将减小甚至失去服务用户的作用。(2)随着软件产品的生命周期越来越长,在软件生存期内外界环境发生变化的可能性越来越大,因此,软件经常需要修改以适应外界环境的改变(3)软件产品或多或少的会有缺陷,当缺陷暴露出来时,必须予以及时的解决2.开发可维护软件的方法(1)考虑软件的可变性:分析需求易变性、为变更进行设计(2)为降低维护困难而开发:编写详细的技术文档并保持及时更新、保证代码可读性、维护需求跟踪链、

2020-08-11 08:43:46 102

原创 软工II 1-5章 笔记

第一、二章 软件工程概论1.软件工程(名词解释)(1)应用系统的、规范的、可量化的方法,来开发、运行和维护软件,即将工程应用到软件。(2)对(1)中各种方法的研究。2.从1950s—2000s之间的特点(简答)1950s:科学计算;以机器为中心进行编程;像生产硬件一样生产软件。1960s:业务应用(批量数据处理和事物计算);软件不同于硬件;用软件工艺的方式生产软件。1970s:结构化方法;瀑布模型;强调规则和纪律。它们奠定了软件工程的基础,是后续年代软件工程发展的支撑。1980s:追求生产力

2020-08-11 08:43:02 180

原创 软工II 8 - 11章 笔记

第八章 软件设计基础1.软件设计(名词解释)a)为使一软件系统满足规定的需求而定义系统或部件的体系结构、部件、接口和其他特征的过程;b)设计过程的结果。2.软件设计的核心思想复杂度控制分解、抽象、层次性第九、十章 软件体系结构设计与构建1.体系结构概念部件+连接件+配置部件:承载系统主要功能,包括处理与数据连接件:定义部件间的交互,是连接的抽象表示配置:定义了部件和连接件之间的关联方式,将它们组织称系统的总体结构2.体系结构的风格的优缺点常见风格模式:(1)主程序/子程序风格

2020-08-08 17:43:40 291

原创 数据库基础 课堂笔记第六章

Database Design

2020-05-15 15:42:37 207

原创 数据库基础 课堂笔记 第4章

4 Object-Relational SQL4.1 IntroductionDeparture from the relational model

2020-05-13 15:02:17 123

原创 《互联网计算》课堂笔记 —— 第四章

文章目录第四章 网络层4.1 网络层提供的两种服务4.2 网际协议 IP (全书重点)第四章 网络层4.1 网络层提供的两种服务但是因特网先驱者认为计算机和电话机有本质的区别,即计算机有很强的差错处理的能力。因此,因特网在设计上就采用了和电信网完全不同的思路TCP/ IP 体系的网络层提供的是数据包服务4.2 网际协议 IP (全书重点)...

2020-05-06 18:37:43 184

原创 如何学好数据结构与算法

文章目录IntroductionIntroduction相互之间的关联庖丁解牛 反馈切题

2020-04-08 16:41:29 116

原创 一些算法题

文章目录线性表解码字符串汤姆和杰瑞分配老鼠洞最小总和分区公约数的数量线性表解码字符串汤姆和杰瑞分配老鼠洞最小总和分区公约数的数量...

2020-03-11 18:28:47 231

原创 Java对象是引用传递还是值传递——JAVA只有值传递

容易弄混淆的就是JAVA中 在栈中的引用 和 在堆中的对象本身的区别https://dzone.com/articles/java-pass-by-reference-or-pass-by-value

2020-02-28 16:18:50 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除