自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 jvm重点

java虚拟机软件模拟的电脑。吧java的字节码转换成操作系统/cpu能识别的二进制指令jvm需要做的事情:1.类加载2.执行引擎(解释执行字节码)3.动态内存管理(申请内存/释放内存(垃圾回收))jvm的内存区划划分堆:new 的对象方法区:类对象 java=》.class二进制字节码 运行的时候加载到内存中(方法区) 是反射的力量来源​ 1.类有哪些属性 分别叫什么名字 什么类型​ 2.类有哪些方法 什么名字 什么参数​ 后面new这个类对象的时候

2021-09-07 07:36:18 251

原创 多线程面试

多线程锁策略:不仅仅局限于JAVA,各种编程语言都有可能涉猎到。乐观锁和悲观锁乐观锁:认为出现竞争的概率比较低(线程数目比较少,偶尔竞争一下)认为冲突概率比较低,做的工作少,成本低。悲观锁:出现锁的竞争概率比较大,可能会频繁竞争。做的工作多,成本高。操作系统提供的锁接口(Mutex)(互斥量)典型的悲观锁,(操作系统认为 竞争会比较大,出现锁竞争,存在竞争失败,什么时候唤醒,取决于调度器)应用程序通过其他方式实现锁(CAS)相当于“用户态锁”,不太设计到内核和操作系统之间切换,更加高效。JAV

2021-09-07 07:32:38 249

原创 常用的排序

常用的排序1.插入排序(类似插入扑克牌)public static void insertSort(int[] array) { for (int i = 1; i < array.length; i++) { int tmp = array[i]; int j = i-1; for (; j >= 0; j--) { if(array[j] > tmp) {

2021-08-25 19:47:08 281 1

原创 优先级队列(堆)PriorityQueue

优先级队列(堆)PriorityQueue顺序存储:完全二叉树 否则空间浪费 层序遍历堆:逻辑上是完全二叉树。物理上存在数组上大根堆:节点的值大于子树中任意节点小根堆:节点小于子树任意节点。public class TestHeap { public int[] elem; public int usedsize; public TestHeap(int usedsize) { this.elem = new int[10]; }

2021-08-25 14:53:44 263

原创 初阶数据结构1

集合框架[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YhNPqlq5-1629859344101)(C:\Users\23871\Desktop\typora\博客\比特科技\数据结构\初阶数据结构\集合框架图.png)]迭代器:iterator listiterator 工具类:Arrays Collections 比较器Comparable Comparator使用集合框架 便于高效快速的写出代码泛型//不可以new

2021-08-25 10:43:21 137

原创 java实现web项目博客管理系统

博客系统前端页面基于html+css+js后端实现基于servlet +themthefe1.需求分析软件开发之前,先需求分析。明白需要实现哪些需求博客系统要实现的功能:1.能够展示当前的博客列表博客列表页,展示了很多篇博客.每一篇博客包含标题,包含发布时间,博客的摘要点击标题,就跳转到博客正文页2博客正文页显示该博客的详细内容.正文里包含标题,发布时间,完整的正文(不实现展示图片)3.博客编辑页显示一个编辑框,用户可以在里面编辑博客内容.并提交给服务器.提交成功之后,博客后台就

2021-08-22 15:56:04 891

原创 Servlet

servlet 实现董涛页面机制写Servlet就需要使用maven创建出一个java web的项目也需要通过maven帮我们下载到Servlet依赖的jar包.还需要借助maven 把代码打成包~~1.先创建maven项目 补充目录结构<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www

2021-08-21 17:02:07 218

原创 http协议

http协议前后端之间交互协议1.客户端VS服务器​ 主动发起请求客户端 被动接受 响应的服务器​ 服务器7*24小时随时等待连接2.请求request,响应response​ 一问一答​ 一问多答​ 多问多答​ 多问一答3.协议客户端和 服务器之间传输数据 协议就规定了通信双方需要按照什么样的规则交流传输的数据本质上还是二级制bit流4.协议栈多个协议组成完成通信 协议分为5层TCP是传输层的核心协议ip是网络层核心协议5.HTTP协议

2021-08-19 08:59:56 226

原创 JavaScript扫盲

javaScriptJavaScript是运行在浏览器上的.功能就是控制页面和用户之间进行交互~~现在JavaScript俨然就成了前端的一哥!!js的语法内容通过浏览器开发者工具 consolejs的书写位置1.内联JS:写到html里面 <div onclick="console.log('hello')"> hello </div> onclick 点击事件2.内部js:写到HTML<div >

2021-08-18 11:32:10 195

原创 css扫盲

css快速学习css CSS 参考手册 (w3school.com.cn)基本语法 键值对的形式CSS是一个键值对这样的结构.key表示不同的CSS属性value表示属性的值.其中key和value中间使用冒号分割.键值对和键值对之间,使用分号分割.CSS 写的位置,主要有三种位置.1.以元素的style属性来指定.内联样式<img src="bite.jpg"alt="这是一张图片"style="width:80px;hight:80px">2.以<style

2021-08-17 21:01:15 254

原创 html扫盲

前端HTMl 描述页面的骨架CSS 描述了页面的样式javaScript描述页面的行为HTML的注释CSS的注释/**/JavaScript 注释是//html整个文件有一个最上层标签html标签.里面有一个head标签.放了和当前HTML相关的属性还有一个 body标签.放了HTML页面要展示的内容~标签之间是可以嵌套的~~也可以用"父子"这样的词来描述标签之间的关系~[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9fQjYaoE-1629199

2021-08-17 19:24:12 649

原创 SQL高阶

Mysql进阶约束对表中的数据进行一定的限制 提高了数据的可靠性NOT NULL - 指示某列不能存储 NULL 值。UNIQUE - 保证某列的每行必须有唯一的值。DEFAULT - 规定没有给列赋值时的默认值。PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标 识,有助于更容易更快速地找到表中的一个特定的记录。FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。CHECK - 保证列中的值符合指定

2021-08-17 15:36:24 223

原创 初始数据库(mysql)

初识数据库(MYSQL)数据库是什么?数据库是用来组织数据,提供功能:增删改查 。数据库来进行对数据的管理。使用的是SQL语言。Mysql只是一种具体的工具。数据库都有哪些?Oracle:(甲骨文)数据库领域一哥,收费。Mysql被收购 --》开发MariaDBSQlite:安卓机内置。SQL Server :微软 和windows平台进行捆绑Redis: Hbase: MongoDB: NoSql 数据库 非关系型数据库关系型数据

2021-08-16 10:23:23 389

原创 java基础知识复习(面试重点)

javase复习重点1.基本的数据类型byte char short int long float double boolen整型提升:的意义在于:表达式的整型运算要在CPU的相应运算器件内执行,CPU内整型运算器(ALU)的操作数的字节长度一般就是int的字节长度,同时也是CPU的[通用寄存器]的长度。因此,即使两个char类型的相加,在CPU执行时实际上也要先转换为CPU内整型操作数的标准长度。强制类型转换:强制类型转换是把变量从一种类型转换为另一种数据类型。当 int 和 l

2021-08-12 20:27:09 215

原创 动态规划3

动态规划3第一题 分割字符串使子串成为回文例如 字符串s=“aab”返回 1 因为回文分割结果【“aa”,“b”】切割一次生成问题:字符串最小分割次数状态F(i):字符串前i个字符最小分割次数转移方程:F(i): j<i&&[j+1,i]是回文串 min{F(j)+1}​ 如果整体为回文串[1,i]F[i]=0初始状态F(i)=i-1最终的结果:F(n)链接class Solution {public: /** *

2021-08-05 15:57:34 86

原创 动态规划2

Dynamic Programming第一题 三角形问题链接给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字,例如,给出的三角形如下:[[20],[30,40],[60,50,70],[40,10,80,30]]最小的从顶部到底部的路径和是20 + 30 + 50 + 10 = 110。注意如果你能只用O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中N是三角形中的行总数。问题:从(0,0)到达最后一行(i, j)最小路径F(i

2021-08-05 09:54:04 115

原创 git和github的使用

公司中常用的git和github你会了吗?1.git概述​ Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。1.1版本控制​ 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本, 方便版本切换。1.2版本控制的工具​ 集中

2021-08-03 10:21:16 162

原创 动归

Dynamic ProgrammingDP定义:动态规划是分治的延伸,大事化小,小事化了。三个特点:把原来的问题分成几个相似的问题;所有问题只要一次就可以解决存储子问题的解**四要素:**状态定义 状态间的转移方程 状态的初始化 返回的结果使用的场景: 最值,可不可行 是不是 方案的个数第一题 Fibonacci斐波那契数斐波那契数public class Solution { public int Fibonacci(int n) { if(n

2021-05-17 15:58:40 156

原创 数据结构---顺序表和链表的总结

数据结构—顺序表和链表的总结线性表(linear list):是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常 见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存 储时,通常以数组和链式结构的形式存储。顺序表(数组)**定义:**是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成 数据的增删查改。顺序表一般可以分为: 静态顺序

2021-05-14 20:33:18 882 1

原创 面向对象的特征之一 ( 封装)

面向对象编程的特征之一 ( 封装)这里写目录标题面向对象编程的特征之一 ( 封装)访问修饰符封装的使用方法的构造getter和setterthis关键字代码块toString方法匿名对象封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别软件开发的本质就是对程序复杂程度的管理. 如果一个软件代码复杂程 度太高, 那么就无法继续维护. 如何管理复杂程度? 封装就是最基本的方法.在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者.被 public 修饰的成

2021-04-11 22:00:52 244

原创 类和对象

类和对象面向对象的简述​ 早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,**将现实世界的事物抽象成对象,现实世界中的关系抽象成类,**继承帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。对象是类的具体化实现。它将对象作为的基本单元,将程序和数据封装其中,以提高软件的重用

2021-04-11 20:52:43 167 5

原创 高阶--可存在文件中的通讯录

可存在文件中的通讯录通过file函数对文件进行操作,使其能够下次打开时不至于丢失。通过Loadcontact函数对文件contact进行操作 读取其中的数据,并且判断是否要进行扩容void LoadContact(struct Contact* pc){ //打开文件 FILE *pfin = fopen("contact.dat","rb"); if (pfin == NULL) { printf("LoadContact %s\n", strerror(errno)); retu

2021-04-07 17:40:45 188

原创 java基本数据类型与运算符

java的基本数据类型与运算符这里写目录标题java的基本数据类型与运算符数据类型byte数据类型short数据类型int数据类型long数据类型浮点数据类型字符数据类型布尔数据类型注意事项运算符算术运算符基本四则运算符 + - * / %增量赋值运算符 += -= *= /= %=自增/自减运算符 ++ --关系运算符逻辑运算符位运算符移位运算条件运算符数据类型byte数据类型占用1个字节 对应的包装类 Byte 可以表示的数字大小 (-128~127) public stati

2021-04-03 11:41:15 1081 5

原创 java开发环境安装及第一个java程序

java开发环境安装及第一个java程序一个java程序要跑起来我们最先要做的就是安装它的环境——JDKJDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。当下我们应用的更多是的jdk8,下面是64位系统的jdk网盘链接提取码:9696复制这段内容后打开百度网盘手机App,操作更方便哦此处是jdk官网 需要不同版本的也可以去找jdk官网下面是安装过程

2021-03-28 20:47:36 391 3

原创 中阶——动态申请通讯录(C语言)

中阶——动态申请通讯录通过malloc函数对内存进行动态空间申请,完成通讯录相关的的功能contact.h#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>#include<stdlib.h>#include<errno.h>#define MAX 1000#define NAME_MAX 20#define SEX_MAX 10#define

2021-03-23 14:35:46 559 1

原创 初阶——静态通讯录(c语言)

初阶——静态通讯录(c语言)该程序完成了静态通讯录的功能包括的功能有实现联系人的添加,删除,搜索,修改,通讯录的展示,通讯录的清空和排序等功能test.c#define _CRT_SECURE_NO_WARNINGS 1#include "contact.h"//通讯录 保存1000人 每个人的名字 年龄 性别 电话住址//功能 增加一个人 删除一个人 查找一个联系人 修改一个联系人 显示通讯录中所有人信息//排序所有人的信息 退出通讯录//test

2021-03-22 21:37:07 532 2

原创 详细介绍自定义类型 :结构体 枚举 联合体

详细介绍自定义类型 :结构体 枚举 联合体这里写目录标题详细介绍自定义类型 :结构体 枚举 联合体结构体结构体类型声明结构体的自引用结构体的初始化结构体的计算--内存对齐结构体传参位段枚举枚举类型的定义枚举的优点联合体联合体的定义联合体的计算结构体结构体类型声明struct Stu //类型声明{//下面为结构体的属性char name[20];int age;char sex[t];}p1;//分号不能丢 p1是变量名可以省略//也可以这样命名struct Stu p2; 特殊

2021-03-09 17:18:18 238 1

原创 剖析数据如何存在存储中

剖析数据如何存在存储中1.数据的类型1.1基本的内置类型char //字符数据类型short //短整型 int //整形 long //长整型 long long //更长的整形 float //单精度浮点数 double //双精度浮点数 1.2数据的类型分类整型类型:unsigned(无符号) signed(有符号)浮点数:float double构造类型:数组类型[] 结构体

2021-02-25 19:36:00 250

原创 两个变量交换的方法

c语言中两个变量交换的方法1.建立临时变量的的方法#include <stdio.h>int main(){ int a=5; int b=3; int c=0; printf("a=%d,b=%d\n",a,b); c=a; a=b; b=c; printf("a=%d,b=%d\n",a,b); return 0; }2.不建立临时变量的方法2.1 但是该方法存在溢出问题#include <std

2021-01-25 14:04:11 146

原创 输入输出(IO)

文章目录输入输出(IO)I/O控制器I/O控制器程序直接控制方式(轮询)中断驱动方式DMA方式通道控制方式I/O软件层次结构用户层软件设备独立性软件设备驱动程序中断处理程序I/O核心子系统假脱机技术设备的分配和回收设备分配需要考虑的因素设备管理中的数据结构设备分配步骤缓冲区管理单缓冲双缓冲使用单/双缓冲在通信时的区别循环缓冲区缓冲池输入进程请求输入数据计算进程想要取得一块输入数据计算进程想要将准备好的数据冲入缓冲区输出进程请求输出数据输入输出(IO)I/o输入输出 可以将数据输入到设备或者接收计算机输

2020-12-13 15:15:53 1282

原创 文件管理

文章目录文件管理文件的逻辑结构有结构文件顺序文件索引文件索引顺序文件文件目录文件控制块(FCB)单级目录结构两级目录结构多级目录结构(树形目录结构)无环图目录结构索引节点(FCB的改进)文件物理结构(文件分配方式)连续分配方式链接分配隐式链接显式链接索引分配一个文件的索引表太大,导致索引块装不下如何解决?逻辑结构和物理结构区别文件存储空间管理(空闲存储区的管理)空闲表法空闲链表法位示图法成组链接法文件的基本操作创建文件删除文件打开文件关闭文件读文件写文件文件共享基于索引的结点共享(硬链接)基于符号链的共享方

2020-12-10 19:15:56 334

原创 内存管理

文章目录内存管理内存的基础知识装入的三种方式链接的三种方式内存管理概念覆盖与交换覆盖技术:解决程序大小超过物理内存的问题交换技术:内存空间紧张时,系统将内存中某些进程暂时换出外存,把外存中 某些已具备运行条件的进程换入内存1. 应该在外存(磁盘)的什么位置保存被换出的进程?2. 什么时候应该交换?3. 应该换出哪些进程?连续分配管理方式:单一连续分配固定分区分配动态分区分配系统要用什么样的数据结构记录内存的使用情况当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配?如何进行分区的分配与回收操作? 假设

2020-12-06 15:05:16 260

原创 进程管理

文章目录进程管理进程的状态进程控制进程通信线程调度的概念进程调度调度算法进程同步进程互斥进程互斥的软件实现方法进程互斥的硬件实现方法信号量机制(pv操作)信号量机制的实现管程死锁预防死锁避免死锁死锁的检测和解除进程管理程序:是静态的,就是一个存放在磁盘里的 可执行文件,就是一系列的指令集合。进程:是动态的,是程序的一 次执行过程。区分不同的进程 使用不同的pid 第一个qq 11300 第二个qq 16476windows对进程的管理 任务管理器管理的信息存放在PCB中

2020-12-05 13:06:04 450 1

原创 排序算法(选择排序和堆排序)c语言实现

排序算法(选择排序和堆排序)c语言实现选择排序/选择排序过程中需要进行的比较次数与初始状态下待排序的记录序列的排列情况无关。当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,共需要进行的比较次数是(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的[时间复杂度为O(n^2),进行移动操作的时间复杂度为O(n)。空间复杂度O(1)#include<stdio.h>void SelectSort(int a[],int n){ int i; in

2020-11-30 20:18:00 489

原创 c语言入门

c语言入门#include<stdio.h> //头文件#include<math,h>//库函数#include<stdlib.h> //printf("puase");暂停的意思void main(){ //主函数,{函数体} int a=1;//定义整型 double b=1.2;// 定义浮点 char num='w';//定义字符 char name[]="wangxp";//定义字符串 printf(

2020-11-29 17:36:14 259

原创 排序算法(冒泡排序,快速排序)

排序算法之交换排序(冒泡排序和快速排序)交换排序:根据序列两个元素关键字的比较结果来对换两个记录在序列中的位置。冒泡排序原理如下比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。时间复杂度最好o(n)最坏o(n2)空间复杂度o(1)代码实现(c)#inclu

2020-11-25 19:59:02 246 1

原创 系统概述

系统概述操作系统是控制和管理系统资源,并合理的组织调度计算机资源分配,提供用户和其他 软件接口的环境,系统的基本软件。 操作系统提供的功能:处理机管理,存储器管理,文件管理,设备管理。 操作系统向上层提供方便易用的服务———封装的思想GUI:图形化用户接口 命令接口 联机命令接口=交互命令接口 脱机命令接口=批处理命令接口 程序接口:写代码间接使用 printf函数调用了操作系统的系统调用(广义指令) 裸机+操作系统–>虚拟机、扩充机器操作系统四个特征并发,共享,(最基本特征,互为条件

2020-11-21 16:12:37 1805 2

原创 排序算法之简单排序方法

排序算法之简单排序方法排序的概念:是按照非递减或递增 顺序对一组记录重新进行整队的操作,排序的方法有很多,包括(简单选择排序,直接插入排序,起泡排序)当然也有先进的排序方法包括(归并排序,快速排序,堆排序,基数排序)今天主要分享一下简单排序。包括(直接插入排序,折半插入排序,希尔排序)直接插入排序插入排序的基本思想:在一个已经排好顺序的子集的基础上,每一步将下一个待排序的记录有序的插入到已经排好的顺序中,直到所有待排全部插入。算法的实现,c语言代码。void InsertSort(int a[

2020-11-19 14:37:07 271

20210711blog.zip

基于tomcat服务器 使用servlet+thymeleaf+css+html+mysql等技术完成了简单的博客系统

2021-08-22

空空如也

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

TA关注的人

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