- 博客(35)
- 收藏
- 关注
原创 垃圾回收相关知识
对于简单的桌面应用,分配给虚拟机的内存不会很大,对于一两百兆的新生代,Serial的垃圾收集时间可以控制在一百毫秒以内,对于用户来说基本上是无影响的。在Java内存运行时区域的各个部分中,堆和方法区这两个区域则有着很显著的不确定性:一个接口的多个实现类需要的内存可能会不一样,一个方法所执行的不同条件分支所需要的内存也可能不一样,只有处于运行期间,我们才能知道程序究竟会创建哪些对象,创建多少个对象,这部分内存的分配和回收是动态的。所谓吞吐量指的是CPU用于运行代码的时间和CPU总消耗的时间比例。...
2022-08-30 12:05:03 296
转载 数据链路层相关知识
(3)参数a:要提高以太网信道利用率就必须减小τ与T0的比,定义参数a=τ/T0,当a趋于0,表示一旦发生碰撞就可以检测,并立即停止发送,a越大表明争用期所占的比例增大,每发生一次碰撞就浪费许多信道资源。②MAC帧的最短长度是512bit(64字节),原因是:因此所发送帧的最短长度应当要保证在该帧发送完毕前,必须检测到可能最晚来到的冲突信号,该往返时间为2τ,相当于512bit。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的 MAC 地址,然后再确定将该帧转发到哪一个接口。...
2022-08-29 20:57:58 406 1
原创 TCP协的八大特性与三次握手四次挥手过程
接收端在应答的时候会提交缓冲区的剩余大小,我们当前比如说剩余500k,就直接应答的话那么我们下次也就会收到500k的数据,但是有可能在我们应答的过程中接收端又能消费一些缓冲区的数据,那么我们稍微等一下下,假设稍微等一下他又能消费500k的数据,那么我们就返回缓冲区的大小就是1m,这样下次就能多收到一点数据。发送端发送数据是较快的,但是接收端处理数据相对来说较慢,那接收端在消费很多数据的时候接收缓冲区很快就满了,当接收缓冲区满了之后,再发送的数据就会产生丢包,就导致一系列问题的产生,所以就需要流量控制。...
2022-08-29 14:14:19 670
转载 从输入url到页面展示到生了什么?
因为,DNS就相当于一个电话本,比如你要找www.baidu.com这个域名,那我翻一翻我的电话本,我就知道,哦,它的电话(ip)是167.23.10.2。客户端A收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端B,服务端B检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端A和服务端B进入ESTABLISHED状态,完成三次握手,随后客户端A与服务端B之间可以开始传输数据了。,比如谷歌的是V8。
2022-08-24 17:40:42 128
原创 网络中的一些基本概念
主机A查看自己的ARP缓存,检查是否有主机B的IP到MAC的映射,如果有映射,构造报文,目的IP为主机B的IP,源IP为主机A的IP,目的MAC为主机B的MAC,源MAC为主机A的MAC,将报文发送给交换机C,交换机C进行MAC地址表学习,将主机A的MAC和报文入端口号记录下来,然后交换机C查看自己的MAC转发表,检查是否有主机B的MAC到端口的映射,如果有映射,获取对应的端口,将报文从此端口转发出去,报文到达主机B。服务器就是存放数据,文件等资源的,客户端与其进行数据的交互和数据的存储,更新。
2022-08-24 17:27:56 388
原创 HTML基础
HTML 文件基本结构标签层次结构快速生成代码框架HTML 常见标签注释标签标题标签: h1-h6段落标签: p换行标签: br格式化标签图片标签: img超链接标签: a表格标签表单标签form 标签input 标签文本框密码框单选框复选框
2022-06-02 00:27:10 643
原创 七大排序算法的实现
内部排序基于比较的七大排序:都是在内存中进行排序的稳定性:待排序序列中若存在值相等的元素。经过排序之后,相等的元素之间原有的先后顺序若保持不变,就叫稳定的排序算法;基于排序思想分类1.插入排序直接插入排序希尔排序2.选择排序直接选择排序每次在一组待排序的数据中选择最大(最小值)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完。堆排序3.交换排序冒泡排序快速排序4.归并排序外部排序:需要借助硬盘的辅助介质进行排序操作(大数据排序,大到内存放不下):桶排序
2022-05-31 13:01:54 116
原创 MySQL事务
文章目录事务概述事务需遵循ACID四个特性:原子性一致性隔离性持久性事务的类型事务隔离级别事务概述事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成。在事务中的操作,要么都执行修改,要么都不执行,这就是事务的目的,也是事务模型区别于文件系统的重要特征之一。事务需遵循ACID四个特性:原子性A(atomicity), 原子性。原子性指整个数据库事务是不可分割的工作单位。只有使事务中所有的数据库操作都执行成功,整个事务的执行才算成功。事务中任何一个SQL语句执行失败,那么已经执行
2022-05-30 15:19:43 449
原创 MySQL索引
文章目录一、索引概述二、为什么要索引三、索引的作用四、索引的优缺点优点缺点五、 索引的使用场景六、使用索引注意事项七、索引的使用1. 查看索引2. 创建索引2.1创建普通索引2.2创建唯⼀索引3添加主键索引4.删除索引八、索引的实现原理九、索引和约束的区别十、聚簇索引和非聚簇索引的区别一、索引概述索引是⼀种特殊的⽂件,包含着对数据表⾥所有记录的引⽤指针。可以对表中的⼀列或多列创建 索引,并指定索引的类型,各类索引有各⾃的数据结构实现。二、为什么要索引数据库中数据存储在磁盘,磁盘的顺序查询速度是很慢的
2022-05-30 13:43:13 366
原创 枚举和Lambda表达式
文章目录枚举枚举额的概述枚举常⽤⽅法1.values() 使⽤2.ordinal() 使⽤3.valueOf() 使⽤4.compareTo() 使⽤枚举的优点:枚举的缺点:Lambda表达式lambda的概述:Lambda 表达式的基本语法:1. ⼊参 paramaters:2. ->:3. 实现代码(⽅法体):Lambda表达式的基础使用meLambda 和函数式接⼝Lambda表达式的优点Lambda表达式的缺点:枚举枚举额的概述枚举是在一定范围内取值,并且这个值必须是枚举类型中的任意一个
2022-05-29 16:16:19 380
原创 文件操作和IO
文件:针对硬盘这种持久化存储的I/O设备,当我们想要进⾏数据保存时,往 往不是保存成⼀个整体,⽽是独⽴成⼀个个的单位进⾏保存,这个独⽴的单位就被抽象成⽂件的概念, 就类似办公桌上的⼀份份真实的⽂件⼀般。文件的组织:就是按照层级结构进⾏组织 —— 也就是我们数据结构中学习过的树形结构。文件路径:树中的每个结点都可以被⼀条从根开始,⼀直到达的结点的路径所描 述,⽽这种描述⽅式就被称为⽂件的绝对路径(absolute path)。文件类型:文本文件:保存被字符集编码的⽂本二进制文件:按照标准格式
2022-05-29 15:33:25 297
原创 哈希表底层实现
树化与解树化树化:当一个链表额长度超过树化阈值8,再判断当前整个哈希表的元素个数是否超过树化的最小容量64,若超过,将当前链表转为红黑树,若没超过最小容量,只是将哈希表扩容而不是树化。解树化:当一个红黑树不断删除元素后,发现红黑树的元素个数小于等于解树化阈值6,会再次把红黑树转为链表。无论是树化与解树化都是为了效率。...
2022-05-27 16:45:32 810
原创 哈希表相关
文章目录Java中的HashMap的工作原理HashMap的实质负载因子HashMap的初始容量扩容Java中的HashMap的工作原理HashMap是以键值对的形式存储元素的,需要一个哈希函数,使用hashcode和eaquels方法,从集合中添加和检索元素,调用put方法时,会计算key 的哈希值,然后把键值对存在集合中合适的索引上,如果键key已经存在,value会被更新为新值。HashMap的实质HashMap 是一个散列表,它存储的内容是键值对(key-value)。HashMap 继承
2022-05-26 22:01:35 211
原创 二叉树的四种遍历方式
二叉树的前序遍历import java.util.ArrayList;import java.util.List;import java.util.Stack;public class Num144 { class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>
2022-05-26 20:31:01 142
原创 面向对象的三大特征之多态
文章目录一、多态的概念二、多态存在的前提三、多态的特点四、多态的转型一、多态的概念多态指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具
2022-05-26 19:40:07 308
原创 开散列实现哈希表(简单版)
package hash;/** * 基于拉链法实现的哈希表 */public class HsahMapByLink { //实际存储的每个节点,冲突时使用单链表链接冲突节点 private class Node{ int key; int val; public Node(int key, int val, Node next) { this.key = key; this.val
2022-05-26 17:17:47 62
原创 最全面试总结之Java基础
1.说一说你对Java访问权限的了解在修饰成员变量/成员方法时,该成员的四种访问权限的含义如下:private:该成员可以被该类内部成员访问;default:该成员可以被该类内部成员访问,也可以被同一包下其他的类访问;protected:该成员可以被该类内部成员访问,也可以被同一包下其他的类访问,还可以被它的子类访问;public:该成员可以被任意包下,任意类的成员进行访问。在修饰类时,该类只有两种访问权限,对应的访问权限的含义如下:default:该类可以被同一包下其他的类访问;publi
2022-05-17 18:30:58 109
原创 二叉搜索树与双向链表
题目输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示数据范围:输入二叉树的节点数 0≤n≤1000,二叉树中每个节点的值 0≤val≤1000要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)注意:1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继2.返回链表中的第一个节点的指针3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据结构4
2022-05-12 19:50:35 97
原创 根据二叉树创建字符串
题目描述给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对 “()” 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对示例1输入:root = [1,2,3,4]输出:“1(2(4))(3)”解释:初步转化后得到 “1(2(4)())(3()())” ,但省略所有不必要的空括号对后,字符串应该是"1(2(4))(3)" 。示例2来源:力扣(LeetCode)链接:h
2022-05-12 00:36:34 320
原创 二叉树的最近公共祖先
题目给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。输入:root = [3,5,1,6,2,0,8,null,null,7
2022-05-12 00:14:12 88
原创 MySQL条件查询
1.where条件查询where查询不可以使用别名。select* from 表名 where 查询条件;2.null查询select* from 表名 where 查询条件 is null;select* from 表名 where 查询条件 <=>null;3.in 查询所有满足条件的结果都会被查出来。select* from 表名 where 查询条件1 in 查询条件2;4.like查询(模糊查询)/ :或者_ :字段中的一部分select* from 表
2022-03-31 21:02:50 801 2
原创 【MySQL数据操作】
一、添加操作1.全列添加:给这张表的所有字段都添加内容注:添加时未指定列时,插入的顺序一定要和建表时列的顺序一样。insert into 表名 values (数据1,数据2);2.指定列添加:insert into 表名(列名1,列名】)values (数据1,数据2);二、查询语句1.全列查询select * from 表名;2.指定列查询select 列名1,列名2 from 表名;3.表达式查询select 列名+/-x from 表名;4.别名查询sele
2022-03-31 20:17:47 656
原创 动态数组实现
import java.util.Arrays;// 动态数组public class DynamicArrayReview { // 实际元素还是在int[]数组中存储 private int[] elementData; // size干嘛的?size实际上描述了当前动态数组中实际存储的有效元素个数 private int size; public DynamicArrayReview() { this.elementData = new
2022-03-31 19:20:33 91
原创 面向对象的三大特征之继承
继承是面向对象的三大特征之一.也是实现软件复用的重要手段.Java继承具有单继承的特点, 每个子类只有一个直接父类.继承的特点Java的继承通过extends关键字实现.实现继承的类被称为子类.被继承的类被称为父类.父类和子类的关系, 是一种一般和特殊的关系.例如水果和苹果的关系, 苹果继承了水果, 苹果是水果的子类, 水果是苹果的父类.上面类定义中, Fruit 是 Apple 类的父类.Plant 类也是 Apple 类的父类.区别是 Fruit 是 ...
2022-02-27 18:10:56 73
原创 MySQL数据库与表基础总结
一、数据库基础操作1.查询数据库show databases;2.创建数据库create database (if not exits) 数据库名;3.使用数据库use 数据库名;4.删除数据库drop database (if exits) 数据库名;二、表的操作用法1.创建表create table 表名;2.查询所有表名show tables;3.查询表结构desc 表名;方式一:show create table 表名;方式二:sh
2022-02-23 18:23:45 538
原创 面向对象的三大特性之封装
在Java中一共有四个关键字来实现封装特性(属性封装)封装体现易用性,保护性private<protected<default<public易用性:当属性或方法使用public修饰时,无论如何都能使用保护性:当属性或方法使用private修饰时,只在类{}中使用,在此类以外,外部不知其存在。阿里编码规约规定:类中所以成员变量都要使用private封装。若属性被private封装后,如何来使用这些属性属性getter/setter方法 使用属性的接口当
2021-10-30 22:16:16 96
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人