自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Unix I/O与Java I/O

文章目录背景Unix I/O模型阻塞I/O模型非阻塞I/O模型I/O多路复用模型I/O多路复用技术信号驱动I/O模型异步I/O模型五种I/O模型的比较Java IO模型IO(面向流的,也叫BIO)NIOBufferChannelSelectorNIO2(AIO)Netty背景Unix I/O模型I/O模型一共有哪些策略,JavaI/O是对这些策略的具体实现阻塞I/O模型第一阶段copy阻塞,第二阶段copy阻塞;进程在整个recvfrom期间阻塞,即recvfrom没完成前,进程都处

2021-08-30 14:43:38 247 5

原创 各题型归纳总结

两种代码模板代码1代码1:在循环中查找元素适合知道num[mid]等于什么,才能得到结果的情况public class Solution { // 「力扣」第 704 题:二分查找 public int search(int[] nums, int target) { int len = nums.length; int left = 0; int right = len - 1; // 目标元素可能存

2021-08-24 23:34:00 276

原创 背包问题

0-1背包问题优化空间。

2021-08-06 13:02:59 221

原创 LeetCode刷题记录

DFS/BFS365. 水壶问题参考关键是下面6个状态的列出可以看出,可用搜索算法,DFS或BFS;在「树」上的「深度优先遍历」就是「回溯算法」,在「图」上的「深度优先遍历」是「flood fill」 算法,深搜比较节约空间。这道题由于就是要找到一个符合题意的状态,我们用广搜就好了。这是因为广搜有个性质,一层一层像水波纹一样扩散,路径最短。另外,在每一步搜索时,我们会依次尝试所有的操作,递归地搜索下去。这会导致超时,因此需要剪枝;因此我们还需要使用一个哈希集合(HashSet)存储所有已

2021-08-04 22:59:16 165

原创 MySQL高级

文章目录索引索引概述索引的优劣势索引的结构索引索引概述索引的优劣势索引的结构

2021-07-15 19:44:14 230

原创 stream

文章目录概述为什么要使用Stream API什么是 StreamStream 的操作三个步骤创建 StreamStream 的中间操作筛选与切片映 射常用函数是接口排序Stream 的终止操作匹配与查找归约收集概述为什么要使用Stream API关系型数据库 & 非关系型数据库一、什么是关系型数据库什么是 StreamStream 的操作三个步骤创建 StreamStream 的中间操作执行终止操作,才执行中间操作,中间操作操作完,创建的stream不

2021-07-01 20:20:16 85

原创 JVM--Java虚拟机

前言先给大家看几道面试题?1、请你谈谈你对JVM的理解?Java8的虚拟机有什么更新?2、什么是OOM?什么是StackOverFlowError?有哪些方法分析?3、JVM的常用参数调优你知道哪些?4、内存快照抓取和MAT分析DUMP文件知道吗?5、堆里面的分区:Eden,Survival from to,老年代,各自的特点?6、GC的三种收集方法:标记清除,标记整理,复制算法的原理与特点,分别用在什么地方?唠叨几句每一个学习JVM的人,都渴望成功。每一个Java开发人员的终极目

2021-06-07 11:05:59 397 8

原创 Java编程刷题常用

类型变换数据结构堆Java 中提供了现成的类 PriorityQueue,默认是小根堆,实现大根堆需要重写一下比较器。PriorityQueue<Integer> pq = new PriorityQueue<>((v1 , v2) -> v2 - v1);

2021-05-29 22:19:15 1080

原创 第三章、内存管理和虚拟内存

3.1.1内存的基础知识内存概念、作用概念作用软件一般存放在外存或辅存里,像电脑的软件一般存储在硬盘里,但是硬盘是一种慢速设备,而CPU是一种超快速设备,如果CPU要处理的数据直接从外存中存取得话,显然CPU会有大量的时间在等待外存的存取操作完成,显然对CPU是浪费的。所以就引入了内存,它是一种更快速的存取数据的硬件,我们把需要运行的程序,数据先放入内存中,然后CPU从内存中存取数据,这样就可以缓和CPU和外存之间存取速度的矛盾了。内存地址从写程序到程序运行装入【略,详

2021-05-28 22:30:53 192

原创 第二章(二)、管程、死锁

2.3.11 管程引入管程在用信号量机制的P、V操作实现进程的同步时,会出现编写困难,容易出错的问题管程的定义和基本特征管程和之前的P、V操作一样,也是实现进程的同步和互斥的。拓展1【具体看视频】拓展22.4.1 死锁死锁死锁、饥饿、死循环的区别死锁产生的必要条件出现一个神秘人,他能提供一只筷子,即,同类资源大于1 , 就未必发生死锁了。...

2021-05-27 18:43:04 163 2

原创 java中两个变量,值的交换问题

例子一public class MyTest { public static void main(String[] args) { int a= 4; int b = 5; System.out.println("交换之前a:"+a+" 交换之前b:"+b); swap(a,b); System.out.print("交换之后a:"+a+" 交换之后b:"+b); } public static void.

2021-05-23 23:08:59 281

原创 Markdown文件关机没保存,怎么恢复

1、2、点开找到你想恢复的时间段的文件。

2021-05-16 20:59:02 2449 4

原创 SMBMS超市订单管理系统

文章目录1- 45 创建项目包结构1- 45 创建项目包结构

2021-05-08 21:30:54 7115 43

原创 OpenCV摄像头读取视频、存取处理后视频的代码流程

例子:摄像头实时检测圆形物体的中心(用的霍夫圆变换)#include <opencv2\opencv.hpp> using namespace std;using namespace cv;int main(){ //【1】从摄像头读入视频 VideoCapture capture(1); //=============存取视频===================== //int w = capture.get(CV_CAP_PROP_FRAME_WIDTH); /.

2021-04-28 10:49:49 187 2

原创 leetcode各类题型记录

文章目录双指针(三指针)11. 盛最多水的容器15. 三数之和17. 电话号码的字母组合回溯(用StringBuilder,最后需要撤销,即回溯)DFS(用String,最后不需要撤销,即DFS)双指针(三指针)11. 盛最多水的容器参考15. 三数之和参考17. 电话号码的字母组合参考模式识别关键字:所有组合首先想到穷举,需要搜索算法-----回溯回溯(用StringBuilder,最后需要撤销,即回溯)class Solution { ArrayList<

2021-04-27 23:02:39 1461 2

原创 重定向和请求转发的区别、Cookie和Session

请求转发A想连接C获取资源,但A只能连接B,而B可以连接C,则B连接C,C将资源返回给B,B在转换给A。这样A只面向了B,从来没有连接C,所以路径不会改变重定向A连接B拿某个资源,但B没有,告诉A C有,则A再连接C。A从连接B到连接C,所以路径改变总结相同点页面都会实现跳转不同点请求转发的时候,url不会产生变化重定向时候,url会发生变化;...

2021-04-27 16:09:10 411 3

原创 Typore中的图片如何永久保存

1、2、3、

2021-04-24 11:34:53 1677 1

原创 第二章(一) 进程、线程

2.1.1 进程的定义、组成、组织方式、特征进程的定义进程的组成总进程的组织注:链接方式和索引方式相似,区别只是PCB的组织形式是队列还是索引表。链接方式索引方式进程的特征总...

2021-04-19 16:38:22 215 2

原创 第一章 概述、基础知识

文章目录1.1.1 操作系统的概念、功能和目标计算机系统的层次结构操作系统的定义操作系统的功能和目标①作为系统资源的管理者②作为用户和计算机硬件之间的接口(自下向上)③作为最接近硬件的层次(自上向下)总结1.1.1 操作系统的概念、功能和目标计算机系统的层次结构操作系统的定义操作系统的功能和目标以下面3个问题展开①作为系统资源的管理者②作为用户和计算机硬件之间的接口(自下向上)③作为最接近硬件的层次(自上向下)总结红框内的是要学习的...

2021-04-08 22:03:19 127

原创 反射

Java反射机制概述反射可以调用任意一个对象的成员变量和方法,包括私有的。反射相关的主要API理解Class类并获取Class的实例一个类对应一个.class文件理解Class类Class 类是描述类的类。此类是Java反射的源头,实际上所谓反射从程序的运行结果来看也很好理解,即:可以通过对象反射求出类的名称。【如下图】Class类特点Class类的常用方法获取Class类的实例【重点】方式3运用最多类的加载与ClassLoader的理解Class

2021-04-08 21:41:50 117

原创 网络编程

文章目录概述如何实现网络中的主机互相通信通信要素1:IP和端口号IPInetAdress类InetAdress 代码示例端口号通信要素2:网络通信协议套接字(Socket)TCP网络编程上一章的IO流可看做本地IO,本地之间数据的传输;这一章网络编程可看做网络中的IO:网络中数据的传输。概述如何实现网络中的主机互相通信通信要素1:IP和端口号IP本地回环地址(hostAddress):127.0.0.1 主机名(hostName):localhostJava是面向对象的,所以

2021-04-07 22:15:37 59

原创 IO流(序列化)

File类的使用概述IO流的引出和File类的作用3 :IO流的引出4 : File类的作用常用构造器输出路径分隔符常用方法File类的获取功能list()和listFiles()的区别list():返回的是String,输出的是文件和目录的名称,不包含路径;listFiles():返回的是File类,输出的是文件和目录的名称,包含路径;输出File类默认调用重写的toString()方法。例如:list()的输出listFiles()的输出File

2021-04-05 20:37:26 337 4

原创 泛型

什么是泛型泛型,即 指定容器里装什么类型的数据。例子Map<String,Integer> map = new HashMap<String,Integer>();map.put("Tom1",34);map.put("Tom2",44);map.put("Tom3",33);map.put("Tom4",32);Set<Entry<String,Integer>> entrySet = map.entrySet();Iterato

2021-04-01 22:11:57 56

原创 红黑树

红黑树的引出二分查找引出二叉搜索树二分查找时间复杂度:O(logN)此时查找效率O(N)怎么解决二叉搜索树退化成线性链表的问题----------------AVLAVL(平衡二叉树)从AVL引出红黑树红黑树(二叉搜索树的一个分支)概念、性质红黑树的查找(和普通二叉树的查找一样)红黑树的插入...

2021-04-01 11:20:16 85

原创 OJ在线编程常见输入输出练习,hasNext()和hasNextLine()方法的区别

参考hasnext()和hasnextLine()、NextLine().split(“某字符”)hasnext():当扫描到一个输入时为真;hasNextLine():当扫描到一行时为真;next():输入一个String;NextLine():输入一行,形式为String,与hasnextLine()配合使用;split(""):split("")方法中的参数必须用双引号包住,分割后得到得是String[]。输入描述:输入数据有多组, 每行表示一组输入数据。每行不定有n个整数,

2021-03-30 20:23:30 357

原创 枚举类&注解

文章目录枚举类(待。。。)注解概念用法及示例一:生成文档相关的注解示例二:在编译时进行格式检查(JDK内置的三个基本注解)示例三:跟踪代码依赖性,实现替代配置文件功能自定义 Annotation【使用频率低,待。。。】JDK 中的元注解概念@Retention:@Target:@Documented: 、@Inherited:【使用频率低】枚举类(待。。。)注解概念用法及示例一:生成文档相关的注解示例二:在编译时进行格式检查(JDK内置的三个基本注解)此时,不加注解,也不产生错误,只是不

2021-03-30 14:37:38 60

原创 Java面向对象OOP(下)

文章目录关键字:static为什么有staticstatic关键字的使用静态属性类变量 vs 实例变量内存解析静态方法属性和方法什么时候该用static单例 (Singleton)设计模式(应用关键字:static)单例设计模式-饿汉式关键字:static为什么有staticstatic关键字的使用静态属性属性 按 是否使用static分类:①static 修饰的属性 :静态变量 或 类变量,从名字类变量可看出,其是属于类的,可不创建对象,直接用类调用②非static 修饰的属性:非

2021-03-25 15:30:42 121

原创 Object 类及其常用方法equals()、toString() 和 包装类

文章目录Object 类==操作符与equals方法面试题:==和equals的区别toString() 方法Object 类==操作符与equals方法注:面试题:==和equals的区别toString() 方法toString()方法在Object类中的定义,其返回值是String类型,返回类名和它的引用地址。package Demo05;public class AnimalTest { public static void main(String[] a

2021-03-23 11:14:19 147 1

原创 排序算法模板

快速排序代码: void qSort(int[] arr , int low , int high){ int pivot;//pivot:枢轴 if(low < high){ pivot = partition(arr , low , high);//partition:划分 qSort(arr , low , pivot - 1); qSor

2021-03-20 11:24:27 153

原创 集合

文章目录集合和数组的对比数组集合集合的分类Collection 接口List接口List接口的实现类List接口的常用方法Set 接口集合和数组的对比Java容器:数组 + 集合数组集合解决数组的弊端集合的分类Collection 接口List接口元素有序:指的是添加的元素在内存中,是按顺序存储的。所以该结构有索引,元素可用索引表示。元素无序:指的是添加的元素在内存中,不是按顺序存储的,每添加一个元素,这个元素存储在内存中的位置是随机的,但添加后的元素位置就固定了。所以该

2021-03-13 22:11:04 131 2

原创 常用类String、时间类、System、Math、BigInteger和BigDecimal

常用类

2021-03-13 20:24:43 189

原创 网络编程

网络编程的目的:传播交流信息,数据交换、通信。网络通信的要素(要想达到 网络编程的目的 需要什么)知道对方的位置:IP和端口号规则:网络通信协议TCP/UDPjava万物皆对象有ip相关的类,直接进行IP相关的操作有TCP/IP相关的类IPIP地址:---->对应的类:InetAddress唯一定位一台计算机127.0.0.1:本机localhostIP地址分类按地址分类1、ipv4例如:127.0.0.14个字节,每个字节范围0~2552、ipv6

2021-03-02 11:24:51 61

原创 生产者消费者问题

生产者消费者问题线程通信的一个例子(一个应用场景)解决线程通信的方法解决线程通信的方法1 :管程法代码:package Demo04;//测试生产者消费者模式--》管程法:利用缓冲区解决。//需要生产者productor、消费者consumer、产品、缓冲区四个对象public class TestPC { public static void main(String[] args) { SynContainer container = new SynCon

2021-03-01 13:26:42 93

原创 线程

线程的创建1、继承thread类(重点)2、实现Runnable接口【推荐使用这种方法一位Java单继承的局限性】3、实现callable接口(了解)lamda表达式并发静态代理模式

2021-02-22 21:54:57 5654 6

原创 Java异常

什么是异常异常的简单分类异常的体系结构ErrorException捕获和抛出异常

2021-02-02 14:52:17 62

原创 Java面向对象OOP(上)

面向过程和面向对象面向过程:可以具体的流程面向对象:可以看做制作的框架类与对象的关系对象是类的实例化创建与初始化对象创建对象用new构造器的作用是初始化对象总:new的本质是在调用构造器,初始化对象的值;类的实例化过程,就是创建对象的过程,使用new关键字创建对象;构造器 就是 C++中的构造函数,用来初始化对象;在用new实例化对象是,构造器同时被调用;...

2021-02-02 14:13:12 111

原创 Java数组

数组的声明创建 //数组的声明 dataType[] arrayName; //创建数组前必须先声明数组; //创建数组,Java语法使用new操作符来创建数组; arrayName = new dataType[arraySize]; //或者声明和创建一起; dataType[] arrayName = new dataType[arraySize]; eg:

2021-01-30 21:41:02 81

原创 Java方法

方法的定义注:Java中都是值传递,没有引用传递。方法的重载可变参数注:可变参数实际是一个数组。所以传入的实参可以是一个个值,也可以是数组public class HelloWord { public static void main(String[] args) { HelloWord A = new HelloWord(); //可变参数实际是一个数组。所以传入的实参可以是一个个值,也可以是数组 A.test(1,2);

2021-01-29 22:05:33 66

原创 Java流程控制

Scanner//从键盘接收数据 Scanner scanner = new Scanner(System.in); //等待输入 if(scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println(str); } //属于IO流的类(即输入输出)要用完就关闭,不然会一直占用资源;

2021-01-29 17:32:00 49

原创 二叉搜索树--JZ26、面试题54、68

JZ26 二叉搜索树与双向链表(该题采用LeetCode上的形式)面试题54 二叉搜索树的第k大节点题目:给定一棵二叉搜索树,请找出其中第k大的节点。题解:看到二叉搜索树,就应想到二叉搜索树的中序遍历为 递增序列。则,二叉搜索树的 中序遍历倒序 为 递减序列 ;因此,求 “二叉搜索树第 k大的节点” 可转化为求 “此树的中序遍历倒序的第 k个节点”。# 打印中序遍历// 中序遍历模板void dfs(TreeNode* root) { if(root == null) retu

2021-01-29 13:06:33 97

空空如也

空空如也

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

TA关注的人

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