自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 (9) javaSE --异常

目录1、Java的异常1.1 异常的分类1.2 防御式编程2、 异常的用法2.1 上菜2.2 菜不够?2.3 加个蛋?3、 声明 和 抛出异常4、RuntimeException (重点)5、自定义异常1、Java的异常小伙子,别跑啊。。。。上面是Java内置异常类之间的继承关系1.1 异常的分类1. 粉红色的是受检查的异常(checked exceptions) — 编译时异常其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕

2022-03-24 21:22:28 1023

原创 (8) javaSE -- Clonable 深浅拷贝

1. Cloneablejava.lang.Cloneable: 克隆接口程序中的克隆: 赋值一个新的对象,新的对象的属性值是从就对象中拷贝过来的public interface Cloneable { }空接口:标记当前类可以被克隆,也称为 标记接口克隆标记本身没有任何抽象方法,当一个类实现了Cloneable接口,就表示该类具备了克隆的能力(JVM)在堆上开辟空间和对象创建都是有JVM操作的,JVM会识别所有克隆标识的类, 赋予克隆的能力1.1 对象的“拷贝” ,

2022-03-18 19:06:29 361 1

原创 (7) javaSE --- 抽象方法、接口、Comparable 和 Comparator

1、抽象类抽象类只是在普通类的基础上扩充了一些抽象方法,所谓的抽象方法指的是只声明而未实现的方法(即没有方法体)。所有抽象方法要求使用abstract关键字来定义,并且抽象方法所在的类也一定要使用abstract关键字来定义,表示抽象类package com.hp.demo1;/** 2、抽象类 * 包含抽象方法的类 称为抽象类,其必须被 abstract 修饰, * 一个抽象类中可以 没有抽象方法,但是如果一个类中有抽象方法,那么这个类一定是抽象类, * */abstra

2022-03-17 15:53:01 672

原创 (6) javaSE --- 多态、方法重写

1、多态在Java中,对于多态的核心表现主要有以下两点:方法的多态性:(1)方法的重载 — 静态绑定同一个方法名称可以根据参数的类型或个数不同调用不同的方法体(2)方法的覆写 — 动态绑定同一个父类的方法,可能根据实例化子类的不同也有不同的实现。1.1 向上转型:父类引用 引用子类对象。什么情况下会发生向上转型呢?即 父类引用 引用子类对象class Person{ public void work(){}}class Student extends Person{ p

2022-03-15 20:34:17 539

原创 (5) javaSE --- 继承、super、覆写 和 final

在Java中,对于多态的核心表现主要有以下两点:方法的多态性:①方法法的重载:同一个方法名称可以根据参数的类型或个数不同调⽤不同的方法体②方法的覆写:同一个父类的方法,可能根据实例化子类的不同也有不同的实现。对象的多态性【抽象类和接口才能体会到实际用处】(前提:方法覆写):运行时绑定:当 父类引用 去引用子类对象 ,并且父类引用调用 父类在子类中被重写的方法时, 就会发生 运行时绑定,其在编译过程中调用的还是父类中的方法,但是在运行时,调用的却是子类重写的方法。1、被重写的方法不能用fina

2022-03-14 13:10:03 945

原创 (4)JavaSE---内部类

public class TestOut1 { private String sayHello = "Hello, I am TestOut1 !"; private String outStr = "I am TestOut1 ! "; private static int outStaticVar = 1; /** * 成员方法 * */ public void outMethod() { System.out.printl

2022-02-11 18:02:49 345

原创 (3)JavaSE--- 代码块

目录1. 代码块1.1 啥是代码块1.2 代码块分类1.2.1 普通代码块1.2.2 构造块(实例代码块)1.2.3 静态代码块1.2.4 同步代码块1. 代码块1.1 啥是代码块 { } 就这1.2 代码块分类1.2.1 普通代码块定义在方法中的代码块。1.2.2 构造块(实例代码块)定义在类中的代码块(不加修饰符),也叫 实例代码块。构造代码块一般用于初始化实例成员变量。1.2.3 静态代码块使用static定义的代码块。一般用于初始化静态成员属性。1.2.4 同步代码

2022-02-10 10:05:51 296

原创 (2)JavaSE---封装、访问权限、包

目录1. 封装1.2 封装作用1.3 访问权限控制1.4 getter 和 setter方法2. 包2.1 系统包2.2 自定义包2.3 包的访问控制1. 封装封装概念:将类中重要的数据和方法使用private修饰,使其只能在类内进行访问,而类的调用者则无法对类中私有数据进行访问。封装的本质是为了对调用者透明化,隐藏对象的属性和实现细节,仅对外提供公共访问方式。栗子:1、你藏了私房钱,存到沙发下,没让你媳妇儿知道。 (此时你具备了消费能力)2、你媳妇儿想吃火锅,你用提前在沙发下拿的50

2022-02-09 21:22:30 585

原创 (1)JavaSE---类和对象、this、static

1. 类和对象1.1 基本概念类是指共性的概念,而对象指的是一个具体的、可以使⽤用的事物。首先产生类(类是⽣生产对象的蓝图),而后才可以产⽣生对象。对象的所有行行为,一定在类中进行了完整的定义。1.2 类中的组成属性(变量,描述每个对象的具体特点)方法(操作的⾏行行为)1.3 定义和使用定义:class 类名称 { 属性1; ... 方法1() {} ...}范例例: Person类的定义class Person{ public String name; p

2022-02-08 20:53:40 575

原创 在线OJ项目

目录项目功能核心功能模块划分技术支持仿照 leetcode 的一个在线 OJ 系统.项目功能实现一个在线判题系统,用户通过浏览器获取对应题目进而编写代码并提交代码,将代码上传到后台,后台需要对提交的代码与测试用例整合并进行编译运行,将结果反馈给用户。核心功能在线编译运行题目管理模块划分该项目被划分为四大模块:oj_server模块1、提供http服务,串联试题模块和编译运行模块(1)获取题目列表(2)获取选中的题目(3)提交题目代码和题目描述,代码的编辑框试题模块

2020-08-10 18:28:34 321

原创 Linux---信号

目录1、信号的入门信号的基本概念信号的产生方式信号的注册信号的注销过程信号的捕捉处理函数的处理流程信号的捕捉流程信号的常见概念1、信号的入门1、进程能处理信号的前提------进程能识别信号。2、信号产生后,进程可能不会立即去处理信号,而是选择适当的时机。3、信号的产生对进程而言是异步的(随时可以发过来)。4、信号的处理方式: 执行默认动作、执行忽略信号、执行自定义动作。5、信号如果无法立即处理,就必须将其记录下来。信号的基本概念信号是一种软件中断,当一个进程收到一个信号时,信号就会打断

2020-07-22 14:15:59 197

原创 《计算机网络》---HTTP

HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档, 以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种 多媒体文件)的重要基础。请注意,HTTP不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。注:所谓事务(transaction)就是指一系列的信息交换,而这一系列的信息交换是一个不可分割的整体,也就是说,要么 所有的信息交换都.

2020-07-20 09:39:51 340

原创 Linux---进程间通信

目录进程间通信介绍进程间通信目的管道1、匿名管道进程间通信介绍IPC定义:IPC是intent-Process Communication的缩写,含义为进程间通信或者跨进程通信,是指两个进程之间进行数据交换的过程。进程间通信目的数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知发生了某种事件(如进程终止时要通知父进程)。进程控制:有些进程希望完全控制另一个进程的执行(如Deb

2020-07-19 14:07:44 135

原创 Linux----基础IO

目录系统文件I/O文件描述符fd重定向FILE动态库和静态库[huang@localhost libstatic]$ lsmain.c print.c print.h[huang@localhost libstatic]$ gcc -c print.c -o print.o[huang@localhost libstatic]$ lsmain.c print.c print.h print.o[huang@localhost libstatic]$ ar -rc libprint.a pr

2020-07-18 17:00:27 168

原创 文件---C语言文件操作

目录什么是文件文件名文件类型文件缓冲区文件指针文件的打开和关闭文件的顺序读写文件的随机读写文件结束的判定什么是文件磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件程序文件包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe)。数据文件文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件以下主要讨论的是数据文件。之前我们对处理数据的输

2020-07-17 22:29:54 127

原创 C++----智能指针

文章目录1、为什么需要智能指针2、智能指针的使用及原理3.1 智能指针的原理1、为什么需要智能指针#include <iostream>using namespace std;// C/C++bool Test1(){ // 成功返回true,失败返回false return false;}void Test2(){ // .. // 假设此处遇到非法情况 throw 1;}// 如果采用原生态指针(T*)管理资源,程序存在资源泄漏的风险就比较大vo

2020-06-23 14:14:34 150

原创 C++异常的处理

文章目录1、C语言传统处理错误的方式2、C++异常概念3、异常的用法3.1 异常的抛出与捕获3.2异常的重新抛出3.3异常安全3.4 异常规范4、标准库异常体系5、异常的优缺点1、C语言传统处理错误的方式2、C++异常概念3、异常的用法4、标准库异常体系5、异常的优缺点1、C语言传统处理错误的方式传统的错误处理机制:终止程序 如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。返回错误码, 缺陷:需要程序员自己去查找对应的错误。 如系统的很多库的

2020-06-22 11:12:25 257

原创 哈希---开散列

目录标题开散列开散列实现开散列扩容开散列与闭散列比较上一篇讲解了关于哈希冲突的产生及其解决方式之一的 闭散列。本篇主要讲解 开散列开散列**开散列:**开散列法又叫链地址法(开链法),首先对关键码集合用散列函数计算散列地址,具有相同地址的关键码归于同一子集合,每一个子集合称为一个桶,各个桶中的元素通过一个单链表链接起来,各链表的头结点存储在哈希表中。从上图可以看出,开散列中每个桶中放的都是发生哈希冲突的元素。开散列实现template<class V>struct HashB

2020-06-09 15:18:21 276

原创 哈希的概念及运用---闭散列

1、哈希概念在常见的搜索方式中我们通常分为,静态的和动态的。静态搜索方式:给定一段序列数据 我们通用常采用:顺序查找----- for循环遍历 ——> O(N)二分查找---- 要求:带查找的数据排列必须是有序的这些方式都是在一个固定的序列中查找动态搜索方式 :底层结构发生改变,进行增 删等操作二叉搜索树 ---- 有序或者接近有序 ----> 退化成单支树 ——>查找效率 O(N)AVL树:二叉搜索树 + 平衡因子 ----->保证树的平衡性:任意节

2020-05-28 21:03:50 244

原创 常见的排序算法--- 插入排序

1.排序的概念及其运用排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。内部排序:数...

2020-04-16 21:02:46 219

原创 LZ77文件压缩算法

LZ77压缩算法 LZ77是一种基于字典的算法,它将长字符串(也称为短语)编码成短小的标记,用小标记代替字典中的短语,从而达到压缩的目的。LZ77使用的是一个前向缓冲区和一个滑动窗口来维护字典。它首先将一部分数据载入前向缓冲区,一旦数据中的短语通过前向缓冲区,那么它将移动到滑动窗口中,并变成字典的一部分,随着滑动窗口的移动,字典中的内容也在不断的更新,也就是说它是变更新字典,边进行压...

2020-04-13 16:24:48 2257

原创 基于Huffman树的文件压缩

1、文件压缩1、什么是文件压缩? 在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和 处理效率,或按照一定的算法对数据进行重新组织,减少数据的冗余和存储的空 间 的一种技术方法。通俗来说,就是想办法,让文件变得更小(可以还原)2、问什么要对文件进行压缩?文件太大,节省空间提高数据在网络上的传输效率对数据保护---加密3、文件压缩分类无损压缩源文件...

2020-04-05 20:38:16 201

原创 Linux---进程控制

进程创建在Linux中,当你想要生成一个可执行程序时,只需要 ./程序名 就可以使这个程序跑起来,此时就创建除了一个进程。 现在来了解创建进程的一种新的方式:fork() 函数fork()函数初识在Linux中fork()函数是很重要的函数,它从已经存在的进程中,创建新的进程,新进程为子 进程,原来的进程为父进程。#include <unistd.h>pid_t fr...

2020-02-29 23:18:35 100

原创 进程地址空间

程序地址空间分布这幅图指定是内存么?实际上,这幅图指的并不是内存,为什么?#include <stdio.h>#include <unistd.h>#include <stdlib.h>int g_val = 0;int main(){ pid_t id = fork(); if(id<0) { perror("fork err...

2020-02-21 12:43:03 171

原创 环境变量

环境变量基本概念: 一般是指操作系统中用来指定操作系统运行环境的一些参数。通常具有全局性。 如:我们在编写C/C++代码的时候,再链接的时候,我们从来不知道所链接的动态静态库哪,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找环境变量的分类全局变量: 需要修改...

2020-02-20 20:11:01 3120

原创 进程的优先级

进程的优先级1、基本概念 cpu资源分配的优先顺序,就是指进程的优先权(priority)。 优先权高的进程有优先执行的权利。配置进程优先权对多任务环境的Linux很有用。 还可以将进程安排到指定的CPU上,将不重要进程安排到某个CPU,可改善系统整体性能。2、查看系统进程 输入 ps -l 命令 UID: 代表执行者身份PID: 代表这个进程代号...

2020-02-20 15:03:50 1473

原创 Linux进程基本概念

操作系统概念任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括: 内核(进程管理,内存管理,文件管理,驱动管理) 其他程序(例如函数库,shell程序等等) 设计OS的目的 与硬件交互,管理所有的软硬件资源 为用户程序(应用程序)提供一个良好的执行环境 定位在整个计算机软硬件架构中,操作系统的定位是: 一款纯正的“搞管理”的软件 如何理...

2020-02-20 13:49:10 155

原创 Linux下的基础开发工具

软件包管理器 yum编辑器 vim编译器 gcc调试器 gdb工程管理工具 make/Makefile包管理器: yum 命令行版本的应用商店对应的服务器叫做软件源管理员才能安装软件linux 下软件安装方式:源码安装: 手动安装一个个依赖关系库 --- 极其复杂工具安装:自动检测解决依赖关系库的安装 yum查看能够安装那些软件包 yum list|grep...

2019-12-29 15:04:00 283

原创 Linux下的基础命令

目录相关的命令1.ls语法: ls [选项][目录或文件]**功能:**对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。如:ls –d 指定目录-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件-k 以 k 字节...

2019-12-23 11:32:17 129

原创 c++ (十二、多态)

1. 多态的概念及实现2. 抽象类3. C++11中的 override 和 final4. 多态的原理5. 单继承和多继承关系中的虚函数表前言 本节课件中的代码及解释都是在vs20131、多态的概念1.1什么是多态通俗来说,就是多种形态,具体点就是去完成某个行为, 当不同的对象去完成时会产生出不同 的状态。1.2多态的分类:静态多态(静态绑定||早绑定):在编译阶段确定函数...

2019-12-11 10:08:39 149

原创 输出一个整数表示所有队伍的水平值总和最大值

链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue=1&page=1&onlyReference=false来源:牛客网牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,...

2019-11-18 23:50:09 525

原创 C++(十一、继承---图解易理解)

C++中的多态1、多态的概念2、多态的定义及实现3、抽象类4、c++中的override 和 final5、多态的原理6、单继承和多继承关系中的虚函数表——————————————————————————————前言需要声明的,本文代码及解释都是在vs2013下的x86程序中,涉及的指针都是4bytes。如果要其他 平台下,部分代码需要改动。比如:如果是x64程序,则需要考虑指针...

2019-11-13 17:05:56 227

原创 C++(十、复杂的菱形继承------理解全靠图)

、复杂的菱形继承多继承:一个子类有两个或以上直接父类注意:每个基类前必须给出继承权限,否则就是默认的继承权限。class B{public: int _b;};class C1 : public B{public: int _c1;};class C2 : public B{public: int _c2;};class D : public C1, ...

2019-11-10 21:38:59 148

原创 C++(九、继承)

c++中的继承1、继承的概念和定义2、基类和派生类对象的赋值转换3、继承中的作用域4、派生类的默认成员函数5、继承与友元6、继承与静态成员7、复杂的菱形继承——————————————————————————————1、继承的概念和定义继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增...

2019-11-10 21:22:34 175

原创 C++(八、list模拟实现)

list的介绍及使用list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向 其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高 效。与其他的序列式容器相比(a...

2019-10-23 19:59:25 110

原创 C++(七、vector 模拟实现)

vector的介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素 进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自 动处理。本质讲,vector使用动态分配数组来存储它的元素。当新元素插入时候,这个数组需要被重新分配大小 为了增加存储空间。其做法是,分...

2019-10-16 22:42:51 131

原创 c++ (六、string类的模拟实现)

1、 C语言中的字符串C语言中,字符串是以’\0’结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数, 但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可 能还会越界访问字符串是表示字符序列的类标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作 单字节字符字符串的设计特性。.st...

2019-10-15 11:29:20 110

原创 C++(五、类与对象 下)

一、初始化列表在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值。构造 函数体中的语句只能将其称作为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内 可以多次赋值。类中包含以下成员,必须放在初始化列表位置进行初始化:1、引用成员变量 2、const成员变量 3、类类型成员(该类没有默认构造函数class Data{ //初始化列表...

2019-10-08 12:09:44 78

原创 c++(四、类与对象 中)

所有变量未给值时,都会被栈空间0xcc 初始化d.SetDate(2019,9,19);对于Date类,可以通过SetDate公有的方法给对象设置内容,但是如果每次创建对象都调用该方法设置信息,未免有点麻烦,那能否在对象创建时,就将信息设置进去呢?构造函数是一个特殊的成员函数,名字与类名相同, 构造函数不开辟空间创建类类型对象时由编译器自动调用,保证每个数据成员都有 一个合适的初始值,并...

2019-10-08 12:02:01 97

原创 C++(三、类与对象 上)

1、类的引入class为定义类的关键字,ClassName为类的名字,{ }中为类的主体,注意类定义结束时后面分号。类中的元素称为类的成员:类中的数据称为类的属性或者成员变量; 类中的函数称为类的方法或者成员函数。类的两种定义方式:(1) 将类的成员函数 定义和声明放在一起在工程中,不会将函数的申明和定义全部都在类里面,防止头文件包含多次时,被重复定义;struct Stu{ ...

2019-10-08 11:54:24 151

空空如也

空空如也

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

TA关注的人

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