![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
● 底层修炼
程序员的时光
用心写好每一篇文章。
展开
-
全面解析JVM,超详细!
写在前面:小伙伴儿们,大家好!今天来学习Java虚拟机相关内容,作为面试必问的知识点,来深入了解一波!思维导图:image-202011231026023041,JVM是什么?1.1,概述JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范。引入Java虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。任何平台只要原创 2020-11-25 10:44:52 · 681 阅读 · 0 评论 -
全面解析ArrayList,超详细!
写在前面:小伙伴儿们,大家好!今天来学习ArrayList相关内容,作为面试必问的知识点,来深入了解一波!思维导图:1,ArrayList底层数据结构ArrayList就是动态数组,是List接口的可调整大小的数组实现;除了实现List接口之外,该类还提供了一些方法来操纵内部使用的存储列表的数组大小。它的主要底层实现是数组Object[] elementData。数组的特点大家都知道,遍历查询速度快——数组在内存是连续空间,可以根据地址+索引的方式快速获取对应位置上的元素。但是它的增删速度慢原创 2020-11-09 10:16:11 · 689 阅读 · 0 评论 -
详细理解HashMap数据结构,太齐全了!
写在前面:小伙伴儿们,大家好!今天来学习HashMap相关内容,作为面试必问的知识点,来深入了解一波!思维导图:1,HashMap集合简介HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。JDK1.8之前的HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了节解决哈希碰原创 2020-10-23 15:49:15 · 15351 阅读 · 2 评论 -
那些物理层的东西~终于明白了!
写在前面:小伙伴儿们,大家好!上一篇我们讲了计算机中的网络体系结构——计算机网络体系结构?TCP/IP协议?这些你都知道多少?这期让我们继续学习计算机网络中物理层的那些知识!思维导图:一、物理层的基本概念;作用: 物理层解决如何在链接各种计算机的传输媒体(光纤,双绞线等)上传输数据比特流(0和1),而不是指具体的传输媒体。任务:确定传输媒体的接口的一些特性;特...原创 2020-04-22 13:17:50 · 804 阅读 · 0 评论 -
计算机网络体系结构?TCP/IP协议?这些你都知道多少?
写在前面:小伙伴儿们,大家好!上一期我们讲了计算机网络的类别——计算机网络类别?性能指标?你都会吗?;这期让我们继续来看看计算机网络的体系结构和分层协议吧!跟随时光一起把计算机网络学好;思维导图:网络体系结构:先给大家认识几个概念:OSI/RM:互联网法律上的国际标准;TCP/IP:因特网事实上的国际标准;五层体系结构:五层体...原创 2020-04-02 12:20:07 · 3683 阅读 · 2 评论 -
计算机网络类别?性能指标?你都会吗?
写在前面:小伙伴儿们,大家好!上一期我们讲了计算机网络的入门,大家也都了解了一点;这期让我们继续来看看计算机网络的分类和性能指标吧!跟随时光一起把计算机网络学好;思维导图:计算机网络的分类:按照作用范围分类:我们可以将计算机网络分为广域网,城域网,局域网和个人局域网;广域网:跨城市的,距离范围较远,比如说北京和上海构成的网络就是广域网;...原创 2020-03-23 18:05:52 · 3638 阅读 · 11 评论 -
看了这篇文章,那些复杂的计算机网络概念终于懂了!
写在前面:小伙伴儿们,大家好!这期让我们一起来了解一下计算机网络相关的知识吧!计算机网络在面试中尤为重要,甚至也能决定你能否进入大厂的关键因素!这次,和时光一起走进计算机网络的大门吧~思维导图:什么是网络,互联网,因特网?网络(network):是由若干结点(node)和连接这些结点的链路(link)组成;互联网(internet):若干个网络用路由器连接起...原创 2020-03-19 14:13:33 · 760 阅读 · 0 评论 -
最简方式实现二叉树的非递归遍历
写在前面:上一篇文章中我们讲到了二叉树的递归遍历——三分钟快速实现二叉树的递归遍历;这不,现在就有小伙伴提出二叉树的非递归遍历的方式; 于是乎,时光也为大家聊聊如何用最简方式实现二叉树的非递归遍历;思维导图:思路分析:要实现二叉树的非递归遍历,就必须要借助栈的结构特点来实现;我们根据遍历的顺序,然后对入栈的结点进行分析遍历即可;代码实现:...原创 2020-03-15 21:25:14 · 653 阅读 · 0 评论 -
三分钟带你快速实现二叉树的递归遍历
写在前面:上一篇文章中我们聊到了队列——漫画趣解——队列相信很多小伙伴都知道了如何实现队列;那么这次,时光同样采用漫画形式,给大家聊一聊什么是二叉树,如何实现二叉树的递归遍历;思维导图:什么是树?树是一种非线性结构,有一个直接前驱,但可能有多个直接后继(1:n);树的定义具有递归性,树中还有树;树可以为空,即结节点个数为0;如图:...原创 2020-03-08 11:45:18 · 1661 阅读 · 0 评论 -
聊一聊队列
写在前面:上一篇文章中我们聊到了栈——漫画趣解什么是栈?相信很多小伙伴都理解了栈;那么这次,同样采用漫画形式,给大家聊一聊什么是队列;思维导图:什么是队列?...原创 2020-03-04 15:50:09 · 599 阅读 · 0 评论 -
什么是栈?
写在前面:栈是一种受限的线性表,在数据结构中也很常见。下面,时光采用漫画的形式来说一说这个栈。思维导图什么是栈?栈是一种受限线性表,也就是说,栈元素具有线性关系,即前驱后继关系;只不过它是 一种特殊的线性表而已;栈的特性?如图:线性表是在表尾进行插入和删除操作,而在栈中表尾是指栈顶,而不是栈底;栈的数据操作始终只在栈顶进行,即先进后出,后进先出;顺序栈和链栈...原创 2020-03-02 14:38:14 · 6352 阅读 · 0 评论 -
简单聊一下数组和链表
写在前面数组和链表是数据结构中最基础的两种结构,其他的都是由这两者转化而来;因此,掌握这两种结构至关重要!下面,时光就带大家来学习一下数组和链表;思维导图:1,什么是线性表?线性表是具有相同类型的n(>=0)个数据元素的有限序列(a0,a1,a2,…,an),ai是表项,n是表长度;那么为什么要提到线性表呢?因为数组和链表都是线性表的结构,只不过它们的存储方式不一样;根...原创 2020-02-29 11:39:36 · 902 阅读 · 0 评论 -
网络编程(4)——接收udp数据
程序代码:import socketdef main(): # 创建udp套接字 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 绑定本地信息 local_address = ("", 7788) udp_socket.bind(local_address) ...原创 2019-09-06 14:06:50 · 318 阅读 · 0 评论 -
网络编程(3)——Socket
目录1. Socket简介;2. 创建Socket;1. Socket简介;socket(套接字)是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于Socket来完成通信的;例如:浏览网页,聊天等等;2. 创建Socket;模板:在Python中,使用socket...原创 2019-09-06 10:01:55 · 290 阅读 · 0 评论 -
网络编程(2)——端口
目录1. 端口;2. 端口号;3. 端口分配;3.1 知名端口;3.2 动态端口;4. 查看端口;1. 端口;我们在同一个网络下,用自己的电脑给别人电脑发一个内容,输入了模目标IP地址之后,我们还要加上端口号,才能正确地发给目标电脑的目标程序;2. 端口号;端口是通过端口号来标记的,端口号只有整数,范围是从...原创 2019-09-03 16:24:38 · 295 阅读 · 0 评论 -
网络编程(1)——IP地址详解
目录1. IP地址;2. 查看IP地址的方法;3. IPv4和IPv6;4. IP地址的格式分类;1. IP地址;IP,全称互联网协议地址,是指IP地址,意思是分配给用户上网使用的网际协议(英语:InternetProtocol,IP)的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类,但是也有其他不常用的小分类。通俗一点就是:用来唯一标识网络...原创 2019-09-03 15:34:25 · 1043 阅读 · 0 评论 -
线性表(1)——顺序表(动态数组)
目录1. 先建立动态数组实体类DynamicArray类;2. 再建立方法类DynamicArrayDao类;3. 测试类DynamicArrayMain类;1. 先建立动态数组实体类DynamicArray类;DynamicArray:包括顺序表的数据域和顺序表的长度;还有一个动态数组的最大容量,我们设置为常量;DynamicArray:pac...原创 2019-08-26 19:16:16 · 465 阅读 · 0 评论 -
栈(3)——栈的链式存储
目录1. 基本概念;2. 设计与实现;2.1 先建立实体类LinkStackNode类和LinkStack类; 2.2 建立方法类LinkStackDao类;2.2 测试类LinkStackMain类;1. 基本概念;栈的链式存储简称链栈;2. 设计与实现;链栈是一种特殊的线性表,链栈可以通过链式线性表(单链表)来实现;...原创 2019-08-25 10:01:21 · 352 阅读 · 0 评论 -
栈(2)——栈的顺序存储
目录1. 基本概念;2. 设计与实现;2.1 建立动态数组实体类SeqStack类;2.2 再建立方法类SeqStackDao类;2.3 测试类SeqStackMain类;1. 基本概念;栈的顺序存储结构简称顺序栈,它是运算受限制的顺序表;顺序栈的存储结构: 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素;...原创 2019-08-24 10:35:06 · 491 阅读 · 0 评论 -
单链表
一、单链表的框架搭建1.先添加LinkList.h头文件,02单向链表.c源文件(有主函数)和LinkList.c源文件(没有主函数)2.在LinkList.h添加以下内容:定义单链表的结构体;定义结点的结构体;对结构体进行操作的一系列函数;#ifndef LINKLIST_H#define LINKLIST_H#include<stdlib.h>...原创 2018-12-27 10:35:16 · 268 阅读 · 0 评论 -
栈的顺序存储
一、顺序栈的框架搭建1.先添加SeqStack.h头文件,03栈的顺序存储.c源文件(有主函数)和SeqStack.c源文件(没有主函数);2.在SeqStack.h添加以下内容:定义栈的结构体;对结构体进行操作的一系列函数;#ifndef SEQSTACK_H#define SEQSTACK_H#include<stdlib.h>#include&l...原创 2018-12-27 10:35:03 · 443 阅读 · 0 评论 -
栈的链式存储
一、链式栈的框架搭建1.先添加LinkStack.h头文件,04栈的链式存储.c源文件(有主函数)和LinkStack.c源文件(没有主函数);2.在SeqStack.h添加以下内容:定义栈的结构体;定义栈结点的结构体;对结构体进行操作的一系列函数;#ifndef LINKSTACK_H#define LINKSTACK_H#include <stdlib...原创 2018-12-27 10:34:32 · 1029 阅读 · 0 评论 -
线性表(2)——单链表
这一次我们用Java语言来实现单链表;C语言版本点击链接:C语言单链表目录1. 先建实体类LinkNode类和实体类LinkList类;2. 再建方法类LinkListDao类;3. 测试类LinkListMain类;1. 先建实体类LinkNode类和实体类LinkList类;LinkNode:包括链表结点的数据域和指针域;数据域是Object类型的...原创 2019-07-28 22:21:39 · 341 阅读 · 0 评论 -
线性表(8)——约瑟夫问题
目录1. CircleLinkList.h头文件;2. CircleLinkList.c源文件;3. main.c主函数;首先来看一下,什么是约瑟夫问题?1. CircleLinkList.h头文件;#ifndef CIRCLELINKLIST#define CIRCLELINKLIST#include<stdio.h>#include...原创 2019-07-29 14:27:57 · 366 阅读 · 0 评论 -
数据结构概述
目录1. 数据结构概念;2. 算法;2.1 概念;2.2 算法与数据结构的区别;2.3 算法特性;2.4 算法效率的度量;1. 数据结构概念;数据结构主要研究非数值计算问题的程序中的操作对象以及它们之间的关系,不是研究复杂的算法;数据结构是计算机存储、组织数据的方式;2. 算法;2.1 概念;算法是特定问题求解...原创 2019-07-24 15:12:31 · 245 阅读 · 0 评论 -
线性表(1)——概念
目录1. 基本概念;2. 数学定义;3. 性质;4. 线性表的基本操作;1. 基本概念;线性表是0个或者多个数据元素的有限序列;特性:数据元素之间是有序的;数据元素个数是有限的;数据元素的类型必须相同;2. 数学定义;线性表是具有相同类型的n(>=0)个数据元素的有限序列(a0,a1,a2,...,an),ai是表项,n是表长度;3. ...原创 2019-07-24 15:35:22 · 358 阅读 · 0 评论 -
线性表(2)——动态数组框架搭建
目录1.DynamicArray.h头文件(函数声明);2.DynamicArray.c源文件(函数实现);3. 动态数组.c 源文件(包含主函数main);先看看项目文件:总共3个文件,DynamicArray.h 是头文件,包含各种函数的定义;DynamicArray.c 是源文件,包含各种函数的具体功能实现,以及调用;动态数组.c 是主函数文件,包...原创 2019-07-24 18:18:20 · 326 阅读 · 0 评论 -
关于return返回的四种结果的区别
目录1. return;2. return 0;3. return -1;4. return 1;1. return;如果什么都不接的话,其实就是void类型函数的返回,返回后不再执行return后面的语句;也就是中断返回值为void类型的函数执行,作用相当于break语句;中断循环的执行;如果函数执行成功返回0,不成功返回非0,一般情况下非0值常用-...原创 2019-07-24 20:32:44 · 9246 阅读 · 2 评论 -
线性表(3)——动态数组功能实现
目录1.DynamicArray.c文件的各种功能函数的实现;2. 动态数组.c测试文件;首先分析一下函数功能的代码编写思路:1. 每个功能函数都有一个Dynamic_Array* arr的参数,因此都要对arr是否为空进行判断;2. 当插入一个新元素时,需要做到以下几步: (1)当插入一个新的元素的时候,这个时候发现空间不足,要申请一块更大的内存空间...原创 2019-07-25 10:12:21 · 354 阅读 · 0 评论 -
线性表(4)——顺序存储
目录1. 基本概念;2. 顺序存储的设计与实现;(1)插入元素算法;(2)删除元素算法;3. 优缺点;这一节来说一下线性表的顺序存储结构,其实上一节的动态数组就是线性表的顺序存储结构的实现;1. 基本概念;线性表的顺序存储结构,指的是用一段地址连续的存储单元依次存储线性表的数据元素;2. 顺序存储的设计与实现;算法要点:(1)...原创 2019-07-25 10:54:39 · 331 阅读 · 0 评论 -
线性表(5)——单链表框架搭建
目录1. LinkList.h头文件(函数声明);2.LinkList.c源文件(函数实现);3.源文件main.c(包括主函数);先看看项目文件:总共3个文件,LinkList.h 是头文件,包含各种函数的定义;LinkList.c 是源文件,包含各种函数的具体功能实现,以及调用;main.c 是主函数文件,包含主函数;1. LinkList...原创 2019-07-26 10:33:15 · 512 阅读 · 0 评论 -
线性表(6)——单链表功能实现
目录1. LinkList.c各种功能函数的实现;1.1 初始化链表;1.2 元素的指定位置插入;1.3 删除指定位置的元素;1.4 查找指定值的元素;1.5 返回第一个结点;1.6 打印链表结点;1.7 释放链表内存;2. main.c测主函数测试;上一节我们说了单链表的函数框架搭建;现在来说一下函数功能的代码实现;每个功能函数都有一个Lin...原创 2019-07-26 22:44:19 · 451 阅读 · 0 评论 -
线性表(7)——链式存储
1. 基本概念;线性表的链式存储结构,为了表示每个数据元素与其直接后继元素之间的逻辑关系,每个元素除了存储本身的信息外,还需要存储指示其后继的信息。单链表:线性表的链式存储结构中,每个结点中只包含一个指针域,这样的链表叫单链表;通过每个节点的指针域将线性表的数据元素按其逻辑次序链接在一起;概念解释:表头结点:链表中的第一个结点,包含指向第一个数据元素的指...原创 2019-07-27 15:14:24 · 400 阅读 · 0 评论 -
栈(1)——栈的基本概念
目录1. 基本概念;2. 特性;3. 栈的基本操作;1. 基本概念;首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系;栈是一种特殊的线性表,也叫受限线性表;定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指栈顶,而不是栈底;2. 特性;限制了这个线性表的插入和删除的位置,它始终只在栈顶进行;栈底是固定的,最先...原创 2019-08-24 10:11:21 · 916 阅读 · 0 评论 -
顺序表(动态数组)
一、动态数组的框架搭建1.先添加DynamicAyyar.h头文件,01动态数组.c源文件(有主函数)和DynamicAray.c源文件(没有主函数);2.在DynamicAyyar.h添加以下内容:动态数组的结构体;对结构体进行操作的一系列函数;#ifndef DYNAMIC_ARRAY_H#define DYNAMIC_ARRAY_H#include<st...原创 2018-12-27 10:35:30 · 751 阅读 · 3 评论