自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

朝小闇的博客

关于计算机系统基础的学习心得

  • 博客(42)
  • 收藏
  • 关注

原创 SpringBoot(五)——SpringSecurity和Shiro

个人博客:http://blog.kunpw.cn1.初始化导入资源新建项目并配置SpringWeb、Thymeleaf和SpringSecurity依赖(注:只要配置了SpringSecurity依赖后续资源在访问时就会自动被拦截并跳转到登录页,即使并没有配置登录账号);导入素材,资源链接:https://pan.baidu.com/s/1CsbZrhFKggnucYPHFVaHSw 提取码:v7g7新建Controller目录,下建RouterController.java路由控制

2021-03-29 20:14:35 312

原创 嵌入式系统笔记整理(一)

个人博客:http://blog.kunpw.cnARM汇编语言官方手册:链接:https://pan.baidu.com/s/1k-drPZBD41hSIXzzk4JA2Q 提取码:vjyf1.计算机组成嵌入式系统:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。计算机系统:冯.诺伊曼结构(普林斯顿结构):计算机按照程序顺序执行程序(指令),程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;组成:

2021-03-29 20:08:39 1166

原创 分布式系统笔记第三章.分布式程序设计语言

个人博客:http://blog.kunpw.cn第三章.分布式程序设计语言1.分布式程序设计语言概述1.1 分布式应用程序的分类在分布式计算系统中,对应用程序进行程序设计的层面有四:减少单个计算的周转时间、增加可靠性和可用性、使系统某些部分提供特殊功能、固有的分布式应用。分布式应用程序分类:并行、高性能应用程序:粒度是在通信之间的计算时间的长短,并行应用程序可按粒度划分:大粒度并行应用程序用大部分时间进行计算,而不经常通信;细粒度并行应用程序经常通信,适合紧密耦合分布计算系统

2021-03-29 20:07:59 1206

原创 SpringBoot(一)——自动装配原理

个人博客:http://blog.kunpw.cn/SpringBoot官方文档:https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/htmlsingle/#boot-features-external-config1.创建SpringBoot文件1.1 官网创建文件并下载,使用IDEA打开1.2 IDEA创建New Project -> Spring Initializr(本质也是从官网下载的模板格式)

2021-03-11 00:04:26 311

原创 分布式系统笔记第二章.进程通信

个人博客:http://blog.kunpw.cn/分布式系统设计学习笔记(一)进程通信第二章.进程通信进程通信的两种方式:同一物理节点上不同进程:管道、共享内存和消息队列等实现;不同物理节点上不同进程:通信网络实现;1 同一节点上进程间通信1.1 管道单向通信信道,使用write系统调用发送数据,使用read系统调用接收数据。无名管道:简称管道,只在父子进程或同父子进程间使用,并与创建该管道的进程同时存在;管道实质是允许双向通信的,但被强制用作单向通信信道。

2021-03-11 00:03:28 700

原创 SpringBoot(四)——数据库连接(整合Mybatis)

个人博客:http://blog.kunpw.cn/本节讲解数据库连接以及mybatis使用1.数据库连接及原生用法新建项目,配置依赖:Web->Spring Web;SQL->JDBC API;SQL->Spring Data JDBC;SQL->MySQL Driver;IDEA连接数据库(可选,可以使用其它软件直接打开mysql显示):如图,我已连接自己的mysql中springboot_mybatis数据库,其中已配置简单表user:

2021-03-11 00:02:35 204 1

原创 SpringBoot(三)——员工管理系统(无数据库)

个人博客:http://blog.kunpw.cn/本节以一个员工管理系统的实例在前两节的基础上继续讲解一些功能。1.初始化依然是上一个项目,但这次我们引入一个员工管理系统的模板,将页面和静态资源分别导入到项目中,并使用Thymeleaf模板解析器(模板资源链接:https://pan.baidu.com/s/15L8ByzIqhKzaCMo2Re_F3g 提取码:8lbu ):按照上一节在每一个页面引入Thymeleaf,并修改源html标签属性为Thymeleaf,以index.h

2021-03-11 00:02:08 296

原创 SpringBoot(二)——Thymeleaf及MVC装配扩展

个人博客:http://blog.kunpw.cn/SpringBoot配置了什么?能不能对其进行修改?能修改什么?能不能扩展?通过自动装配原理的学习,接下来主要根据自动装配源码分析并得到以下结论。1.导入静态资源这里的静态资源由果索因,即在网页中localhost:8080/后输入webjars路径相当于访问源文件路径,以此找到源文件中存放静态资源位置,注:静态资源包含html等文件;找到WebMvcAutoConfiguration文件以下部分:public void addR

2021-03-11 00:01:27 105

原创 使用Python数据分析遇到的部分问题

个人博客:https://kunpw.cn工作流程本次数据分析目标是对大量的txt文本匹配查询一系列词汇出现的总频次,并从另一个大型二维数组(第一列元素存储了一系列文件名,需要将第二列和第三列元素相应添加到Excel表格中)中对每个文件名做相应的匹配查询使用python进行数据分析工作,主要工作流程如下:从a1、a2文本中读取内容(中文情感词汇,积极词汇表和消极词汇表)并以键值对形式存入两个大的字典中,键用取出来的词语表示,值则初始化赋值为0,用来对目标文本进行匹配分析对应词语出现次数:i

2020-11-29 11:20:19 964

原创 计算机网络自顶向下方法学习笔记(四)网络层:数据平面

个人博客:https://kunpw.cn1.网络层概述网络层存在于网络中所有主机和路由器中(路由器具有截断的协议栈,没有网络层以上的部分),由数据平面和控制平面两部分组成。数据平面:是网络层中属于每台路由器自身的功能,决定到达路由器输入链路的数据报(网络层分组)如何转发到该路由器某一个具体的输出链路。控制平面:是网络范围内的逻辑,控制数据报沿着从源主机到目的主机的端到端路径中路由器的路由方式。如图所示:过程实例:H1中的网络层取得来自于H1运输层的报文段,并将其封装成数据报,向相邻路

2020-11-29 11:18:20 1934 6

原创 计算机网络自顶向下方法学习笔记(三)运输层

个人博客:https://kunpw.cn1.运输层概述运输层服务过程:在发送端(端系统),运输层将从发送端应用程序进程接收到的报文转换为运输层分组(报文段),进而传递给网络层,网络层将其封装成网络层分组(数据报)并向目的地发送;在接收端(端系统),网络层从数据报中提取运输层报文段,并根据该报文段(应用程序决定使用哪一个运输层协议)上交给运输层。1.1 运输层和网络层的关系网络层提供了主机之间的逻辑通信,而运输层为运行在不同主机上的进程之间提供逻辑通信1.2 因特网运输层概述因特网提供两

2020-11-29 11:17:48 1956

原创 计算机网络自顶向下方法学习笔记(二)应用层

个人博客:https://kunpw.cn1.应用层协议原理研发网络应用程序的核心是写出能够运行在不同端系统和通过网络彼此通信的程序:Web应用程序中,有两个互相通信的不同的程序:运行在用户主机上的浏览器程序和运行在Web服务器主机上的Web服务器程序;P2P文件共享系统,在参与文件共享的社区中的每台主机中都有一个程序;1.1 网络应用程序体系结构应用程序体系结构由应用程序研发者设计,规定了如何在各种端系统上组织该应用程序1.11 客户-服务器体系结构服务器:一个总是打开

2020-11-29 11:16:08 3434

原创 计算机网络自顶向下方法学习笔记(一).因特网

个人博客:https://kunpw.cn1.什么是因特网因特网是一种特定的计算机网络(只是其中一种类型);1.1 具体构成描述主机(端系统):接入到因特网的设备被称作主机;由通信链路和分组交换机连接;端系统通过ISP接入因特网;因特网端系统包括:桌面计算机(桌面PC、Mac和Linux设备);服务器(Web和电子邮件服务器);移动计算机(智能手机和平板电脑);分组:由发送端系统将数据进行分段,并为每段加上首部字节组成的信息包;一个分组所经历的一系列通信链

2020-11-29 11:14:54 1725 1

原创 hero Img通过免费cdn显示

个人博客:https://kunpw.cnhexo在上传静态网页的时候markdown文本中的图片却一直无法显示,这个问题如何解决呢?1.原因hexo只能上传md文本资源,并且最终转化为静态网页,而同级目录下的Img图片资源却无法上传至服务器;2.解决办法通过使用外部cdn引用图片即可完美地解决这个问题!但是像七牛云那些大型cdn网站都需要付费使用,这里给大家推荐一个免费且超级好用的cdn加速器:https://www.jsdelivr.com要使用外部cdn引用,必须先将图片从自己个

2020-11-29 11:13:16 287

原创 3.vue开发实例演示

vue开发实例演示1.解剖初始化模板1.1 vue文件如图所示,对于一个新建的vue文件而言,其中标签分为三个部分:template标签:这一块模板区域用于编写html代码块,其实就是component组建中的template属性内容,用作模板显示,而这个模板component的名字就是该vue文件名,使用时导入即可;script标签:默认导出;style标签:scoped属性相当于private,确保其中的样式只在本style样式中有效;1.2 App.vue和main.js

2020-09-04 21:27:42 2711 4

原创 2.Vue开发环境配置(包含node.js、cnpm、vue-cli的安装)

Vue开发环境配置1.Node.js下载http://nodejs.cn/download/直接选择.msi 64位安装包下载并且直接安装即可,安装过程略注意:选择自动添加到path路径,接着直接往下走不用更改;检查是否安装成功:node -v 查看能否正常打印出版本号npm -v 安装node.js会自动安装npm包,同样查看即可npm是一个软件包管理工具,用于下载安装2.安装淘宝镜像加速器(cnpm)cnpm下载国外程序可能无法正常使用,所以一般都使用npm下

2020-09-04 21:20:06 290

原创 1.Vue基础入门

Vue1.简介1.1 概念介绍Vue 是一款渐进式JavaScript框架,所谓渐进式就是逐步实现新特性的意思,如实现模块化开发、路由、状态管理等新特性。其特点是综合了Angular(模块化)和React(虚拟DOM)的优点,与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库(如: vue-router,vue-resource,vuex)或既有项目整合。1.2 MVVMModel:模型层,在这里表示JavaScript对象

2020-09-03 15:36:51 407

原创 Typora修改CSS得到自己想要的风格

这一期给大家讲讲怎样将Typora设置成自己喜欢的风格,这里以高亮颜色为例!打开 视图–>开发者工具(快捷键 Shift+F12)得到网页元素:点亮这个图标:移动鼠标至想要修改样式的地方,点击一次一般有两种类型的地址,第一种:这种地址就直接按照地址中的位置寻找css文件,打开之后如图查找样式名即可第二种:这种地址存放在C:\Users\Acer\AppData\Roaming\Typora\themes 目录下,修改此处才有效最后修改完成重启

2020-08-28 22:05:25 4264 1

原创 javascript详解(包括jQuery的简要使用)

javascript1.引入script内部写入;外部引入;<head> <meta charset="UTF-8"> <title>Title</title> <!--1.在html页面内部写入js代码 --> <!--script标签内,写js代码 --> <!-- <script>--> <!-- alert

2020-08-28 21:57:36 903

原创 注解和反射

注解和反射注解定义Annotation是从JDK5.0开始引入的新技术;Annotation的作用:可以被其它程序(编译器等)读取;不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别);Annotation格式:注解是以“@注释名”在代码中存在的,可以添加一些参数值,如:@SuppressWarnings(value=“unchecked”).Annotation在哪里使用:可以附加在package、class、method、filed等上面,相当

2020-08-25 16:09:17 135

原创 8.异常

异常异常定义异常指在程序运行过程中出现的不期而至的各种状况;异常种类检查型异常最具代表性的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的,如打开一个不存在的文件;运行时异常运行时异常时可被程序员规避的异常,与检查性异常相反,运行时异常可以在编译时被忽略;错误错误不是异常,而是脱离程序员控制的问题,错误在代码中通常被忽略,如栈溢出时,错误发生,而编译也无法检测到;ERROR类对象由java虚拟机生成并抛出,大多数代码与代码编写者的操作无关;异常体系结构

2020-08-25 16:09:02 125

原创 7.面向对象

面向对象初识面向对象面向对象本质:以类的方式组织代码,以对象的方式组织(封装)数据;方法回顾与加深方法定义/*修饰符 返回值类型 方法名(...) throws 异常{ //方法体 return 返回值;}*/修饰符:四种权限修饰符:public 、 protected 、 default 、 privatestatic:static属性和方法都可以直接通过类名调用,只执行一次,且每一个类所有对象共享同一个static属性/方法;final:常量,不能被继承;返

2020-08-25 16:07:01 88

原创 6.数组

数组数组概述定义数组是相同类型数据的有序集合声明//两种声明方法dataType[] arrayRefVar;dataType arrayRefvar[];基本特点长度固定,数组一旦被创建,其长度便不可变;元素必须相同类型,不允许出现混合类型;数组元素可以是任意类型,包括基本类型和引用类型;数组变量属于引用类型,数组也可看成对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象存放于堆中,因此数组无论是何种类型其数组本身都存在与堆中;越界异常:ja

2020-07-21 13:09:10 121

原创 5.java方法

java方法方法的定义及调用定义方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用注:设计方法时,最好保持方法的原子性,一个方法只完成一个功能,利于后期扩展方法包含五个部分:/*修饰符 返回值类型 方法名(参数类型 参数名){ ··· 方法体 ··· return 返回值;}*/修饰符:可选,定义了该方法的访问类型,告诉编译器如何调用该方法;返回值类型:方法可能会返回一个值,returnValueType是方法返回值的数据类型,

2020-07-21 13:07:19 74

原创 4.流程控制

流程控制用户交互Scanner基本语法创建对象//添加一个扫描器对象,用于接收键盘数据Scanner scanner = new Scanner(System.in);通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般使用hasNext()和hasNextLine()判断是否还有输入的数据//判断用户有没有输入字符串if(scanner.hasNext()){ //使用next方法接收 String str = scanner

2020-07-17 18:05:53 135

原创 3.Java基础语法

Java基础语法注释单行注释://多行注释:/**/文档注释:JavaDoc/** * @Description * @Author */标识符和关键字标识符定义1:类名、变量名以及方法名都被称作标识符;定义2:以字母(A-Z或a-z)、美元符($)或者下划线(_)开始;定义3:首字符之后可以是字母、美元符、下划线或数字的任意字符组合;定义4:不能使用关键字作为变量名或方法名;定义5:标识符是大小写敏感的;关键字[外链图片转存失败,源

2020-07-17 18:00:02 87

原创 Android——LitePal

1.配置LitePal环境在project模式下,于build.gradle中dependencies段添加代码引用开源库:compile 'org.litepal.android:core:1.4.1'2.创建数据库修改activity_main.xml文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

2020-05-13 22:23:27 162

原创 GitHub小白简要使用介绍

一.关于GitHub具有两个很重要的优点:适合团队协作开源下载他人代码除网页社区版之外,它还需要连接本机电脑。在连接机器时,可通过①命令窗户也就是Git bush;②高级图形客户端工具,GitHub for Desktop等用来连接。关于几种客户端工具功用请具体参见大佬博客:https://www.cnblogs.com/ups216/p/5603199.html因为学习CSAPP...

2019-12-21 13:14:10 464

原创 系统I/O

I/O也就是我们常说的输入/输出,而所有的I/O设备都被模型化为文件,所有的输入输出都被当作对相应文件的读和写来执行。这种文件映射就是这一章节所要学习的部分。文件文件主要分为普通文件/目录和套接字:普通文件:包含任意数据,其中又分为只含有ASCII或Unicode字符的文本文件和二进制文件,对于内核而言,二者没有区别。目录:包含一组链接,每一个链接都将一个文件名映射到一个文件,这个文件可...

2019-12-05 22:24:41 99

原创 异常

异常是什么?从我们的代码运行机制来讲,所有事情的发生不见得都是事前有所准备的,这就和我们的生活一样,总会有各种各样的意外产生,所谓异常,在计算机底层中,也意味着这样一件事情。当我们运行一段程序代码时,如果所有指令在执行过程中都是顺着程序指令一条一条,最多只通过跳转/调用/返回这一系列可控的指令而运转,那么毫无疑问这样的运行结果是我们所期待的模样。但是程序运行时并不是独立的,它在使用CPU或者系...

2019-12-05 11:38:41 237

原创 实验代码之fork

关于fock实例题目,从以下第一个开始:void fork1(){ int x = 1; pid_t pid = fork(); if (pid == 0) { printf("Child has x = %d\n", ++x); } else { printf("Parent has x = %d\n", --x); } pri...

2019-12-05 10:50:49 313

原创 实验代码之链接

我们知道,从实验代码的撰写构建到最终变成一个完整的可执行程序之间有一个编译的过程,对于初学者而言,这个步骤往往都是直接依靠代码环境平台间接完成的,而我们作为代码的开发者却没能接触到这个过程中更为核心的问题。要想了解清楚这个编译过程,我们就要先搞清楚常说的“编译”到底包含多少具体步骤。以下转载不周山笔记对于此过程的详细介绍:预处理器:将 C 语言代码(da.c)转化成 da.i 文件(gcc ...

2019-11-20 22:39:16 662

原创 实验代码之runaway.c

本章实验是说明深度递归要占用大量内存空间,需谨慎使用。实验代码如下:/* Example of deep recursion */#include <stdio.h>#include <stdlib.h>int recurse(int x) { int a[1<<15]; /* 4 * 2^15 = 64 KiB */ print...

2019-05-27 22:20:29 435

原创 实验代码之bufdemo.c

本章实验主要是将一个限制输入为4位的字符数据进行输入,如果输入数据在限制范围以内,则以正常字符输出,如果超出限制范围,则会侵占其它内存,从而报错。/* Demonstration of buffer overflow */#include <stdio.h>#include <stdlib.h>/* Implementation of library functi...

2019-05-27 21:43:03 112

原创 实验代码之hexify.c

本章运用strtoul函数以16进制读取输入参数,先将其转换成长整型数,再将该长整型数强制转换成字符型,即对输入参数进行数制转换并且用字符型对其表示。具体代码如下:/* Convert sequence of hex digits on command line into a string, terminated by \n */#include <stdio.h>#includ...

2019-05-26 23:12:06 123

原创 实验代码之fsum.c

本章实验主要是讨论单精度浮点数的精度问题。float型数据在小数部分只有23位,而其阶码部分的差值却能达到254位,所以当数据阶码差值超过25位之后要谨慎输入!具体代码如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 256int main(int...

2019-05-26 22:45:51 178

原创 实验代码之locte.c

本章实验代码是访问数据区、代码区、栈区和堆区的地址以及输出其(unsigned long )类型的地址。代码区即程序编译后执行代码的部分。其中char big_array[1L<<24]、char huge_array[1L<<30]是全局变量,属于数据区内容;p1、p2、p3、p4四个指针存在于栈中,但是它们的内容都在数据区;而exit、malloc属于堆区。#inc...

2019-05-26 19:57:19 180

原创 实验代码之show-bytes.c

本章实验代码是为了解int、float以及指针类型的字节大小。并且通过对数值12345678与87654321的对比让大家能够了解到自己机器的大端小端存储方式。/* show-bytes - prints byte representation of data *//* $begin show-bytes */#include <stdio.h>/* $end show-byt...

2019-05-26 16:04:57 468

原创 实验代码之struct.c

这段实验代码主要是讲覆盖问题,有些时候一段数据划分好区域之后会因为其它原因导致其它数据的侵占,这段代码即论述此。#include <stdio.h>#include <stdlib.h>typedef struct { int a[2]; double d;}struct_t;double fun(int i){ volatile struct_t s;...

2019-05-26 14:50:59 202

原创 实验代码之sq.c

本章是计算机系统基础的第一个实验,主要是用来测试int型数据的范围大小。C语言中的int型数据是32位整型存储类型,只有四个字节可用,这就直接限定了其数据大小的绝对范围。由理论二进制32位大小可知,int型最大范围应不超过2的32次方,但这是建立在原码的基础之上的。而在计算机中,由于需要表示负数,故原码并不适用,所以取补码形式用于表现一个整数的正负数部分,因此大略来说它的范围应该再次折半!这个...

2019-05-26 14:12:27 338

空空如也

空空如也

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

TA关注的人

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