![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 85
独一无二的VV
冲就完事了
展开
-
计算机网络复习1
计算机网络计算机网络定义计算机网络是指将分布在各地,具有独立功能的许多个计算机连接起来,按照某种协议进行通信,并通过网络操作系统进行管理实现资源共享的系统计算机网络系统的组成软件系统:网络系统软件网络应用软件硬件系统:网络基本硬件网络通信设备网络传输介质网络外部设备计算机网络的功能数据通信和信息服务资源共享其它功能集中管理,避免孤岛实现协同计算实现分布式处理数据通信时计算机网络最基本的功能互联网的组成边缘部分核心部分边缘部原创 2021-12-20 10:08:31 · 1268 阅读 · 0 评论 -
HashMap的hash()方法与tableSizeFor()方法
HashMap源码hash()方法这是扰动函数,目的是为了避免碰撞问题 static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }从上面的方法可以看到key的hash值得计算方法,key的高16位不变,低16位与高16位进行异或操作作为最终的hash值(h >>>原创 2021-12-12 17:05:52 · 680 阅读 · 0 评论 -
深入理解Java虚拟机4(几种垃圾收集器的原理)
垃圾收集器垃圾收集算法是内存回收的方法论垃圾收集器就是内存回收的具体实现Serial收集器Serial收集器是最基本、发展历史最悠久的收集器,曾经是虚拟机新生代收集的唯一选择这个收集器是一个单线程收集器,但它的单线程的意义并不仅仅说明它只会使用一个CPU或一条收集线程区完成垃圾收集工作,更重要的是在于它进行垃圾收集时,必须暂停其它所有工作线程,直到它收集结束使用复制算法“Stop The World”这项工作实际上是由虚拟机在后台自动发起和自动完成的。在用户不可见的情况把用户正常工作的线程原创 2021-12-10 20:13:58 · 912 阅读 · 0 评论 -
深入理解Java虚拟机3(垃圾收集算法,HotSpot算法的实现)
垃圾收集算法分代收集理论当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generation Collection)的理论进行设计,分代收集名为理论,实际是一套符合大多数程序运行实际情况的经验法则,它建立在两个分代假说上:弱分代假说:绝大多数对象都是朝生夕灭的强分代假说:熬过越多次垃圾收集过程的对象就月难以消亡这两个分代假说共同奠定了多款常用垃圾收集器的一致的设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象熬过垃圾收集过程的次数)分配到不同的区域之原创 2021-12-10 20:09:09 · 755 阅读 · 0 评论 -
深入理解Java虚拟机2(如何判断对象已死?)
对象已死吗在堆里存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还”存活“着,哪些已经”死去“(即不可能再被任何途径使用的对象)引用计数算法很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。客观说,引用计数算法的实现很简单,判定效率也很高,在大部分情况下都是一个不错的算法。但是至少主流的Java虚拟机里面没有选原创 2021-12-10 20:06:00 · 336 阅读 · 0 评论 -
深入理解Java虚拟机1(Java内存区域与内存溢出异常)
Java内存区域与内存溢出异常运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范((JavaSE 7版)》的规定,Java 虚拟机所管理的内存将会包括以下几个运行时数据区域,如图2-1所示。程序计数器程序计数器是一块较小的内存空间它可以看作是当前线程所执行的字节码的行号指示器。在虚原创 2021-12-07 09:53:39 · 715 阅读 · 0 评论 -
Redis学习笔记4(事件)
事件Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件:文件事件:Redis服务器通过套接字与客户端(或者其它Redis服务器)进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端(或者其它服务器)通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作时间事件: Redis服务器中的一些操作(比如serverCron函数)需要在给定的时间点执行,而时间事件就是服务器对这类定时操作的抽象。文件事件Redis基于Reactor模式开发了自己的网络原创 2021-12-06 09:39:19 · 229 阅读 · 0 评论 -
Redis学习笔记3(RDB持久化)
RDB持久化文章目录RDB持久化RDB文件的创建与载入SAVE命令执行时服务器状态BESAVE命令执行时的服务器状态RDB文件载入时的服务器状态自动间隔性保存设置保存条件dirty计数器和lastsave属性检查保存条件是否满足RDB文件结构databases部分key_value_pairs部分总结我们将Redis非空数据库以及它们的键值对统称为数据库状态举个例子,图10-1展示了一个包含三个非空数据库的Redis服务器,这三个数据库以及数据库中的键值对就是该服务器的数据库状态因为Redis是内原创 2021-11-29 09:24:42 · 150 阅读 · 0 评论 -
Redis学习笔记2(跳跃表)
跳跃表跳跃表是一种有序数据结构,它通过在每个节点中维持多个指向其它节点的指针,从而达到快速访问节点的目的跳跃表支持平均logNlogNlogN、最坏O(n)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。在大部分情况下,跳跃表的效率可以和平衡树媲美,并且因为跳跃表的实现比平衡树简单,很多程序用跳跃表代替平衡树Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现原创 2021-11-21 20:41:40 · 1720 阅读 · 2 评论 -
Redis学习笔记1(SDS,链表,字典)
Redis简单动态字符串Redis没有直接使用C语言传统字符串(以空字符结尾的字符数组)表示,而是自己构建了一种名为简单动态字符串(SDS)的抽象类型,并将SDS用作Redis的默认字符串表示在Redis里面,C字符串只会作为字符串自变量,用在一些无须对字符串值进行修改的地方,比如打印日志当redis需要的不仅仅是一个字符串字面量,而是一个可以被修改的字符串值得时候,Redis就会使用SDS来表示字符串的值,比如在Redis的数据库里面,包含字符串值的键值对在底层都是由SDS实现的。例如:那原创 2021-11-21 00:09:38 · 708 阅读 · 0 评论 -
MySQL学习笔记3---覆盖索引
覆盖索引通常大家都会根据where条件来创建合适的索引,不过这只是索引优化的一个方面。设计优秀的索引应该考虑到整个查询,而不单单是where条件部分。索引确实是一种查找数据的高效方式,但是MySQL也可以使用索引来获取列的数据,这样就不再需要读取行数据行。如果索引的叶子节点已经包含要查询的数据,那么还有什么必要再回表查询呢?如果一个索引包含(或者说覆盖)所有需要查询的字段的值,我们称之为“覆盖索引”覆盖索引的好处覆盖索引是非常有用的工具,能够极大的提高性能。考虑一下如果查询只需要扫描索引而无需回表,会原创 2021-11-18 22:40:26 · 275 阅读 · 0 评论 -
MySQL学习笔记2(创建高性能的索引)
创建高性能的索引索引基础索引:是存储引擎用于快速找到记录的一种数据结构。这是索引的基本功能索引对于良好的性能非常关键,当表中数据量越来越大的时候,索引对性能的影响愈发重要。在数据量较小且负载较低时,不恰当的索引对性能的影响可能不明显索引优化重要的原因:索引经常被忽略,有时候甚至被误解,所以在实际案例中经常会遇到又糟糕索引导致的问题。要理解索引是如何工作的,最简单的方法是去看看一本书的索引部分,如果想要在一本书中找到某个特定主题,一般会先去看书的索引,然后找到对应的页码索引的类型索引是存储在引擎原创 2021-11-13 10:42:36 · 993 阅读 · 1 评论 -
MySQL学习笔记1
MySQL1.MySQL架构与历史1.1 MySQL逻辑架构以下是MySQL逻辑架构图最上层是基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理,授权认证,安全等等。第二层架构是大多数MySQL核心服务功能所在的层,包括查询解析,分析优化,以及所有的内置函数(例如日期,时间,数学和加密函数),跨存储引擎的功能都在这一层实现:存储过程,触发器,视图等第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取读写锁读锁:共享的,相互不阻塞的,多个用户在同一时刻可以同时原创 2021-11-06 12:18:54 · 376 阅读 · 0 评论 -
Linux学习(目录,常用基本命令,基本属性
Linux目录文章目录Linux目录常用的基本命令基本属性/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存原创 2021-10-14 22:22:14 · 109 阅读 · 0 评论 -
SpringMVC学习笔记(回顾Servlet,RestFul风格,结果跳转方式,数据处理)
回顾Servletservletpackage servlet;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class HelloS原创 2021-09-08 21:08:10 · 145 阅读 · 0 评论 -
Python爬虫学习(爬虫基础知识,Beautifulsoup的使用)
Python爬虫文章目录Python爬虫爬虫基础知识环境搭配获取一个get请求获得一个post请求超时处理进行伪装(伪装成浏览器爬取网页)Beautifulsoup的使用准备工作Tag标签NavigableStringBeautifulSoupComment文档的遍历文档的搜索字符串过滤正则表达式搜索kwargs 参数text参数limit参数css选择器正则表达式简单使用爬虫基础知识环境搭配# @author VV# @date 2021/8/14 19:34import urlli原创 2021-08-15 22:39:02 · 227 阅读 · 1 评论 -
数据库常见面试题(一)
数据库常见面试题什么是事务:数据库事务是指作为单个逻辑工作单元执行的一系列操作(sql语句),这些操作要么全部执行,要么全部不执行。事务的四大特性原子性:事务中的所有操作是不可再分割的原子单位,要么执行,要么不执行一个事务中的操作,要么全部成功,要么全部失败如果全部失败,就回滚到事务开始前的状态隔离性:一个事务执行的过程中,不应该受到其它事务的干扰当多个用户并发的访问数据库中时,如果操作同一张表,数据库则为每一个用户都开启一个事务,且事务之间互不干扰,也就是说事务之间的并发原创 2021-08-12 11:41:23 · 65 阅读 · 0 评论 -
Vue学习(五)列表渲染,维护状态,事件处理,表单输入绑定
列表渲染我们可以用v-for指令基于一个数组来渲染一个列表,v-for指令需要使用item in items形式的特殊语法,其中items是源数据数组,而item则是被迭代的数组元素的别名<ul id="example-1"> <li v-for="item in items" :key="item.message"> {{ item.message }} </li></ul>var example1 = new Vue({ el原创 2021-07-18 22:04:35 · 547 阅读 · 1 评论 -
Vue学习(四)计算属性与侦听器,条件渲染
计算属性与侦听器在模板中放入太多的逻辑会让模板过重且难以维护,例如:<div id="app"> {{msg.split('').reverse().join('')}}</div>在这个地方,模板不再是简单的声明式逻辑。你必须看一段时间才能意识到,这里是想要显示变量 msg 的翻转字符串。当你想要在模板中的多处包含此翻转字符串时,就会更加难以处理。所以,对于任何复杂逻辑,你都应当使用计算属性。基础例子<!DOCTYPE html><原创 2021-07-16 17:04:11 · 135 阅读 · 0 评论 -
Vue学习(三)模板语法
模板语法插值文本数据绑定最常见的形式就是使用"Mustache"语法,(双大括号)的文本插值:<div id="app">message:{{message}}</div>Mustache标签将会被替代为对应数据对象上msg property的值。只要数据对象上msgproperty发生了改变,插值内容也会实时更新通过使用v-once可以执行一次性插值,当数据改变时,插值处内容不会更新。但这会影响到该节点上的其它数据的绑定。<!-- 这个不会发生改变 -->原创 2021-07-15 18:48:41 · 191 阅读 · 2 评论 -
Vue学习(二)Vue实例
Vue实例创建一个Vue实例:一个Vue应用通过用Vue函数创建一个Vue实例开始:var vm = new Vue({ // 选项})数据与方法当一个Vue实例被创建时,它将data对象中的所有property加入到Vue的响应式系统中。当这些property的值发生变化时,视图将会产生响应,即匹配更新的值。// 我们的数据对象var data = { a: 1 }// 该对象被加入到一个 Vue 实例中var vm = new Vue({ data: data})/原创 2021-07-15 13:49:53 · 222 阅读 · 0 评论 -
Vue学习(一)
VueVue是一套用于构建用户界面的渐进式框架第一个Vue程序声明式渲染<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title>原创 2021-07-15 00:32:40 · 146 阅读 · 0 评论 -
Mybatis学习笔记(二)动态SQL,缓存,延迟加载,逆向工程,PageHelper分页插件
动态SQL根据具体的参数条件,来对SQL语句进行动态拼接。在以前的开发中,由于不确定查询参数是否存在,许多人会使用类似于where 1 = 1来作为前缀,这样,就算要查询的参数为空,也能够正确执行查询,如果不加1 = 1,则如果查询参数为空,SQL语句就会变成SELECT * FROM student where,SQL语句不合法mybatis里的动态标签:if<!-- 示例 --><select id="find" resultType="student" paramet原创 2021-07-13 19:17:29 · 152 阅读 · 0 评论 -
MyBatis 用Map作为参数,模糊查询
MyBatisParameter用Map替代对象dao:User getUserById2(Map<String,Object> map);xml <select id="getUserById2" parameterType="map" resultType="com.vv.pojo.User"> select * from mybatis.user where id= #{helloid} and name = #{name} </原创 2021-07-12 15:31:12 · 237 阅读 · 0 评论 -
Spring学习 使用注解开发,代理模式
8. 使用注解开发说明在spring4之后,想要使用注解形式,必须先导入aop的包在配置文件中,还要引入一个context的约束<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context原创 2021-07-12 13:38:09 · 258 阅读 · 0 评论 -
Oracle复习笔记(一,二,三章)
Oracle复习1. oracle 11g简介1.oracle的安装与配置打开这几个服务2. oracle11g的管理工具oracle的管理工具1. SQL*Plus用户对数据库的操作主要是通过SQL*Plus工具实现的SQL*Plus可以建立位于相同服务器上的数据库连接,或者位于网络中不同服务器的数据库连接。SQL*Plus工具可以满足Oracle数据库管理员的大部分要求。2. Oracle Enterprise Manager(OEM)Oracle安装完毕后,OEM原创 2021-06-22 14:05:54 · 95 阅读 · 0 评论 -
启动Tomcat访问出现404的情况
可能遇到的问题:访问出现404,排查步骤:查看控制台输出,看一下是不是缺少了什么jar包。如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!重启Tomcat 即可解决详细步骤:...原创 2021-06-20 22:21:37 · 571 阅读 · 0 评论 -
Spring学习 IOC理论,Spring基本配置,xml配置
1. Spring1.1 简介SSM : Spring + SpringMVC + Mybatis官网:https://spring.io/projects/spring-frameworkmaven 依赖:<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency> <groupId>org.springframework原创 2021-06-19 21:52:55 · 99 阅读 · 0 评论 -
Spring学习,依赖注入,bean的作用域,Bean的自动装配
5.依赖注入5.1 构造器注入见3.3.15.2 Set方式注入(重点)依赖注入:Set注入依赖:bean对象的创建依赖于容器注入:bean对象中的所有属性,由容器来注入【环境搭建】复杂类型package com.vv;public class Address { private String address; public String getAddress() { return address; } public v原创 2021-06-19 21:59:03 · 160 阅读 · 0 评论