![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
平时学习记录
kokouya
♥
展开
-
数据可视化-唐诗分析器项目分析+实现+测试+部署
目录一、唐诗项目概述1、项目简介2、设计思想2.1、数据爬取模块2.2 可视化展示模块3、核心技术二、数据爬取模块1、技术选型1.1 爬虫技术 htmlunit1.3 JDBC 操作数据库 MySQL1.4 项目管理工具 maven2、用法调研2.1 请求解析列表页 HtmlUnitDemo2.2 请求解析详情页 XPathDemo2.3 sha256 算法去重2.4 计算分词2.5 存入数据库3、整体代码3.1单线程版本3.2原创 2020-09-09 16:34:20 · 2918 阅读 · 1 评论 -
JVM、GC、类加载、想了解的都在这里!
定义:指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。一、JVM内存管理线程私有区域:程序计数器、Java虚拟机栈、本地方法栈(与线程生命周期一致)线程共享区域:Java堆、方法区、运行时常量池1、程序计数器程序计数器是一块比较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。如果当前线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是一个本地方法,这个计数器值为空。程序计数器原创 2020-08-31 14:41:26 · 455 阅读 · 0 评论 -
【网络原理】TCP/IP 协议—— 传输层(三)三次握手与四次挥手
连接管理机制 - TCP 的可靠性为基础在正常情况下,TCP要经过三次握手建立连接,四次挥手断开连接。面试题:(1)为什么需要 TCP 连接? 因为这套机制是以不同五元组描述的通道分别管理的。(2)什么是连接(Connection)?抽象层面上:五元组唯一标识的一条通信通道。OS 层面上:一个 Connection 对象,描述五元组信息 + 各种管理信息(SN/ASN + ...原创 2020-02-14 19:30:16 · 363 阅读 · 1 评论 -
【网络原理】TCP/IP 协议—— 传输层(二)TCP协议
TCP (Transmission Control Protocol)传输控制协议(重点)一、特点:有连接 面向流 可靠性:数据保证正确 —— 校验和 作为一个发送方,希望知道接受方是否收到数据 —— 确认应答(SN/ASN/ACK) 保证接收方的数据是按序收到的 —— TCP 利用 SN 在接收方做排序 接收方可以去重数据 —— SN二、TCP 协议段格式1、...原创 2020-02-14 15:49:30 · 264 阅读 · 0 评论 -
【网络原理】TCP/IP 协议—— 传输层(一)端口号与UDP协议
传输层:端到端(endpoint to endpoint)一、再谈 地址(IP) + 端口(port)1、在网络上(先不考虑私网):IP 的作用是唯一标识一台主机,主机拥有唯一的一个 IP 地址,主机也可以拥有多个 IP 地址。 Port 的作用标识主机上的唯一一个进程,一个进程可以拥有多个 port,而一个 port 只能属于一个进程。 IP + port :可以标识网络上的一台...原创 2020-02-14 15:28:10 · 1388 阅读 · 0 评论 -
哈希表
一、概念理想搜索方法:可以不经过任何比较,一次直接从表中得到要搜索的元素。 如果构造一种存储结构,通过某种函数(hashFunc)使元素的存储位置与它的关键码之间能够建立一一映射的关系,那么在查找时通过该函数可以很快找到该元素。当向该结构中:插入元素:根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放搜索元素:对元素的关键码进行同样的计算,把求得的函数值当做元素的存储位置...原创 2019-10-19 15:09:07 · 211 阅读 · 0 评论 -
泛型类
定义语法:class 泛型类名称<类型形参列表> {// 这里可以使用类型参数}举例:class ClassName<T1, T2, ..., Tn> { }class 泛型类名称<类型形参列表> extends 继承类/* 这里可以使用类型参数 */ {// 这里可以使用类型参数}举例:class ClassNam...原创 2019-10-19 11:18:30 · 139 阅读 · 0 评论 -
Map 与 Set 的使用
Map : Key-Value 模型,需要根据指定 Key 找到关联的 Value。import java.util.Map;import java.util.TreeMap;public class MapDemo { public static void main(String[] args) { Map<String, String> ma...原创 2019-10-11 18:50:21 · 116 阅读 · 0 评论 -
二叉搜索树及简单电话本
一.概念二叉搜索树又称二叉排序树(纯 key 模型,且 key值不能重复,二叉搜索树的中序遍历是有序的),它或者是一棵空树**,或者是具有以下性质的二叉树:若它的左子树不为空,则左子树上所有节点的值都小于根节点的值若它的右子树不为空,则右子树上所有节点的值都大于根节点的值它的左右子树也分别为二叉搜索树二.搜索树操作1.查找:在搜索树中查找 key 值,若找到返回该节点,未找...原创 2019-10-11 18:29:20 · 442 阅读 · 0 评论 -
七大基于比较的排序
排序就是使一串记录,按照其中的某个关键字的大小,递增或递减排列起来的操作。通常意义上的排序,指的是原地排序(升序)。稳定性:两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则称该算法是具备稳定性的排序。例如:9 5(a) 4 6 5(b) 0,排序后为:4 5(a) 5(b) 6 91.直接插入排序:将整个...原创 2019-09-26 17:24:47 · 3429 阅读 · 0 评论 -
二叉树的概念与基本操作
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每个子结点可以分为多个不相交的子树 。概念:节点的度:一个节点含有的子树的个数称为该节点的度树的度:一棵树中,最大的节点的度称为树的度叶子节点或终端节点:度为0的节点称为叶...原创 2019-09-16 22:04:10 · 174 阅读 · 0 评论 -
List练习(扑克牌与杨辉三角)
List线性表常见方法:一.扑克牌:规则:1.买牌:按花色从 A-K 排列2.洗牌3.三名玩家按顺序轮流抽取五张牌4.判断玩家是否持有“红桃A”,若有则该玩家输了4.判断玩家手中是否有某张牌时, hands的类型就是 List<List<Card>>,它的元素的类型是 List<Card>。扑克牌的实现Java...原创 2019-09-11 13:00:55 · 210 阅读 · 0 评论 -
抽象类,接口与多态
抽象类定义:只是在普通类的基础上扩充了一些抽象方法。抽象方法就是只声明未实现的方法。关键字:abstract1.修饰类,这个类无法被实例化。2.修饰方法,该方法称为抽象方法,只有方法签名,没有方法实现。只能被他的子类实现abstract class Person{//抽象类 public abstract void getName();//抽象方法}new A()...原创 2019-09-09 22:14:54 · 194 阅读 · 0 评论 -
类的继承
继承:Object 是所有类的一个祖先类。 class A 约等于class A extends Object。继承的作用:代码的复用性问题,在已有的基础上进行功能扩充。(继承要表达的是逻辑之间有关系的类)继承的语法:java中使用 extends 关键字来实现class 子类 extends 父类其他名称:子类(child),派生类(Derived class)父类(paren...原创 2019-09-08 16:52:58 · 277 阅读 · 0 评论 -
初识 C 语言
目录初识C语言数据的存储分支和循环函数数组操作符指针字符串+内存函数自定义类型(结构体,枚举,联合)动态内存管理文件操作...原创 2019-08-31 11:47:08 · 164 阅读 · 0 评论 -
栈和队列
1.栈栈的概念及结构栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。2.队列队列的概念及结构队列:只允许在一端进行插入数据操作,在另...原创 2019-07-29 18:48:35 · 98 阅读 · 0 评论 -
链表的插入删除(二)
不带头非循环双向链表:链接双向链表:多了一个 prev 指向该节点的前驱。便于插入删除。顺序表和链表的区别和联系:顺序表:最大的好处:空间连续、支持随机(下标)访问不容易有内存碎片 对缓存更友好 单个数据而言,空间更节省缺点:中间或前面部分的插入删除时间复杂度O(N) 增容的代价比较大。链表:最大的好处:任意位置插入删除时间复杂度为O(1)如果数据规模...原创 2019-07-29 18:44:56 · 102 阅读 · 0 评论 -
链表的插入删除
链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 。不带头非循环单链表:常用两种图示方式:插入:head: 原来的第一个结点 , val:要插入的值 , 返回:新的第一个结点头插:尾插:删除:头删:让新链表指向原来链表的下一个结点尾删:完整代码:https://githu...原创 2019-07-25 21:09:56 · 107 阅读 · 0 评论 -
顺序表的插入删除
线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数...原创 2019-07-24 17:06:42 · 350 阅读 · 0 评论 -
类和对象(二)
1. java编译:一个类会生成一个字节码文件(.class)编译期间,将源文件(*.java)转化(编译Compile)为类字节码文件(*.class),编译期间运行的不是源代码,而是 javac 程序,我们的源代码只是作为别人程序的输入。运行期间,运行的是我们的程序,java 会启动 JVM 虚拟机。javac:(1)从硬盘读文件(读到内存)(2)编译 (3)输出2. 定义包...原创 2019-07-22 18:05:55 · 145 阅读 · 0 评论 -
类和对象(一)
面向对象的三大特性:封装;继承;多态一.类与对象的定义与使用1.类:类是生产对象的蓝图(自行车的设计图),是指共性的概念。对象:一个具体的,可以使用的事物(自行车)。对象就是放在堆中的一块区域,对象中存储的最主要就是属性,也可以找到方法区中对象相对应的类的信息。2.为什么要设计类和对象的机制(面向对象编程)? 状态(属性)+ 行为(方法)3.语法:定义类: ...原创 2019-07-20 17:45:27 · 141 阅读 · 0 评论 -
数组
数组是引用类型的变量1.定义:数据类型 [] 数组名;如int[] array; 也可以采用C中方式定义int a[],但是不推荐赋值:初始化时赋值(静态初始化) int[] a = {1,2,3,4,5};缺点:数组长度固定 动态初始化int[]a = new int[5]; //默认值(0的类型含义)如果数组中的元素没有初始化,元素的值就是元素类型的默认值如...原创 2019-07-18 17:03:57 · 119 阅读 · 0 评论 -
逻辑控制和方法使用
逻辑执行过程:1.顺序执行 2.条件执行 3.循环执行 4.子路径(调用方法) java的三种结构:顺序;循环;分支分支结构:进行逻辑判断,满足条件时执行某些语句1)单分支 if(布尔表达式){ 条件 } else { 条件2 } 2)多分支switch(数字|枚举|字符|字符串){ case 内容1:语句; break; ...原创 2019-07-17 15:16:11 · 637 阅读 · 0 评论 -
初识java
计算机知识安装JDk-1.8 JDK(...原创 2019-07-16 15:31:04 · 105 阅读 · 0 评论 -
自定义类型总结
>结构体类型 .结构:结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构体声明:struct tag{member-list;}variable-list;特殊的声明:(匿名结构体类型)struct{int a;char b;float c;}x;struct{int a;char b;float c;}...原创 2019-05-26 21:42:16 · 221 阅读 · 0 评论 -
指针习题
1.解析:数组名只有在sizeof()中单独出现和在取地址符&后使用表示整个数组的地址,指针加减取决于其所指向类型的大小。因此变量ptr在程序中表达的是下一个数组的地址,ptr指向的类型是int *,减1则是减4个字节,就是数组元素5的位置。*(a+1)中a是此数组的首元素的地址(元素1的地址),因此(a+1)为数组第二个元素的地址,解引用后即第二个元素。int main(...原创 2019-05-18 21:55:39 · 138 阅读 · 0 评论 -
指针理解------一级指针,二级指针,指针和数组,指针数组
一级指针1. int *p 这里定义了一个指针变量p,p里存储的内存地址处的内存称为p所指向的内存,p里的任何数据都当做地址处理。指针就是变量,用来存放地址的变量。指针的大小在32位平台是4个字节,在64位平台是8个字节。2.指针的定义方式是: type * ,type只是说明指针所指向的内存里存储的数据类型。指针类型的意义:指针+-整数:+-的大小取决于其所指向的类型。如c...原创 2019-05-13 17:54:08 · 554 阅读 · 0 评论