- 博客(68)
- 收藏
- 关注
原创 网络经典面试题
问题:请说明在浏览器中输入 url 后到展示出页面这个过程发生的事情。1.对 URL 进行效验,如果校验通过也就是符合 HTTP 协议,先进行 DNS 解析,将 IP 地址解析出来。这一步是为了防止随便乱输的 URL 地址被当成有效的 URL 进行接下来的操作,但现如今有些浏览器被输入无效的 URL 时会自动跳转到浏览器所默认的搜索页面进行内容搜索。2.TCP 连接,也就是三次握手。三次握手图:3.握手成功后浏览器向服务器放送请求,请求数据包。4.服务器端程序接收到消息,对消息进行解析,通过
2022-05-31 09:26:28
201
1
原创 浅谈网络原理 —— 网络中的基础概念
文章目录前言1. 网络的划分1.1 局域网1.2 广域网2. IP 地址2.1 概念2.2 格式2.3 组成3. 端口号3.1 概念3.2 格式4. 协议4.1 概念4.2 作用5. 协议分层6. OSI七层模型7. TCP/IP 五层(或四层)模型8. 数据的封装和分用过程8.1 数据的封装8.2 数据的分用总结前言网络的发展是从独立模式开始的,计算机之间由相互独立到协同工作,就有了网络互连。网络互连根据规模不同可以划分为局域网和广域网。网络互连的目的是进行网络通信,也即是网络数据传输。如何进行网络
2022-05-31 08:15:16
503
6
原创 单链表练习题 —— 虚拟头节点&递归解法
文章目录虚拟头节点1. 定义虚拟头节点2. 增加链表元素3. 删除链表元素4. 练习题递归解法虚拟头节点1. 定义虚拟头节点 private Node dummyHead = new Node(-1);通过上篇文章可知,因为单链表只能从前向后遍历的特点,单链表的操作都会使用前驱节点定位指定节点,但是头节点没有前驱,所以每次都会先判断头节点如何进行操作。因此就引入了虚拟头节点,虚拟头节点是不存在的,但是有了虚拟头节点后每个节点都有了前驱这样就减少了考虑头节点的步骤。2. 增加链表元素 /*
2022-05-25 16:43:15
257
原创 图解链表 —— JAVA 中的双向链表
1. 双向链表前面提到了单向链表,单链表的特点是只能从前向后遍历,但是如果我们已知一个节点在链表靠后的位置,这时如果使用单链表效率就会很低,因此引入了双向链表就可以快速的找到靠后的节点。双向链表与单向链表的区别就是它不仅有后继节点,还有前驱节点。这样就既存储了下一个节点的地址,也存储了前一个节点的地址。2. 双向链表的定义节点类:class DoubleNode { // 指向前驱节点 DoubleNode prev; // 具体存储的数据
2022-05-22 23:43:17
5336
10
原创 图解链表 —— JAVA中的单链表基本操作
文章目录1. 什么是链表2. 链表的种类3. 创建单链表3.1 创建 Node 类(车厢类)3.2 创建 MySingleList (火车类)4. 单链表的基本操作4.1 增加链表元素4.1.1 在链表头部添加元素4.1.2 在链表任意位置添加元素4.1.3 在链表尾部添加元素4.2 删除链表元素4.2.1 删除第一个节点元素4.2.2 删除任意位置 index 元素4.2.3 删除链表中指定元素的第一个节点4.2.4 删除链表的所有指定元素4.3 查找链表元素4.3.1 判断链表中是否包含元素 data4
2022-05-17 22:13:11
2423
10
原创 数组练习题
文章目录1. 将数组转换为字符串2. 复制数组,将一个数组复制到另一个新的数组2.1 整体复制2.2 部分复制3. 找数组中的最大值4. 求整型数组的和4.1 暴力解法==4.2 递归解法==5. 求整型数组的平均值6. 如何判断数组是一个有序的集合7. 查找数组中的目标元素7.1 暴力解法==7.2 二分查找==(分治思想)8. 数组排序9. 数组的逆序排列10. 数组数字排列1. 将数组转换为字符串1.1 第一种方法是 JAVA 中 JDK 里自带的方法:// 将数组转换为字符串String a
2022-05-16 15:52:33
192
原创 什么是数组?认识 Java 中的数组
文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言数组是 JavaSE 中遇到的第一个引用类型,在数据结构中属于顺序表。学好数组就是学好数据结构的一个重要基础。1. 数组是什么?如果我们需要两个数据就可以直接创建两个变量,如果需要多个数据,直接创建会很麻烦,这时候就会使用“批量生产”,而数组就是可以“批量”创建变量,需要注意的是在 Java 中数组是创建相同类型的变量。2. 创建数组2.1 基本语法(数组的声明和初始化
2022-05-15 12:57:09
1445
1
原创 简单认识顺序表的基本操作
顺序表是用一段==物理地址连续的==存储单元依次存储数据元素的线性结构,一般采用动态数组存储。顺序表一般分为:静态顺序表和动态顺序表。静态顺序表是在已知需要存放数据元素大小的情况下使用,动态顺序表更为多见,根据需要动态的分配空间。顺序表的基本操作增删查改就是基于动态数组实现的。
2022-05-13 15:15:39
550
原创 HTTP 协议和 Fiddler 的用法
文章目录1. HTTP 协议1.1 什么是 HTTP 协议1.2 HTTP 协议格式2. Fiddler 的用法2.1 Request 请求2.1.1 请求行:Method 、URL 、Version2.1.2 请求报头2.1.3 空行2.1.4 请求正文2.2 Response 响应2.2.1 状态行:Version、状态码、状态码描述2.2.2 响应报头2.2.3 空行2.2.4 响应正文1. HTTP 协议1.1 什么是 HTTP 协议HTTP 协议(HTTP 全称为 Hyper Text Tr
2022-05-12 00:35:37
715
7
原创 Java中的运算符总结 —— 逻辑运算符、位运算符、移位运算符
Java中运算符,逻辑运算符,位运算符,移位运算符,原码、反码、补码之间的关系逻辑运算符主要有三个: && 、|| 、 !逻辑运算符的返回值和操作数都是boolean类型。
2022-05-02 15:40:58
4743
原创 CSS简单教程 —— 基本语法,类型,选择器以及使用
CSS 基本语法:选择器 + {一条或者多条声明}常见选择器:标签选择器特点:能快速为同一类型的标签都选择出来,不能差异化选择。举例:p { color:red;}类选择器特点:差异化表示不同的标签,可以让多个标签的都使用同一个标签。注意:类名用.开头下方的标签使用class属性来调用id 选择器通配符选择器...
2022-04-27 21:34:45
1426
原创 快慢指针 ——链表 | Leetcode 练习
链表的中间结点给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。返回链表的中间结点可以使用双指针法,也就是快慢指针。创建两个指针,同时从 head 结点出发,满指针走得慢,一次走一步,快指针走得快,等到快指针走到链表的末尾时,满指针刚好走到链表的一半,返回满指针指向的结点就是链表的中间结点。class Solution { public ListNode middleNode(ListNode head) { //.
2022-04-24 16:54:10
1345
原创 String类详解(三)
文章目录StringBuffer 和 StringBuilder1. 修改字符串的步骤2. String类 和 StringBuilder 类的相互转换2.1 String 类 转为 StringBuilder 类:2.2 StringBuilder 类 转为 String 类:3. StringBuilder 独有的方法StringBuffer 和 StringBuilderString类 的特点:不可变性任何字符串常量都是String对象,而String的常量一旦声明就不可改变,如果改变对象内容,
2022-04-24 14:40:24
272
原创 String类详解(二)
字符串常见操作1. 字符串的比较通常在比较两个int 型变量时,我们使用 = = 完成,但是如果在String 类上使用 == ,就会产生错误。举例:public class StringDemo3 { public static void main(String[] args) { String str2 = "Hello"; String str3 = "Hello"; System.out.println(str3 == str2);
2022-04-24 12:16:52
1097
原创 String类详解(一)
1. 常见的构造String的方式直接构造String str = “Hello World”;将字符串封装成字符串对象String str = new String(“Hello World”);将字符数组的数据封装成字符串对象char[ ] array = {‘a’, ‘b’, ‘c’};String str = new String(array);2. String类的不可变性String 类是引用类型,是不可变的。举例:String str1 = “Hello”;Str
2022-04-23 23:53:23
2740
原创 【多线程——死锁的产生、解决方法】
1.死锁定义:死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。2.死锁代码:import java.util.concurrent.TimeUnit;/** * 手写死锁 */public class ThreadDemo16 { public static void main(String[] args) { Object lockA = new Object(); O
2022-04-19 10:00:56
489
原创 【线程通讯——wait和sleep的区别】
线程通讯——wait和sleep的区别线程通讯wait 和sleep 的区别线程通讯协调线程通讯,主要涉及三个方法:wait()/wait(long timeout):让当前线程进入等待状态notify():唤醒当前对象上一个休眠的线程notifyAll():唤醒当前对象上的所有线程线程通讯注意事项:wait/notify/notifyAll 必须要配合synchronized 一起执行。wait/notify/notifyAll 进行synchronized 加锁,一定要使用同一个对象进
2022-04-18 19:08:55
325
原创 【线程安全问题和解决方法】
概念线程不安全指的是程序在多线程的执行结果不符合预测。线程不安全元素1.抢占式执行2.多个线程修改同一个变量//举例 如果是单个线程执行此操作,结果正确,为0/** * 线程不安全问题 */public class ThreadDemo15 { private static int num; static class Counter { //++操作 public void increment(int count) {
2022-04-16 22:26:55
491
原创 【线程的基本用法(创建、常见的构造方法、中断、等待、休眠)】
线程创建继承Thread/** * 继承Thread 创建线程 */public class ThreadDemo1 { public static void main(String[] args) { //创建线程 Thread thread = new MyThread(); //启动线程 thread.start(); }}class MyThread extends Thread { @Ove
2022-04-13 21:29:45
724
原创 【二分查找】leetcode练习
二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。public class Num704 { public int search(int[] nums, int target) { //left指数组下标 int left = 0; int right = nums.length - 1; while.
2022-04-01 17:11:03
192
原创 JDBC编程(JDBC的使用)
定义:JDBC即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是java中的数据库连接规范。使用JDBC的目的:使用了JDBC之后,任何数据库与任何数据库驱动都可以通过JDBC实现对不同数据库进行统一操作(查询、添加、修改、删除)。JDBC使用1.创建项目并添加Mysql驱动https://pan.baidu.com/s/1Zx5WAEuF_U0asVFWVcRvLQ 提取码:25m4(注意:不同数据库要对应相应的驱动包,这
2022-03-28 15:56:08
1116
原创 【安装proteus8.7出现的问题及解决闪退的办法】
安装proteus8.7时需要注意的点:1.点击.exe文件安装2.注意添加许可证,选择第一个如果是第一次安装,这块直接next,然后根据步骤走弹出窗口,在解压缩包中找到Crack文件夹,选择Licence.lxk文件,如图,点击打开点击打开后,许可证出现就可点击install,再点击close注意:可以在安装前在解压缩包中找到Crack文件夹,选择Licence.lxk文件,用记事本打开查看许可证是否过期。方法:可修改你想要的日期如果不是第一次安装而是卸载了重装,需要在全部
2022-03-24 18:50:08
8204
2
原创 【Mysql数据操作3--表数据操作】
表数据操作1.添加数据全列添加单行添加insert into emp values ('小小','女','财务部',2343.00);多行添加insert into emp values ('美美','女','人力资源部',3400), ('小小','女','财务部',2343.00);指定列添加单行添加insert into emp(name,sex,depart) values ('美美','女','人力资源部');多行添加insert into emp(na
2022-03-08 17:05:48
510
原创 【Mysql数据库操作2--表操作】
表的操作1.创建表create table table_name(字段名1 数据类型 comment'字段说明',字段名2 数据类型,字段名3 数据类型,...);创建表时出现错误的常见原因1)没有用英文逗号;2)字段名与系统关键字(describe,create等)一致,前面需要加英文符号``;3)数据类型varchar(n)中的n不可缺少。2.查询数据库中的表show tables;3.查询表1.desc table_name;2.show create table
2022-03-05 20:19:47
372
原创 【Mysql数据库操作1】
数据库操作和Mysql数据类型一、数据库操作1.显示当前数据库show databases;2.创建数据库create database [数据库名];ps:Mysql命名规则:所有的数据库名称和表名称以及字段名,必须要求全部小写,使用多个字母之间可以用"_"分隔。ps:当不确定系统中有没有同名的数据库,为了避免出错可以使用create database if not exists [数据库名];语句。3.使用数据库use [数据库名];4.删除数据库drop database
2022-03-05 19:45:54
390
原创 记录Spyder不能打开的错误及解决方法
##anaconda安装后 spyder无法打开安装了anaconda之后,试用了一下里面自带的Spyder,但是第二天用Spyder的时候就发现打不开了。然后就在网上找了一些方法,都不行。然后就卸载重装,卸载的时候要注意卸载干净。卸载完后也不太行,每次卸载重装后都错误都不太相同。如果安装后,在开始处点击Jupyter Notebook,Spyder或者从anaconda navigator进去点击这些都没有反应,可以打开anaconda prompt输入命令spyder --new-instance,
2021-09-23 23:37:27
6754
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅