自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot

创建聚合工程聚合工程里可以分为顶级项目(顶级工程/父工程) 与子工程, 这两者的关系其实就是父子继承的关系子工程在maven里称之为模块(module), 模块之间是平级, 是可以相互依赖的.子模块可以使用顶级工程里所有的资源(依赖), 子模块之间如果要使用资源, 必须构建依赖(构建关系)一个顶级工程是可以由多个不同的子工程共同组合而成.最后还要执行maven install聚合工程整合Spring Boot<parent> <groupId>org.spr

2021-04-28 11:16:58 236

原创 Spring MVC

文章目录Spring MVCSpring MVC介绍Spring 5.x版本变化Spring MVC环境配置Spring MVC数据绑定URL Mapping接收请求参数关联对象赋值日期类型转换解决中文乱码响应输出结果`@ResponseBody`ModelAndView对象Spring MVC整合FreemarkerRESTful开发风格RestController注解与路径变量简单请求与非简单请求JSON序列化浏览器的跨域访问浏览器的同源策略Spring MVC跨域访问CORS 跨域资源访问Spring

2021-04-26 16:46:39 461

原创 SpringJDBC与事务管理

文章目录SpringJDBC与事务管理SpringJDBC的使用步骤JdbcTemplate的数据查询方法JdbcTemplate的数据写入方法Spring事务管理编程式事务声明式事务配置过程(XML配置)事务传播行为注解配置声明式事务SpringJDBC与事务管理Spring JDBC是Spring框架用于处理关系型数据库的模块Spring JDBC对JDBC API进行封装, 极大简化开发工作量JdbcTemplate是Spring JDBC核心类, 提供数据CRUD方法SpringJDB

2021-04-26 16:45:33 483

原创 Spring AOP面向切面编程

文章目录Spring AOP面向切面编程Spring中的可插拔组件技术Spring AOPAOP关键概念AOP配置过程(XML配置)JoinPoint核心方法PointCut切点表达式五种通知类型详解环绕通知利用注解配置Spring AOPSpring AOP实现原理代理模式静态代理JDK动态代理CGLib实现代理类Spring AOP面向切面编程Spring中的可插拔组件技术Spring AOPSpring AOP - Aspect Oriented Programming 面向切面编程AO

2021-04-26 16:44:27 220

原创 传输层

文章目录传输层(Transport)UDP - 数据格式UDP - 检验和(Checksum)端口(Port)TCP - 数据格式TCP - 小细节TCP - 一个细节TCP - 检验和(Checksum)TCP - 标志位(Flags)TCP - 序号、确认号、窗口TCP的几个要点TCP - 可靠传输 - 停止等待ARQ协议疑问TCP - 可靠传输 - 连续ARQ协议 + 滑动窗口协议TCP - 可靠传输 - 连续ARQ协议 + 滑动窗口协议TCP - 可靠传输 - SACK(选择性确认)TCP - 可靠

2021-04-21 08:30:00 193

原创 网络层

文章目录网络层(NetWork)网络层首部 - 版本、首部长度、区分服务网络层首部 - 总长度网络层首部 - 标识、标志ping - 几个用法网络层首部 - 片偏移网络层首部 - 生存时间网络层首部 - 协议、首部校验和网络层(NetWork)◼ 网络层数据包(IP数据包,Packet)由首部、数据2部分组成数据:很多时候是由传输层传递下来的数据段(Segment)网络层首部 - 版本、首部长度、区分服务◼ 版本(Version)占4位0b0100:IPv40b0110:IPv6◼

2021-04-15 09:31:04 354

原创 JavaWeb复习知识点大汇总

文章目录JavaWeb复习知识点大汇总Maven修改Maven默认的JDK版本解决文件编码的警告IDEA新建Maven项目(Web项目)pom.xml配置项Maven default生命周期(Lifecycle)的每个phase(阶段)的含义denpendency中scope的取值Servlet一些细节转发(forward)转发链条重定向(redirect)转发 vs 重定向过滤器(Filter)持续更新...JavaWeb复习知识点大汇总Maven修改Maven默认的JDK版本在MAVEN_HOM

2021-04-14 21:35:33 764

原创 物理层、数据链路层

文章目录网络分层物理层(Physical)数字信号、模拟信号数据通信模型信道(Channel)数据链路层(Data Link)数据链路层 - 封装成帧数据链路层 - 透明传输数据链路层 - 差错检验CSMA/CD协议Ethernet V2帧的格式Ethernet V2标准网卡PPP协议(Point to Point Protocol)PPP协议 - 字节填充网络分层5应用层(Application)FTP, HTTP, SMTP, DNS, DHCP报文, 用户数据4运输层(T

2021-03-26 12:17:57 1097

原创 计算机网络基础(2)

文章目录路由练习1 - 让4台主机之间可以互相通信练习1 - 路由器0的路由表练习1 - 路由器1的路由表练习2 - 让4台主机之间可以互相通信练习2 - 路由表数据包的传输过程网络、互联网、因特网ISP服务器机房网络分类常见的几种接口上网方式 - 电话线入户上网方式 - 光纤入户上网方式 - 网线入户家用无线路由器的逻辑结构公网IP、私网IPNAT补充: 不同的路由器补充: 第一个包的丢失路由在不同网段之间转发数据, 需要有路由器的支持默认情况下,路由器只知道跟它直连的网段,非直连的网段需要通过静态

2021-03-24 22:15:04 602

原创 计算机网络基础(1)

文章目录计算机之间的通信基础计算机之间的连接方式 - 网线直连计算机之间的连接方式 - 同轴电缆(Coaxial)计算机之间的连接方式 - 集线器(Hub)计算机之间的连接方式 - 网桥(Bridge)计算机之间的连接方式 - 交换机(Switch)计算机之间的连接方式 - 路由器(Router)MAC地址_IP地址MAC地址MAC地址的表示格式MAC地址的获取ARPICMPIP地址IP地址的组成IP地址的分类A类地址B类地址C类地址D类地址, E类地址子网掩码的CIDR表示方法为什么要进行子网划分?计算

2021-03-23 14:00:59 1076

原创 Spring IoC容器与Bean管理

文章目录Spring IoC容器与Bean管理Spring快速入门IoC控制反转DI依赖注入传统开发方式Spring IoC容器Spring IoC容器职责Spring XML配置管理对象(Bean)基于XML配置BeanXML方式创建IoC容器(加载xml配置文件)从IoC容器获取Beanbean 标签 id 与 name属性相同点bean 标签 id 与 name属性区别路径匹配表达式加载单个配置文件加载多配置文件路径表达式对象依赖注入利用setter实现对象依赖注入利用构造方法实现对象依赖注入注入集合

2021-03-17 13:32:19 692

原创 计算机组成原理基础(1)

文章目录计算机组成原理基础(1)总览计算机的基本硬件组成冯·诺依曼体系结构可编程存储程序冯·诺依曼体系结构计算机性能-CPU主频什么是性能?计算机组成原理基础(1)总览学习计算机组成原理,其实就是学习和拆解冯·诺依曼体系结构。具体来说,学习组成原理,其实就是学习控制器、运算器的工作原理,也就是 CPU 是怎么工作的,以及为何这样设计;学习内存的工作原理,从最基本的电路,到上层抽象给到 CPU 乃至应用程序的接口是怎样的;学习 CPU 是怎么和输入设备、输出设备打交道的。学习组成原理,就是在理解从控

2021-03-17 13:31:26 821

原创 反射简单总结

文章目录反射简单总结反射的核心类Class类Class核心方法Constructor构造方法类Constructor类核心方法Method方法类Field成员变量类Field类核心方法getDeclared系列方法反射简单总结反射(Reflect)是在运行时动态访问类与对象的技术反射是JDK1.2版本后的高级特性, 隶属于java.lang.reflect大多数Java框架都基于反射实现参数配置, 动态注入等特性反射的核心类Class类Class是JVM中代表"类和接口"的类Class

2021-03-13 16:34:39 207

原创 Redis 入门

文章目录Redis 入门Redis 介绍Redis 特点Redis 的常用基本配置Redis 通用命令Redis 数据类型String 字符串类型字符串命令:Hash 键值类型Hash 类型常用命令List列表类型List 命令Set 与 Zset 集合类型Set 命令Zset 命令Java客户端-JedisRedis 入门Redis 介绍Redis 是Key-Value 型NoSQL数据库Redis 将数据存储在内存中, 同时也能持久化到磁盘Redis 常用于缓存, 利用内存的高效提高程序的处

2021-03-10 18:06:37 279

原创 动态规划

轻松手撕动态规划先立flag, 马上更新!

2020-12-16 12:45:24 134 1

原创 轻松理解递归算法

轻松理解递归算法flag先立着, 马上更新!

2020-12-16 12:41:08 242

原创 轻松手撕图及其相关算法

轻松手撕图及其相关算法flag先立着, 马上更新!

2020-12-16 12:39:09 184 1

原创 轻松手撕 HashMap

文章目录手撕 HashMapTreeMap分析哈希表 (Hash Table)哈希冲突手撕 HashMapTreeMap分析时间复杂度:添加, 删除, 搜索: O(logn)特点:Key 必须具备可比较性元素的分布是有顺序的在实际应用中, 很多时候的需求Map 中存储的元素不需要讲究顺序Map 中的 Key 不需要具备可比较性不考虑顺序, 不考虑 Key 的可比较性, Map 有更好的实现方案, 平均时间复杂度可以达到 O(1)那就是采取哈希表来实现 M

2020-12-15 20:55:11 936 2

原创 LLVM 编译器中的王者

文章目录LLVM 编译器中的王者LLVM 简单介绍传统的编译器架构LLVM 架构ClangClang 与 LLVMOC源文件的编译过程词法分析语法树-AST语法树-ASTLLVM IR应用与实践LLVM 编译器中的王者LLVM 简单介绍什么是LLVM官网: https://llvm.org/The LLVM Project is a collection of modular and resuable compiler and toolchain technologies.LLVM 项目是

2020-12-15 20:47:57 639

原创 计算机的启动过程

计算机的启动过程首先BIOS是什么?BIOS是一个程序, 这个程序是写死到主板上面的一个存储芯片中, 这个存储芯片在没有通电时也能够记录数据, 这就是只读存储器(Read Only Memory, ROM).但由于电脑的发展,BIOS程序代码也需要适度修改,所以现在的BIOS都是写入类似闪存或者EEPROM中。BIOS掌握系统硬件的详细信息和启动设备的选择.早期的BIOS搭配MBR/GPT的启动过程按下电源键, 计算机首先会读取BIOS程序.BIOS程序首先会进行硬件自

2020-10-11 17:50:31 412

原创 C语言和LinuxC的一些问题(进程线程)

1. 阅读下面代码段,回答问题以下代码段存在问题, 请在不修改结构体定义,不减少功能的前提下对此对此代码中存在的问题进行修改并说明修改原因。修改正确后,写出输出结果并说明原因将注释加入程序, 能正确运行吗, 如果能, 输出结果是什么, 并说明原因sizeof(A)的结果是什么,为什么,再定义一个 int 类型的 t3, 定义的位置影响结果吗,说明理由。typedef struct tag_unimportant { char *t2; int t1;} A;void func(A *a

2020-07-28 16:30:16 219 2

原创 MySQL配置

前言不小心把MySQL更新了, 导致MySQL不能用了, 下面记录一下解决办法.1.修改配置文件sudo vim /etc/mysql/my.cnfbasedir是MySQL安装目录datadir是MySQL数据库中数据存放目录MySQL服务启动后会产生mysqld.sock文件, socket保存mysqld.sock文件的存放位置# For advice on how to change settings please see# http://dev.mysql.com/doc/refm

2020-07-27 15:02:15 152 1

原创 Linux上的getch(), 清屏问题以及printf不立即显示的问题

getch()getch() 在Linux上不能用, 最开始采用的替换方式是用initscr(); // getch()使用前的初始化endwin(); // getch()使用后的注销但是发现有问题, 后采用#include <termios.h>int getch(void) { struct termios tm, tm_old; int fd = STDIN_FILENO, c; if (tcgetattr(fd, &tm) < 0)

2020-07-18 16:37:31 397

原创 LeetCode刷题日记(一)——链表、栈相关

文章目录[226. 翻转二叉树](https://leetcode-cn.com/problems/invert-binary-tree/)[232. 用栈实现队列](https://leetcode-cn.com/problems/implement-queue-using-stacks/)[20. 有效的括号](https://leetcode-cn.com/problems/valid-parentheses/)[83. 删除排序链表中的重复元素](https://leetcode-cn.com/pr

2020-06-20 19:05:18 331

原创 C++知识点总结(其他语法2-模板, 类型转换, C++11新特性)

文章目录模板(template)模版2-编译细节类型转换1.const_cast2.dynamic_cast3.static_cast(了解, 开发中很少用)4.reinterpret_castC++11新特性6.Lambda表达式模板(template)泛型, 是一种将类型参数化以达到代码复用的技术, C++中使用模板来实现泛型模板的使用格式如下:template <typename\class T>typename和class是等价的模板没有被使用时, 是不会被实例化出来的.例

2020-06-20 00:18:52 577 1

原创 C++知识点总结(其他语法1-运算符重载)

运算符重载1(operator overload)运算符重载(操作符重载) : 可以为运算符增加一些新的功能.#include <iostream>using namespace std;class Point { friend Point operator+(const Point &, const Point &);private: int m_x; int m_y;public: Point(int x, int y) : m_

2020-06-20 00:16:09 437

原创 C++知识点总结(面向对象6-隐式构造, 友元, 内部类, 局部类)

对象类型的参数和返回值使用对象类型作为函数参数或者返回值, 可能会产生一些不必要的中间对象(1)对象类型做函数参数时void test1(Car car) { // 对象类型作为参数 }int main() { Car car1; test1(car1);}把外面的对象传给里面的对象时, 会产生一个新的对象(不必要的中间对象), 因为相当于void test1(Car car = car1)利用一个已经存在的对象, 构建出了一个新的对象, 所以就是拷贝构造.解决这个问题: 传引用或指

2020-06-20 00:14:06 437

原创 C++知识点总结(面向对象5-const成员, 拷贝构造函数)

const成员, 引用成员const成员: 被const修饰的成员变量, 非静态成员函数.const成员变量:1.必须初始化(必须在类内部初始化), 可以在声明的时候直接初始化赋值.2.非static的const成员变量还可以在初始化列表中初始化.const成员函数(非静态):(重点)1.const关键字写在参数列表后面, 函数的声明和实现都必须带const2.内部不能修改非static成员变量.static成员变量的内存全世界只有一份, 哪里都可以修改, 而这个const的作用是限制了这个

2020-06-20 00:12:19 800

原创 C++知识点总结(面向对象4-多继承, 静态成员static)

多继承-虚函数如果子类继承的多个父类都有虚函数, 那么子类对象就会产生对应的多张虚表.同名函数同名成员变量多继承2-菱形继承菱形继承带来的问题:最底下子类从基类继承的成员变量冗余, 重复(有两个age, 内存是两份, 从语法上正确, 但不合理)最底下子类无法访问基类的成员, 有二义性.多继承3-虚继承虚继承可以解决菱形继承带来的问题Student和Worker共用一个age, 共享从虚基类里面搞过来的成员变量都放到最后面, 这个对象会多出4个字节, 存放虚表指针, 20和12

2020-06-20 00:08:40 455

原创 C++知识点总结(面向对象3-多态)

多态1父类指针, 子类指针(1)父类指针可以指向子类对象, 是安全的, 开发中经常用到(继承方式必须是public)(2)子类指针指向父类对象是不安全的.(因为不安全, 所以编译器会报错)#include <iostream>using namespace std;class Person {public: int m_age;};class Student : public Person {public: int m_score;};int mai

2020-06-20 00:06:13 444

原创 C++知识点总结(面向对象2-构造函数, 初始化列表)

构造函数1(Constructor)构造函数(也叫构造器), 在对象创建的时候自动调用, 一般用于完成对象的初始化工作.特点:(1)函数名与类同名, 无返回值(void都不能写), 可以有参数, 可以重载, 可以有多个构造函数.(2)一旦自定义了构造函数, 必须用其中一个自定义的构造函数来初始化对象.注意:(1)通过malloc分配的对象不会调用构造函数(2)通过new分配的对象可以调用构造函数, 即在堆空间中的对象可以调用构造函数, 在栈空间的也可以, 在全局区(数据段)的也可以.只有mal

2020-06-20 00:03:46 348

原创 C++知识点总结(面向对象1-类和对象, this指针, 内存布局)

面向对象1-类和对象C++中可以使用struct, class来定义一个类struct 和 class的区别:struct的默认成员权限是publicclass的默认的成员权限是private变量名规范参考:全局变量: g_ global g_age成员变量: m_ member m_age静态变量: s_常量: c_ const或使用驼峰标识 gAge, mAge面向对象2- 对象的内存#include <iostream>using nam

2020-06-20 00:01:21 443

原创 C++知识点总结(基础语法2-内联函数, const, 引用)

内联函数1(inline function)(1)使用inline修饰函数的声明或实现, 可以使其变成内联函数.(2)建议声明和实现都增加inline修饰特点:(1)编译器会将函数调用直接展开为函数体代码, 就不存在函数调用了.代价:会增加代码数量, 使代码变臃肿.但是如果不使用内联函数的话, 由于在函数调用过程中, 会先开辟栈空间给函数, 然后执行函数内的代码, 最后回收栈空间.存在这样一个操作, 如果这个函数频繁调用的话, 就会频繁进行这个操作, 使效率变低.所以什么时候使用内联函数?1

2020-06-19 23:58:49 437

原创 C++知识点总结(基础语法1-函数重载, 默认参数)

默认情况下, 不管是double, 还是float , 输出一个小数, 最多输出6位有效数字.string 字符串类型 包含在#include <string>头文件中布尔类型 bool 作用: 布尔数据类型代表真或假的值bool类型只有两个值:true 真(本质是1)false 假(本质是0)bool类型占1个字节大小另外, bool类型除了0代表假, 其它都代...

2020-06-19 22:39:34 386

原创 包管理器pacman最简单使用总结

安装软件sudo pacman -S [软件名字]更新软件sudo pacman -Sy #更新Arch软件源sudo pacman -Syy #强制更新Arch软件源sudo pacman -Su #更新软件sudo pacman -Syu #更新软件源并更新软件sudo pacman -Syyu #强制更新软件源并更新软件(常用)查询软件sudo pacma...

2020-06-19 22:32:16 2088

原创 Java基础语法

数组数组的创建int[] arr1;int[] arr2 = {}; // 空数组int arr3[] = {}; // 空数组与上面完全等价, 但推荐上面那种// 定义的时候指定数组元素int[] arr4 = new int[] {1, 2, 3, 4}; // 可以省略数组长度int[] arr5 = {1, 2, 3, 4}; // 是上面的简化写法(语法糖)// 定义...

2020-06-19 22:28:38 3689

原创 Java(最基本语法)

基础语法每一条语句都必须以分号结尾Java中的方法就是其他编程语言中的函数main方法是程序的入口没有main方法, Java程序是无法启动的方法必须包含在class内部, 先有class, 再有方法public class 的名称必须要和文件名保持一致注释(Comment)Java的注释有3种书写格式单行注释//啦啦啦多行注释/* 拉拉 ...

2020-06-19 22:23:39 742

原创 汇编基础(1)

汇编语言与机器语言一一对应,每一条机器指令都有与之对应的汇编指令汇编语言可以通过编译得到机器语言, 机器语言可以通过反汇编得到汇编语言.高级语言可以通过编译得到汇编语言\机器语言, 但汇编语言\机器语言几乎不可能还原成高级语言.(不然不就可以拿二进制文件看源代码了吗…)例如:mov eax, 1add eax, 14. 软件\程序的执行过程程序\软件 都在硬盘上, 当程序要跑...

2020-06-19 21:59:38 272

转载 C语言中如何清空键盘缓冲区,Linux和Windows下完美实现

在linux下调试程序,遇到了用户输入问题,具体说就是getchar() scanf()问题,用了rewind(),fflush()方法都不好使,看了一篇文章后才知道linux下得用setbuf(),于是万事大吉也。故转之。 setbuf(stdin, NULL); // 清空缓冲区清空键盘缓冲区很多种方法,如用fflush(stdin); rewind(stdin);等,但是在lin...

2020-06-19 21:58:48 580

原创 计算机网络概述

文章目录网络模型OSI 参考模型TCP/IP 协议通常学习, 研究采用基础知识所有的请求一般分为两种: TCP请求和UDP请求, TCP请求和UDP请求对比:TCP首部UDP首部HTTP 请求过程TCP - 三次握手 - 建立连接TCP - 四次挥手 - 释放连接DNS服务器网络模型OSI 参考模型7应用层(Application)6表示层(Presentation)5会话层(Session)4运输层(Transport)3网络层(Network)2

2020-06-19 19:09:31 391

空空如也

空空如也

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

TA关注的人

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