自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 [网络] 带你了解HTTP到底是什么

HTTP协议是一种它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。我们平时输入 URL 来进行搜索的时候,一般开头就会有 http 或者 https。常见的HTTP(超文本传输协议,默认端口80)、HTTPS(默认端口443)、SMTP(传邮件.默认端口25)、FTP(传文件,默认端口21)、Telnet(远程登录,默认端口23)

2022-09-08 16:42:50 3121 6

原创 OJ在线编程输入输出(Java版)

1.如果全部是数字while 中可以使用 hasNextInt()2.如果全部是字符串,可以一行一行读,使用 hasNextLine()3.如果一行中既有字符串又有数字,则可以直接读取一行,hasNextLine()。定义一个String 类型的数组,最后再按空格 spilt() ,或者其他什么要求进行分割就行。再把String 类型的数字转化成 int 类型 :Integer.parseInt()。t=M85B。

2022-09-08 14:17:53 1968 2

原创 [测试] 搜索引擎的相关测试

以 rootPath 作为根目录,开始进行文件的扫描,把所有符合条件的 File 对象,作为结果,以 List 形式返回首先在该类上按 Ctrl + Shift + t,可以自己生成测试的类1.测试时,先给一个根目录的文件,需要确保这个目录存在 && 一定是一个目录,他的文件以 .json 为结尾。当一个文件满足这些条件时,说明是 true。2.再得到他的标准文件名3.使用断言进行判断 Assert,我通过代码得到的文件名如果和我写的正确的文件名相同的话,证明这个测试用例是通过的。

2022-08-21 09:51:35 1016 14

原创 手动写一个搜索引擎(超详细)

搜索引擎是现代设备中被广泛利用的一种系统软件,诸如百度、谷歌、搜索、bing等,或者抖音、快手、b站、小红书,甚至软件应用市场,Windows(操作系统)中的各类提供搜索功能的背后都有搜索引擎的影子。

2022-08-20 19:56:28 7355 22

原创 [JVM]类加载的过程(学习总结)

我们所写的代码就相当于:一组 *.java 文件 + 一组资源文件(多么媒体文件、配置文件)+ 相关存储中的数据(MySQL、Redis...)我们现在的,要让运行时电脑运行我们的程序,实际就是让该电脑的CPU 运行我们程序中的指令数据。但CPU 无法直接和硬盘(IO设备)做直接的数据交换CPU 只能和内存中的数据打交道,现在数据又放在硬盘中所以我们应该先把数据从硬盘中读取到内存中。这个过程是(某个*.class 文件)进行读取的一次一个类文件的加载,按需进行加载(用到哪个加载哪个)...

2022-08-10 11:57:23 314 3

原创 自己写一个调查问卷Web项目 (超详细版)

项目介绍:发起问卷,管理问卷信息,把问卷结果通过可视化方式呈现出来使用技术:Servlet、MySQL、Apache Echarts项目功能:1.从数据库读取实现用户登录功能;使用Session,完成对用户登录的校验。2.数据库实现多表之间的关联关系。3.对题目和问卷的管理实现了分页的功能,题目和问卷实现了精确绑定。4.调查结果利用Apache Echarts 进行可视化展示,便于分析数据。...............

2022-08-02 00:00:17 3828 4

原创 [测试] 调查问卷相关测试

项目介绍:发起问卷,管理问卷信息,把问卷结果通过可视化方式呈现出来一、测试用例功能测试:界面、用户管理、题目管理、问卷管理、活动管理验证界面布局展示成功界面高Firefox版本 102.0.1(32位)PC端 Windows系统1.打开浏览器2.在输入框输入URL3.回车URL界面右侧展示功能;界面中间展示操作帮助;界面上方提示需要登录或注册;验证界面文字展示成功界面高Firefox版本 102.0.1(32位)PC端 Windows系统1.打开浏览器。...

2022-07-19 19:49:49 1273

原创 [网络] IP协议——网络层

IP地址是 IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异IPV4 :32 位无符号整数 IPV6:128 位无符号整数点分发表示 192.168.3.154 < - > 32无符号整数 C0 A8 03 9AIP地址,存在网络号和主机号网络号:标注出主机所在网络主机号:标注出主机在网络是多少编号 192.168.3.154 ——> C类地址A类地址的网络中,一个子网,最多有多少台主机? 2^24这样的划分方式很导致大量的IP地址浪费

2022-07-09 16:44:23 1360

原创 [网络] TCP 协议的相关特性——传输层

ServerSocket socket 给服务器去使用Socket 通信线路的 socketInputStream is = getInputStream() OutputStream os = getOutputStream() 获取输入输出传输层TCP 传输控制协议职责:进程 to 进程 保证可靠性方法:确认(acknowledge)应答TCP给所有的数据编号,这样就知道哪些数据收到了,哪些没收到1)给应用层做编号 2)每个字节占用一个序号【a b c d】 1

2022-07-06 14:51:46 352 1

原创 [测试]性能测试概述

(1)内存泄漏 软件运行的时候没有回收内存,导致系统越来越慢(2)CPU 使用率达到100%(3)线程死锁,阻塞,造成系统运行越来越慢(4)查询速度越来越慢(5)受外部系统的影响越来越大(1)获取系统性能的指标,作为性能基准指标 一个新系统,你不熟悉不知道这个系统的性能指标(2)验证系统的性能指标是否符合需求(3)看系统是否有内存泄露等瓶颈问题(4)系统在正常工作下能处理的用户的数量(5)了解系统的性能,让运维部门更好的规划系统的各种配置(1)关键性能指标分析(2)关键业务的分析

2022-07-03 11:17:51 162 1

原创 [测试] selenium自动化测试2

unittest是一个python版本的junit,junit是java中的单元测试框架UI 功能单元测试该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果(1)测试固件(框架里面的固定方法)setup 方法,测试环境和数据的准备工作tearDown 做测试用例执行完之后的清理工作(2)测试用例一个用例是一个方法 ,def 名字以test_ 开头(3)测试套件把测试用例组织到一起进行一个整体的测试必须以继承的方式来使用,Python也是一种面向对象的语言2.

2022-07-01 15:27:29 224 1

原创 [测试] selenium自动化测试

一个简单自动化脚本的构成:打开百度搜索seleniumUI测试:界面上进行元素的操作 先定位元素,再去操作元素browser.quit() 退出并关闭窗口.清理浏览器的缓存,更好的释放资源browser.close() 也可以关闭窗口定位元素的原则,不管用什么方式定位,这个方式(tag_name,name,id等)必须全局唯一3.操作测试对象 send_keys( ) 向元素发送信息 click( ) 点击元素 submit( ) 提交表单 clear( ) 清除元素的内容

2022-06-30 09:10:09 876 3

原创 [网络]UDP 的报文结构和注意事项——传输层

DatagramSocket(UDP 的 socket)DatagramPacket(UDP 的发送的报文)UDP:面向数据报文 发送方发送的数据,会被原封不动的,传递给接收方期间是不会做数据的拼接和拆分的 保证[abc][defg] 立即发送.........

2022-05-25 19:44:31 320 1

原创 [Java Web] 网络原理基础知识

1.理解网络纯硬件角度:网卡(network interface)数据的发送:首先需要填充数据,然后经过把数字信号转化为物理信号后,把数据发送出去。数据的接收:先接受数据,中断通知有数据到达了,数据复制2.数据在我们主机内部是怎么被处理的(发送、接收)进程控制的内存 -> 网卡网络分层:学院派:OSI 7层实际派:TCP/IP 5层:应用层、传输层、网络层、数据链路层、物理层3.局域网(Local Area Network LAN)国家 省 市集线

2022-05-14 15:44:44 384 1

原创 【Java Web]文件内容部分的操作

目录一、文件的读1.方法2.代码(1)一个字节一个字节的读取(2)一次读一堆(3)文件内容中有中文二、文件的写1.方法2.代码(1) 一个字节一个字节的写(2)一堆的写3.应用(1)文件复制工具(2)目录复制工具(3)文本替换工具一、文件的读InputStream 输入流 可以想象一个水龙头在滴水 数据从水龙头中流出的这样一个过程1.方法方法 说明 abstract int read() ...

2022-05-11 19:35:22 181

原创 [Java Web] 文件操作——IO

1.什么是 I/O?I/O计算机硬件视角下,非内存数据的读写动作。这里主要介绍 文件(硬盘)I/OSystem.in、System.out、System.err 都是我们接触到的I/O2.文件概念狭义上的文件(File):一种抽象的概念,表示硬盘中的数据块变量、对象是对内存中数据的抽象。 文件是对硬盘中数据的抽象文件系统(FileSystem):对硬盘上的数据——文件进行直接组织和管理的一个模块3.硬盘存储 VS 内存存储(1)硬盘存储特点:非易失性存储:可以在断电的

2022-05-10 20:35:51 246 1

原创 [Java Web]关于各种各样的锁

1.读锁(共享锁)VS 写锁(独占锁)Shared Lock(S锁) eXclusive Lock(X锁)我们目前使用的锁都是独占锁(只有一个线程持有锁)非公平锁实现简单(默认)公平锁实现复杂公平锁:严格按照请求锁的次序获取到锁synchronized 锁是不公平锁lock 中 通过传入fair = true/false 来控制是否是公平的互斥锁的方案:放弃 CPU... 引发线程调度。计算机只有一个核时的解决思路:早让持有锁的线程释放锁。自旋锁的方案:for(int i = 0;i <

2022-05-09 16:05:33 333

原创 [算法] 动态规划 相关题目

1.定义动态规划是分治思想的延伸,也就是大事化小,小事化了的意思动态规划问题一般从这四个方面考虑:1.状态定义:根据问题把子问题抽象出来2.状态间的转移方程定义:状态与状态之间的递推关系3.状态的初始化4.返回结果适用场景:最大值、最小值,可行不可行,是不是,方案个数2.第一题Fibonacci 斐波那契数列状态F(i):第 i 项的值状态转移方程:F(i) = F(i - 1) + F(i - 2)初始状态:F(0) = 0,F(1) = 1返回结果:F(n

2022-05-09 10:27:50 94

转载 java中 HashMap和Hashtable,list、set和map 的区别

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。Hashtable继承自Dictionary

2022-05-09 10:26:22 518

原创 [Java Web]定时器(Timer) 线程池

使用 Timer// 使用定时器public class UseTimer { public static void main(String[] args) { // 一个定时器 + n 个定时器要去执行的任务 Timer timer = new Timer(); // 闹钟 // 继承 TimerTask(抽象类) // 执行的是 task.run() 方法 TimerTask task = new Ti

2022-05-09 10:18:36 872

原创 [Java Web]线程安全——volatile机制 阻塞队列

volatile:修饰变量,被 volatile 修饰的变量,变量容易变化。不会在工作内存中缓存这些变量从主内存读取,立即写回主内存1.volatile 的三个作用:1.保护内存可见性volatile 可以保护这些变量的内存可见性问题import java.util.concurrent.TimeUnit;public class Main { static boolean quit = false; static class MyThread ex

2022-05-05 09:26:57 328

原创 [Java Web]线程安全(Thread Safe)

1.线程安全线程不安全:单看代码“没有问题”的情况下,但结果是错误的(无法 100% 得到预期结果)线程安全:代码的运行结果应该是 100% 符合预期2.线程不安全现象出现的原因1.站在开发者的角度1)多个线程之间操作同一块数据了(共享数据)——不仅仅是内存数据2)至少有一个线程在修改这块儿共享数据多个线程中至少有一个对共享数据做修改(写)操作即使在多线程的代码中,哪些情况下不需要考虑线程安全问题?1.几个线程之间互相没有任何数据共享的情况下,天生是线程安全的2.几

2022-04-28 21:20:48 784

原创 [Java Web]线程之间的数据共享——线程通信

1.线程通信大部分场景下,几个线程之间是需要协调配合工作,一起完成一个总目标的。协调配合工作就需要线程之间进行数据交换。由于我们的线程都属于同一个进程,所以,共同享有 OS 分配过来的同样的资源(其中优先关注 内存资源)2.JVM 下的内存区域划分PC 保护区(PC) 栈:虚拟机栈、本地方法栈 堆 方法区 运行时常量池这些资源是属于进程的,理论上来讲,却是这个进程下的所有线程的。这些内存,在线程中还会分配一次。堆、方法区、运行时常量池是整个进程(JVM)只有一份。对

2022-04-25 15:03:14 353

原创 [Java Web]想学会线程?看这里

内存管理:空间上划分【内核使用的内存】【分配给普通进程使用的内存】【空闲空间】【进程A】【进程B】 空间划分不保证是连续的2.线性地址(虚拟地址) VS 物理地址物理地址:真实的内存中的地址线性地址:物理地址被操作系统进行转换后的一个地址进程间通信理论上进程间是独立的,但实际中,往往是多个进程之间互相配合,来完成复杂的工作。比如:通过 workbench 进程 和 mysql 服务器进程进行通信,来实现数据的增删查改。因此就有了进程之间交换数据的必要性了当下问题:OS 进行资源分配

2022-04-25 14:27:25 213

原创 区分 程序(Program) VS 进程(Process)

1.什么是程序?一套做数据处理的步骤。程序 = 指令+ 数据。是一套静态的步骤。(比如说菜谱)程序是静态的,一般表现为一个或一组文件2.什么是进程?1.站在用户角度的视角(⭐)英文本意就是:过程进程是程序的一次执行过程——按照菜谱的一次做菜的过程,进程是动态的。一个程序,可以进行多次执行(表现为多个进程);甚至可以“同时”执行(多个进程同时存在)进程是程序在“运行阶段”的视角主题2.站在 OS(操作系统)实现的角度看什么是进程(⭐)进程...

2022-04-19 10:56:42 1342

原创 [力扣]剑指 Offer 11. 旋转数组的最小数字——Java

题目:剑指 Offer 11. 旋转数组的最小数字numbers相当于是数组【1,2,3,4,5】旋转来的,我们要在【3,4,5,1,2】中找到 1 这个数(最小的)并返回首先我们可能就会想到,这不是很简单吗,我直接 Arrays.sort(numbers) 对数组进行排序,排完之后,我直接取numbers[0]就好了呀。嗯~好得很👍!!! 你击败了7.03% 的用户,执行时间长,内存消耗大,美得很!这样做,性能一点都不高,那么我们怎么做才能提高性能呢使用二分查找这里我们需要

2022-04-16 10:20:05 75

原创 计算机是如何工作的?(硬件角度)

目录1.图灵机 -> 冯诺依曼体系广义数据在内存中的存储问题1.1非数类型的数据在内存中的表示方法1.2 数类型的数据在内存中的表示方法2.CPU的基本工作原理1.门电路:2.算术逻辑单元(ALU):3.利用与或非门构建 8 位加法器:3.CPU的基本工作流程1.ALU 和CU之间的关系2.程序执行的过程:4.编程语言1.顺序执行:2.分支语句:5.CPU的中断模式从硬件角度了解计算机的基本工作原理——CPU的基本工作原理指令:不..

2022-04-14 21:41:14 1718 1

原创 [力扣] 剑指 Offer 07. 重建二叉树-----Java

题目:剑指 Offer 07. 重建二叉树例子:preorder = [3,9,20,15,7]inorder = [9,3,15,20,7]分析:1.我们知道前序遍历,那么前序遍历的第一个数一定是根结点,也就是 3 一定是根结点2.我们可以找到中序遍历中,根所在的位置,那么中序遍历中,根前面的数就是左子树结点个数,根后面的就是右子树结点个数,也就是左子树:9;右子树:20、15、73.那么左子树的前序 【9】;中序【9】右子树的前序:【2...

2022-04-13 19:45:56 562

原创 [SQL] MySQL的增删查改(进阶版)

目录1.查询1.1聚合查询1.2 having 关键字1.3 联表查询1.3.1 内联和外联1.3.2 自联合1.3.3 子查询(subquery)/嵌套查询1.查询聚合:A班 小明 30 A班 小李 20 A班 小黄 30 B班 小王 40 B班 小红 20 A班 小苏 10 问:A班、B班各自有多少人问:A班、B班分别的成..

2022-04-11 20:24:23 450

原创 [SQL] 索引是什么 (学习总结)

1.索引主键和唯一键都是索引,我们一般只探讨普通索引(index)2.索引的作用用来提高查询速度如果有了两张表,表结构一样,数据规模一样,数据都一样,存的内容全部都相同,但使用了索引的表会比没使用的表查询速度快很多。假设我们有一张表 users_with_index,里面有name_a,针对 users_with_index 的 name_a 添加了索引,实际上就是为 name_a 添加了一个目录(index)为了提升查询速度,建立了一课搜索树(可以暂时当作二叉树理解),搜索树的 k

2022-04-11 11:09:18 874

原创 [SQL] 带你搞清SQL中的事务(学习总结)

事务(Transaction)1.这个单词的指向含义的广泛的,并不一定就特指我们数据库中的事务处理2.狭义:在业务方(开发者)看来,就是一个不可再分的业务动作,这个动作最终表达为一条或者多条SQL语句。3.事务的四个特性:ACIDAtomic(原子性):业务动作对应的 SQL 应该是看作一个整体,不可再分的。针对数据的修改只能 All or None。Consistency(一致性):业务方来定义的,针对数据整体做的不可变的承诺。lsolation(隔离性):当有多个.

2022-04-09 19:27:29 2260

原创 [Java DS] Map 和 Set

java.util.Map(key-value)搜索树在Java中表现为红黑树(一种平衡二叉树)纯 key :TreeSet 实现Set 接口key-value:TreeMap 实现Map 接口4.冲突1.冲突多了是不是好事情? 不好。以衣服放在衣柜里的例子来说,冲突越多意味着这个衣柜中的衣服越多,衣服越多,找起来越慢。实际上,根据经验和计算,总是能把冲突数维持在一个常数上(一般不超过8)2.冲突不好,能否完全避免?

2022-03-28 15:51:27 1278

原创 [算法] 牛客题 精选算法入门——数组

牛客算法题:NC29二维数组中的查找、NC71旋转数组的最小数字、NC71旋转数组的最小数字、NC77调整数组顺序使奇数位于偶数前面(一)查找的过程,本质是排除的过程

2022-03-21 17:10:14 141

原创 [Java DS] 搜索树(BST)的查找、插入、删除 (学习总结)

1.BST:满足如下规则的二叉树:树中的任意结点,结点的值(就是我们的key),满足一定 大于 它的左子树的所有值;小于 它的右子树的所有值。这些存在于二叉树结点中的这些值,就是我们搜索场景下的key注意:BST 的 key 不允许重复2.contains 查找k 是否存在于该集合(BST)中,首先从根开始查找。k == root.key:找到了,存在。k < root.key :一定在根的左子树中去查找。反之同理。遇到null 说明要找的key 不在集合中。3.删除

2022-03-18 17:10:13 1200

原创 [Java DS] 那就浅说一下排序吧(学习总结)

排序(sorting)冒泡排序,直接插入排序,希尔排序,快速排序常意义上的排序,都是指的原地排序(in place sort)。数组的排序。经过排序算法处理之后,相同元素的相对位置不会变化——具备稳定性。反之,如果保证不了,就是不具备稳定性。{1, 3a, 9, 4, 5, 3b, 8} => {1, 3, 3, 4, 5, 8, 9}如果排序算法能保证3a, 3b的顺序就是具有稳定性。1.3算法时间复杂度、空间复杂度两者都有最好情况、最坏情况、平均情况1.4区间表示法。4种partition。

2022-03-15 20:12:15 701

原创 [Java DS] 二叉树与堆 (学习总结)

1.堆:1.1概念堆:一种有特殊用途的数据据结构——用来在一组变化频繁(发生增删查改的频率较高)的数据集中找到最值(最大值或者最小值)。堆在物理层面上表现为一组连续的数组区间;堆在逻辑上表现为一棵完全二叉树1.2物理层面上的数组 是如何 和逻辑上的完全二叉树关联起来的long[] array = {1, 2, 3, 4, 5, 6, 7, 8 ,9 } size = 6 把数组中的前六个看成完全二叉数。按照层序方式排列出数组中的元素完全二叉树中的下标遵循以下规...

2022-03-07 17:33:57 514

原创 [Java 数据结构] 二叉树知识 及 二叉树相关题目

二叉树(binary tree)是一种特殊的树2.2二叉树的基本形态2.3两种特殊的二叉树2.4二叉树的性质2.5二叉树结点的代码表示2.6二叉树的基本操作2.6.1二叉树的遍历2.6.2代码实现2.7.1统计二叉树一共有多少个结点2.7.2求二叉树的叶子结点的个数2.7.3求给定二叉树第 k 层的结点个数2.7.4 求二叉树的高2.7.5查找 val 所在结点2.7.6前序遍历返回是List2.7.7 力扣100.相同的树 力扣101.对称二叉树 力扣572.另一棵树的子树 力扣110.平衡二叉树

2022-03-01 15:24:51 562

原创 [Java 数据结构] 栈(stack)和 队列(queue)

目录栈(Stack)队列(Queue)一、队列中的一些操作:二、队列的容量问题三、JDK 中提供的栈和队列四、栈和队列的使用场景五、自己实现栈和队列​​​​​​​栈(Stack)一种严格按照先进后出(First In Last Out)FILO、后进先出(Last In First Out ) LIFO模式的一种容器结构Stack、FILO、LIFO都指的是一个东西。bottom:最底层的元素 top:最上面的元素...

2022-02-17 16:59:36 1046

原创 [Java] 自己写图书馆管理系统(详细版)

一、简介实现一个简单的能对图书馆的书籍进行简单管理的一个系统。所用到的知识有:类,抽象类,封装,继承,多态,接口。(基础知识的学习可看我博客的其他文章~)二、需求1.用户登录2.管理员角色(查阅书籍 、增加书籍 、删除书籍 、打印书籍列表)3.普通用户角色(查询书籍 、借阅书籍 、归还书籍)都在命令行上完成操作三、具体设计一、大纲1.用户登录2.进入一个循环中2.1打印用户角色对应的菜单,并且让用户选择2.2根据用户的选择,执行对应...

2022-02-08 23:37:32 5268 2

原创 [Java 数据结构] Iterable、Collection、List 的常见方法签名以及含义

一、

2022-01-23 18:56:53 508

空空如也

空空如也

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

TA关注的人

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