- 博客(129)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Collection与Iterator接口。
collection接口。Java中所有的集合都会继承该接口,无论是在学习Java还是算法的学习中都还是该学习一下这个接口。源码:该接口在Java的util包下,iterator也同是这个包下/** * 2021/1/7 * Java中继承Collection实现了很多数据结构 * @param <E> */public interface Collection<E> extends Iterable<E> { /** * <
2021-01-07 15:38:23 306 2
原创 JavaString类,jvm常量池,针对String的方法
创建String 对象的方式直接通过字符串常量创建String a="a";New一个String对象String a=new String("a");jvm字符串常量池字符串的分配和其他对象分配一样,是需要消耗高昂的时间和空间的,JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:使用字符串常量池:每当我们创建字符串常量池时,JVM会首先检查字符串常量池,如果该字符串已经存在常量池中,那么久直接返回常量池中的实例引用,如果字符串不存在常量池中,就会实例化该字符
2020-11-29 11:58:02 142
原创 sql语句
语法:select * from a A left join b B on A.id = B.id。指定查询字段的时候,需要指点是哪个表的字段,因为字段有可能重复。左连接,把左边的全部查出来,右边有的则匹配,没有则为null。
2022-11-29 11:47:47 150 1
原创 高性能MySQL阅读笔记
目录一:MySQL架构与历史1.1:MySQL逻辑架构一:MySQL架构与历史MySQL最重要,最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离。1.1:MySQL逻辑架构...
2021-06-18 13:48:33 647 1
原创 GIT记录
参考1:初始化仓库git init2:添加文件到仓库git add [文件名]3:提交文件到仓库git commit -m [本次提交的说明]4:仓库状态查看仓库状态git status5:文件修改之后文件修改之后需要重新提交,使用add 和commit6:版本回退git reset回退到上一个版本7:撤销工作区的修改git checkout -- [文件名]使用版本库的版本替换工作区的版本8:文件的删除这时候可用 rm 命令删除: rm test.txt
2021-06-16 16:38:52 166
原创 嵌入式考点
1:嵌入式系统的基本概念。嵌入式软件的基本构成以及功能;能画出简单的嵌入式系统设计框图,举例说明嵌入式应用。嵌入式系统的基本概念:嵌入式系统的基本组成:嵌入式系统应用举例:2:ARM芯片概念及应用。ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴3:Linux文件类型和文件属性文件类型:文件属性:4:linux常用指令chmod指令:修改文件权限5:linux挂载文件系统目录操作:6:gcc的编译流程...
2021-06-07 17:17:28 643 5
原创 iptables 与 firewalld 防火墙
1:防火墙管理工具2:iptables 中基本的命令参数iptables 是一款基于命令行的防火墙策略管理工具,具有大量参数,学习难度较大。另外,再次提醒一下,防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误。3:firewalldfirewalld(Dynamic Firewall Manager of Linux systems,Linux 系统的动态防火墙管理器)服务是默认的防火墙配置管理工具它拥有基于 CLI(命令行界面)和基于 G
2021-05-29 21:27:20 210
原创 存储结构与磁盘划分
1:一切从“/”开始1.1:基本概念在 Linux 系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件。Linux 系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。Linux系统中的文件和目录名称是严格区分大小写的,并且文件名称中不得包含斜杠(/)。FHS是一种推荐使用的文件放置规则1.2:路径在 Linux 系统中另外还有一个重要的概念—路径。路径指的是如何定位到某个文件,分为绝对路径与
2021-05-29 20:02:12 303
原创 用户身份与文件权限
Linux 是一个多用户、多任务的操作系统1:用户身份与能力设计 Linux 系统的初衷之一就是为了满足多个用户同时工作的需求,因此 Linux 系统必须具备很好的安全性。root管理员级别最高,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户、启动/关闭服务进程、开启/禁用硬件设备等root账户的UID为0UID 就相当于我们的身份证号码一样具有唯一性,因此可通过用户的 UID 值来判断用户身份。管理员 UID 为 0:系统的管理员用户。系统用户 UID 为 1~9
2021-05-29 16:52:56 339
原创 vim编辑器与shell编程
1:vim编辑器1.1:三种模式命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。输入模式:正常的文本录入。末行模式:保存或退出文档,以及设置编辑环境第一次进入的时候是命令模式命令模式下随便输入声明字符,就会进入输入模式。输入模式和末行模式不能直接切换命令模式下的常用命令dd:删除光标所在行,前面加数组就代表要删除几行,不加数字就是删除一行yy:复制光标所在行,前面加数字就代表要复制几行,不加数字就代表只复制一行u:撤销上一个操作p:粘贴之前复制和删除过
2021-05-26 23:01:36 659
原创 管道符,重定向与环境变量
输入输出重定向简而言之,输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。输出重定向:标准输出重定向 >错误输出重定向 2>>>代表追加道源文件末尾,>是清空后输入输入重定向标准输入重定向 <<<遇到分隔符就停止输入管道命令符执行格式为“命令 A | 命令 B”把前一个命令原本要输出到屏幕的数据当作是后一个命令的标准输入命令行的通配符如星号(*)代表匹配零个或多个字符,问
2021-05-17 22:25:24 113
原创 jvm----字节码指令!
操作码 操作数操作数可以是0个或者多个1:数据类型与Java虚拟机2:加载和存储指令加载和存储指令将数据从栈帧的本地变量表和操作数栈之间来回传递。3:算数指令
2021-05-16 10:59:44 97
原创 linux杂记
1:基本linux命令1.1:帮助命令man [命令名称]:查看该命令详情1.2:常用系统工作命令echo> 用于在终端输出字符串或变量提取后的值,格式为:“echo【字符串/$变量】![在这里插入图片描述](https://img-blog.csdnimg.cn/20210515193643463.png)data > date 命令用于显示及设置系统的时间或日期,格式为“date [选项] [+指定的格式]”。参数作用%Y年份%m月份
2021-05-15 20:52:05 102
原创 java虚拟机类文件结构!
1:概述计算机只认识0和1,以前一直要把代码编译成01的二进制格式才能被计算机执行。打死你不同机器的二进制机器码集合又不一样。限制未命有了更多的选择,编译成平台中立的文件格式,是一种更好的选择,这也使得Java具有平台无关性。2:无关性平台无关性主要有class文件就行语言无关性java 虚拟机支持一些列的语言,不只是Java,其他均可编译成class文件均可以。因为Java虚拟机不与任意一个语言绑定,它只与class文件这种特定的二进制文件所关联。3: 数据存储基础Class文件是一
2021-05-11 09:47:31 314
原创 css
注释ctr+?快捷键引入css//外部css文件<link rel="stylesheet" type="text/css" herf="地址"/>//页面级css<head> <style type="text/css"//type可写可不写> </style></head>//行间样式<div style=""></div>...
2021-05-09 19:52:43 177
原创 RDBRDB
1:概述2:RDB文件的创建和载入2.1:创建RDB文件2.2:载入自动载入3:自动间隔性保存例子:3.1:设置保存条件3.2:dirty计数器和lastsave属性3.3:检查保存条件是否满足周期性检查4:RDB文件结构databases部分pairs部分等等p128/145主要了解,RDB的生成与载入,和自动保存的设置及其原理就可以了...
2021-04-29 16:55:51 110
原创 html
这里写目录标题divspan加粗斜体删除地址div容器,页面分块,结构化,捆绑span加粗<strong></strong>斜体<em></em>删除<del></del>地址<address></address>
2021-04-29 15:50:32 88 1
原创 数据库11111
1:服务器中的数据库默认会创建16个数据库2:切换数据库2.1:语法select [数据号数 0-15]2.2:例子127.0.0.1:6379> get keys*(nil)127.0.0.1:6379> set msg "yfy"OK127.0.0.1:6379> get msg"yfy"127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> get msg(nil)127.0.0.1:6379[
2021-04-28 18:04:36 91
原创 redis-对象
简介redis基于之前的基本数据结构构建了五大对象字符串对象列表对象哈希对象集合对象有序集合对象1:对象类型与编码1.1:类型1.2:编码和底层实现编码:对象的底层是什么数据结构指针:指向底层数据结构每个对象都可以有不同的编码实现,也就是采用不同的数据结构来实现2:字符串对象2.1:三种类型编码的字符串的使用此场景底层编码为int(整数)的情况底层编码为raw(动态字符串)的情况底层编码为embastr(SDS)的情况总结2
2021-04-27 21:34:26 73
原创 基本数据结构-字典
1:概述2:字典的实现2.1:哈希表2.2:哈希表节点2.3:字典3:hash算法4:解决键冲突5:rehash渐进rehash
2021-04-26 15:43:56 99
原创 JWT
1:依赖 <!--jwt依赖--> <dependency> <groupId>com.auth0</groupId> <artifactId>java-jwt</artifactId> <version>3.4.0</version> </dependency>2:生成JWT头这一部分使
2021-04-25 20:18:29 87
原创 基本数据结构--简单动态字符串
1:概述redis中并没有使用c语言中的字符串,而是自己构建了一种名为简单动态字符串(SDS)的类型。作为redis的默认字符串表示。2:SDS的定义
2021-04-25 17:35:21 139
原创 拆箱与装箱要点
Java 基本类型的包装类的大部分都实现了常量池技术,即 Byte,Short,Integer,Long,Character,Boolean;前面 4 种包装类默认创建了数值[-128,127] 的相应类型的缓存数据,Character 创建了数值在[0,127]范围的缓存数据,Boolean 直接返回 True Or False。如果超出对应范围仍然会去创建新的对象。两个浮点数并没有实现常量池的技术,因为任意区间中,浮点数有无限个。重点运算表达式会触发拆箱equels()只能比较对象,而不能是基
2021-04-25 11:27:48 63
原创 Java并发包的其他锁:信号量,读写锁,倒计数器,循环栅栏
1:信号量:允许多个线程同时访问可以指定能同时访问资源的线程的个数构造函数Semaphore(int permits)创建具有给定的许可数和非公平的公平设置的 Semaphore。支持公平锁:Semaphore(int permits, boolean fair)创建具有给定的许可数和给定的公平设置的 Semaphore。import java.util.Scanner;import java.util.concurrent.Semaphore;import java.util.concu
2021-04-19 20:45:01 268
原创 重入锁ReentrantLock
1:概览重入锁完全可以代替synchronizedlock()方法显示加锁unlock()方法显示释放锁要注意的是lock()获取锁的方法无法响应中断可以指定合适加锁和合适释放锁,比较灵活支持重入重入锁也是支持重入的,但是仅限于已获得该锁的那一个线程lock.lock();lock.lock(); 一些操作lock.unlock();lock.unlock();注意加锁了几次就要释放锁几次如果释放的次数少了相对于当前线程还持有该锁,其他线程无法获得该锁如果释放次
2021-04-18 15:36:23 73
原创 防火墙与网络地址转换(NAT)
1:网络地址转换NAT建立NAT的动机是IP地址减少。NAT的工作原理就是重写通过路由器的数据包的识别信息(IP地址)。传统NAT:基本NAT和NAPT(网络地址端口转换)传统NAT包括基本NAT(网络地址转换)和NAPT(网络地址端口转换)基本NAT基本NAT只执行IP地址的重写。本质上就是将私有地址改写位公有地址不流行缺点:无法减少需要使用的IP地址一个共有IP地址只能对应一个私有地址。网络地址端口转换NAPT使用端口来标识到底和NAT内部哪台私有主机关联。一个共有
2021-04-14 16:59:12 1872
原创 动态主机配置协议(DHCP)
动态主机配置协议(DHCP)用于为主机配置ip地址信息。主要研究动态分配其他分配方式还有:自动分配与手动分配客户机使用68端口,服务端使用67端口。使用udp/ip协议2.1: 地址池与租用期租用期: 分配给主机的ip地址只是在一段时间内有效。大多数情况下,租用期快要结束时会申请续租。租用期太长:可能很快耗尽地址池的地址,但是可以减少网络开销(因为续租请求少)租用期太短:可以为其他用户提供高可用的地址池,但是会加大网络的开销。客户机在租用过半时尝试续租2.2:流程新入网的主机先
2021-04-14 16:13:24 357
原创 internet协议
1:引言IP时TCP/IP中的核心协议IP提供了一种尽力而为,无连接的数据报交付服务2:IP头部正常的IPV4头部大小为20字节。除非存在选项(少见)IPV6的长度是40字节,没有选项字段,IPV6的选项字段被放在扩展头部IPV4头部版本字段:版本字段包含IP数据报的版本号,IPv4位4,IPv6位6。IPv4头部和IPv6头部除了版本字段位置相同,再无其他一样的。IHL(头部长度):单位双字,IPV4的头部长度,包括选项,但是不包括数据部分。由于它是一个4位的字段,所以IPv4
2021-04-13 16:03:54 1425
原创 字符串相关算法
1:正则表达式1.1:使用正则表达式描述模式语言:一个字符串的集合模式:一个语言的详细说明连接操作当我们写出AB时,就指定了一种语言{AB}。它含有一个由两个字符组成的字符串,由A,B连接而成或操作用“|”这个操作实现或操作。例如,A|B指定的语言时{A,B}。连接操作的优先级高于或操作。闭包操作闭包操作将模式的部分重复任意的次数。我们将“*”标记再要重复的模式之后,表示这部分可以被重复任意多次(包括0次)闭包操作的优先级高于连接操作。例如:AB*表示一个A和0个或多个B的字符组
2021-04-12 22:59:12 220
原创 地址解析协议
1:引言ARP用于将IPV4地址解析为MAC地址,ARP 提供 IP 地址到 MAC 地址的动态映射。IPV6使用的是邻居发现协议,它被合并入ICMPV6PPP点到点链路不使用ARP协议,目的地址是一个广播地址2:例子如果我们要访问一台主机B如果主机B不和主机在同一子网中,那么肯定需要可到达的路由器,先转发到B所在的子网中才行,也就是需要先进行路由吧跨越路由器时如果主机B和我们主机当前在一个子网中,ARP才能发挥作用。3:直接交付和ARP直接交付发生在一个IP数据报被发送到一个I
2021-04-12 20:20:14 378
原创 链路层
1:引言设计链路层的目的是位IP模块发送和接收数据报可用于携带一些支持IP的辅助性协议,例如ARPTCP/IP中有多种链路层,依赖于使用的网络硬件类型有线局域网:以太网无线局域网:wifi城域网链路层我们使用术语帧 (PDU格式)什么是PDU?帧格式通常支持可变的帧长度,这个范围的上限称为最大传输单元(MTU)以太网是链路层的一种实现2:以太网和IEEE 802 局域网/城域网标准2.1:概述以太网这个术语通常指一套标准。最初:第一个常见的以太网,目前被称为“10Mb/
2021-04-11 22:04:17 97
flyway的基线迁移flyway的基线迁移
2021-10-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人