自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 链接

Java学习笔记链接编译系统静态链接目标文件动态链接本文转载自计算机操作系统之链接,如有侵权,联系博主速删!链接编译系统以下是一个 hello.c 程序:#include <stdio.h>int main(){ printf("hello, world\n"); return 0;}在 Unix 系统上,由编译器把源文件转换为目标文件。gcc -o hello hello.c这个过程大致如下:预处理阶段: 处理以 # 开头的预处理命令;编译阶段

2020-09-27 17:11:01 113

转载 设备管理

Java学习笔记设备管理磁盘结构磁盘调度算法本文转载自计算机操作系统之设备管理,如有侵权,联系博主速删!设备管理磁盘结构盘面(Platter):一个磁盘有多个盘面;磁道(Track):盘面上的圆形带状区域,一个盘面可以有多个磁道;扇区(Track Sector):磁道上的一个弧段,一个磁道可以有多个扇区,它是最小的物理储存单位,目前主要有 512 bytes 与 4 K 两种大小;磁头(Head):与盘面非常接近,能够将盘面上的磁场转换为电信号(读),或者将电信号转换为盘面的磁场(写);制动

2020-09-26 23:10:32 113

转载 内存管理

Java学习笔记内存管理虚拟内存分页系统地址映射页面置换算法1. 最佳2. 最近最久未使用3. 最近未使用4. 先进先出5. 第二次机会算法分段段页式本文转载自计算机操作系统之内存管理,如有侵权,联系博主速删!内存管理虚拟内存虚拟内存的目的是为了让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。为了更好的管理内存,操作系统将内存抽象成地址空间。每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必

2020-09-26 20:50:01 139

转载 死锁

Java学习笔记死锁必要条件处理方法鸵鸟策略死锁检测与死锁恢复本文转载自计算机操作系统之死锁,如有侵权,联系博主速删!死锁必要条件互斥: 每个资源要么已经分配给了一个进程,要么就是可用的。占有和等待: 已经得到了某个资源的进程可以再请求新的资源。不可抢占: 已经分配给一个进程的资源不能强制性地被抢占,它只能被占有它的进程显式地释放。环路等待: 有两个或者两个以上的进程组成一条环路,该环路中的每个进程都在等待下一个进程所占有的资源。处理方法主要有以下四种方法:1、鸵鸟策略2、死锁检测与死

2020-09-26 20:34:04 130

转载 进程管理

Java学习笔记进程管理一、进程与线程二、进程状态的切换进程管理一、进程与线程1、进程:进程是资源分配的基本单位。进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。2、线程:线程是独立调度的基本单位。一个进程中可以有多个线程,它们共享进程资源。QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事

2020-09-25 23:55:05 213

转载 基本特征

Java学习笔记基本特征1、并发2、共享3、虚拟4、异步基本功能1、进程管理2、内存管理3、文件管理4、设备管理系统调用大内核和微内核1、大内核2、微内核中断分类1、外中断2、异常3、陷入基本特征基本特征共分为四种,第一:并发;第二:共享;第三:虚拟;第四:异步。下面分别介绍:1、并发并发在宏观上是指在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。2、共享共享是指系统

2020-09-25 22:56:40 685

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT100142、环形链表 IILeetcode刷题经验热题HOT100142、环形链表 II解题思路:该题其实可以直接采用哈希表去存储这些数字,若发现哈希表里已有这个元素,则表明有环,为了降低空间复杂度,这里采用双指针的思想去进行求解,即快指针与慢指针,为了方便,这里直接借鉴官方提供的思路与算法:时间复杂度:O(N)O(N)O(N),这里的NNN指的是链表的总节点个数;空间复杂度:O(1)O(1)O(1),由于采用的是双指针,故只需要常数级

2020-08-06 15:30:50 85

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT100141、环形链表Leetcode刷题经验热题HOT100141、环形链表解题思路:这题比较简单,可以直接采用哈希表去存储这些数字,若发现哈希表里已有这个元素,则表明有环,为了降低空间复杂度,这里采用双指针的思想去进行求解,即快指针与慢指针,为了方便,这里直接借鉴官方提供的思路与算法:public class Solution { public boolean hasCycle(ListNode head) {

2020-08-06 15:00:42 91

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT100139、单词拆分Leetcode刷题经验热题HOT100139、单词拆分解题思路:这里直接借鉴官方提供的思路与算法:时间复杂度:O(N2)O(N^2)O(N2),其中 NNN 是 字符串的长度,又由于需要枚举,此外,哈希表判断一个字符串是否在给定的字符串列表里需要O(1)O(1)O(1)时间,故总时间复杂度为O(N2)O(N^2)O(N2);空间复杂度:O(N)O(N)O(N),其中 NNN 是 字符串的长度,因为我们需要O(N)O(

2020-08-06 11:29:42 122

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT100136、只出现一次的数字Leetcode刷题经验热题HOT100136、只出现一次的数字该题对时间复杂度和空间复杂度都有一定的限制,故不能使用下面三种方法:上述三种解法都需要额外使用 O(n)O(n)O(n)的空间,其中 nnn 是数组长度。如果要求使用线性时间复杂度和常数空间复杂度,上述三种解法显然都不满足要求。解题思路:这里可以采用位运算(异或运算)的思路与算法:因为异或运算具有如下的三个性质:那么我们根据这三个性质,可以

2020-08-06 09:16:02 91

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10049、字母异位词分组Leetcode刷题经验热题HOT10049、字母异位词分组该题可以借用 HashMapHashMapHashMap 的方式对字符串数组中的每一个字符串进行哈希映射,在保证每一个字符串的字符出现次数相等即可。解题思路:这里直接借鉴官方提供的思路与算法:我们可以将每个字符串 sss 转换为字符数 countcountcount,由26个非负整数组成,表示 aaa,bbb,ccc 的数量等。我们使用这些计数作为哈希映射

2020-07-29 22:28:20 113

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10048、旋转图像Leetcode刷题经验热题HOT10048、旋转图像该题可以比较简单,仔细观察给定的矩阵不难发现,只要先对矩阵进行转置,再对每一行元素进行翻转,便可得到顺时针旋转 909090 度后的新矩阵。解题思路:先转置,后对每行元素进行翻转即可。时间复杂度:相当于进行两次循环,每个循环均由两个for循环构成,那么它的时间复杂度可以认为是 O(N2)O(N^2)O(N2);而空间复杂度:由于是原地旋转,故空间复杂度仅仅为 O(1)

2020-07-29 21:10:39 348

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10046、全排列Leetcode刷题经验热题HOT10046、全排列该题可以很明显地看出来是使用回溯 + 深度优先搜索,使用深度优先搜索的目的是为了更好地使用栈,例如其中存储路径的 pathpathpath 。解题思路:这里直接借鉴官网的解题思路:需要注意的是为了节省空间,这里采用动态维护数组的方法,而不采用标记数组的形式。class Solution { public void backtrack(int n,

2020-07-29 20:24:01 135

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10039、组合总和Leetcode刷题经验热题HOT10039、组合总和该题可以很轻易地看出来是使用回溯 + 排序,排序是为了更好地剪枝。解题思路:假设输入为candidates=[2,3,6,7],target=7。candidates=[2,3,6,7],target=7。candidates=[2,3,6,7],target=7。依次拿出candidatescandidatescandidates数组中的元素,使之成为候选元素,例如找

2020-07-28 21:17:56 120

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10017、电话号码的字母组合Leetcode刷题经验热题HOT10017、电话号码的字母组合该题比较简单,直接回溯 + 递归 。回溯是一种通过穷举所有可能情况来找到所有解的算法。如果一个候选解最后被发现并不是可行解,回溯算法会舍弃它,并在前面的一些步骤做出一些修改,并重新尝试找到可行解。对于该题,用不到回溯的剪枝。解题思路:这里直接引用官方的动图解释说明解题思路:时间复杂度:O(3n∗4m)O(3^n*4^m)O(3n∗4m),其中 N

2020-07-23 14:38:17 70

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10015、三数之和Leetcode刷题经验热题HOT10015、三数之和由于题目中要求答案中不可以包含重复的三元组,那么我们必须进行去重,这里采用排序先对数据进行排序,以方便去重;另外,由于该题是求三数之和,如果再用HashMap求,不会那么方便,那么这里采用双指针的方式进行查找,会方便很多。简言而知,就是排序 + 双指针 。解题思路:先确定下第一个数,然后再从数组中其余元素中挑出两个元素,使得这两个元素之和等于事先确定下来的第一个数的负数。在

2020-07-23 10:39:39 95

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10011、盛最多水的容器Leetcode刷题经验热题HOT10011、盛最多水的容器该题很明显可以利用双指针的方法去进行求解,仔细分析题目不难发现,容器容水量的大小===两指针指向的数字中较小的值∗*∗两指针间的距离。解题思路:这里直接借鉴官方提供的解题思路:时间复杂度:O(n)O(n)O(n),双指针总计最多遍历整个数组一次,而它的空间复杂度亦为:O(1)O(1)O(1),即只需要额外的常数级别的空间。class Solution

2020-07-22 23:12:42 93

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT1005、最长回文子串Leetcode刷题经验热题HOT1005、最长回文子串首先,搞清楚回文串的概念:如果它是回文串,并且长度大于 2,那么将它首尾的两个字母去除之后,它仍然是个回文串。解题思路:这里直接借鉴官方提供的解题思路:时间复杂度:O(n2)O(n^2)O(n2),其中 nnn是字符串 的长度,每个状态在进行转移时的时间复杂度为 O(1)O(1)O(1)。而它的空间复杂度亦为:O(n2)O(n^2)O(n2),即为存储所有状态使

2020-07-22 21:24:14 113

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT10010、正则表达式匹配Leetcode刷题经验热题HOT10010、正则表达式匹配由于题目中要求的是字符串与字符规律之间的匹配,可以近似看做是两个字符串的比较,那么我们可以采用动态规划来求解此问题。解题思路:题中给出:′.′'.'′.′ 匹配任意单个字符,而′∗′'*'′∗′ 匹配零个或多个前面的那一个元素,那么,′∗′'*'′∗′ 的前面一定有字符(包括′.′'.'′.′)。这里直接借鉴官方提供的解题思路:时间复杂度:O(mn)O

2020-07-22 21:14:18 96

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT1003、 无重复字符的最长子串Leetcode刷题经验热题HOT1003、 无重复字符的最长子串判断是否有重复,直接采用哈希集合即可,并可通过add以及remove方法区更新哈希集合的元素,从而计算出无重复字符的最长子串。解题思路:假设我们选择字符串中的第 kkk 个字符作为起始位置,并且得到了不包含重复字符的最长子串的结束位置为rkr_krk​。那么当我们选择第 k+1k+1k+1个字符作为起始位置时,首先从 k+1k+1k+1 到rkr_

2020-07-21 19:55:40 127

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT1003、无重复字符的最长子串Leetcode刷题经验热题HOT1003、无重复字符的最长子串判断子串中是否含有重复字符,可以使用HashSet建立一个集合,(以空间换取时间)通过contains函数判断是否重复,并可以通过remove和add方法对各子串长度进行计算。解题思路:假设我们选择字符串中的第 k 个字符作为起始位置,并且得到了不包含重复字符的最长子串的结束位置为 rk,则当我们选择第 k+1个字符作为起始位置时,首先从 k+1到 r_

2020-07-19 22:12:22 108

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT1002、两数相加Leetcode刷题经验热题HOT1002、两数相加该题目指明,给出的是两个非空的链表,但测试样例里有空链表,表示不解。解题思路:链表问题,往往需要通过指定一个链表索引以方便查询记录链表信息。此外,该题主要有3处关键点信息需要注意:第一处:在按位依次进行相加时,需要注意,要谨记加上前一结点的进位,而且要计算并保存下一结点的进位,这里进位可以直接通过求商的形式得到。第二处:当遇到两个链表长度不一致时,需要停止短链表,并继续

2020-07-19 16:10:43 94

原创 Leetcode刷题经验

Java学习笔记Leetcode刷题经验热题HOT1001、两数之加Leetcode刷题经验热题HOT1001、两数之加由于题目已经假设每种输入只会对应一个答案,而且要求数组中同一个元素不能使用两遍,那么可以直接进行双层遍历,在第二次的遍历的时候直接在第一次遍历的数组元素下标+1即可,故很容易想到第一种思路。同时为了提高代码的可靠性,需要抛出异常。第一种解题思路:直接暴力求解,两次遍历即可,第一次遍历整数数组 nums 中的每个元素值,并分别对每个元素值再次进行遍历除该元素之外的整数数组 nums

2020-07-18 11:11:03 143

原创 数据结构与算法

Java学习笔记数据结构与算法1、常见的排序算法复杂度2、Leetcode刷题经验3、剑指Offer刷题经验4、《大话数据结构》学习总结5、《编程之美》学习总结6、《编程珠玑》学习总结7、算法的优化数据结构与算法1、常见的排序算法复杂度2、Leetcode刷题经验3、剑指Offer刷题经验4、《大话数据结构》学习总结5、《编程之美》学习总结6、《编程珠玑》学习总结7、算法的优化...

2020-07-16 18:07:44 114

原创 Java编程思想

Java学习笔记Java编程思想1、Comparable和Comparator区别2、Java中方法的参数传递机制3、Java的深拷贝及浅拷贝区别4、Java中方法重载及重写的区别(多态)5、Java中“==”和“equals”的区别6、如何判断两个对象相等7、Object类有哪些方法8、static关键字的作用9、抽象类与接口的区别10、HashMap的底层实现原理11、Java的IO及NIO(IO管理)12、String和StringBuilder、StringBuffer的区别13、生产者及消费者模式

2020-07-16 18:03:13 254

原创 JVM

Java学习笔记JVM1、JVM的内存区域2、如何判断对象已经死亡3、简述强、软、弱、虚引用4、简述垃圾收集算法及各自特点5、常见的垃圾收集器6、如何选择吞吐量优先还是响应级优先的垃圾收集器7、内存分配与回收策略(对象何时进入老年代)8、虚拟机性能监控和故障处理工具9、Class类文件的结构10、JVM中的类加载机制11、JVM中的类加载器及双亲委派模型12、JVM中静态分派和动态分派(重载和重写)13、JVM启动模式之Client和Server14、如何优化JavaGC15、JVM进程有哪些线程启动16、

2020-07-16 17:53:58 114

原创 Java并发JUC

Java学习笔记Java并发JUC1、线程的状态2、并发级别3、happen-before的原则4、创建线程的几种方式5、线程基本操作及线程协作6、volatile和synchronized的区别7、synchronized关键字8、线程同步的方式9、ConcurrentHashMap的实现原理10、多线程锁的优化11、CAS12、JUC并发包的队列及原子类13、线程池14、线程池的增长策略15、线程池的拒绝策略16、快速失败和安全失败17、AQS基本原理18、异常体系Java并发JUC1、线程的状态

2020-07-16 17:45:15 110

原创 数据库

Java学习笔记数据库1、数据库的ACID特性2、四大隔离级别及不可重复读和幻影读的出现原因3、封锁的粒度及锁的类型4、B+树的原理及其与其它查找树的比较5、B+树索引和Hash索引的比较(数据结构角度)6、MySQL索引(逻辑角度)7、MySQL优化8、InnoDB及MyISAM比较9、聚集索引及非聚集索引(物理角度)10、水平切分及垂直切分11、主从复制原理、作用及其实现12、数据库中char及varchar的区别13、数据库的热备份及冷备份14、红黑树及跳表15、数据库视图及存储过程16、数据库操作(

2020-07-16 17:37:33 76

原创 Redis

Java学习笔记1、使用Redis的原因及其简述2、为什么说Redis的速度更快,性能更高3、Redis的5种数据类型及8大数据结构4、Redis中过期策略及缓存淘汰机制5、Redis中持久化机制6、Redis集群的主从复制7、缓存雪崩及缓存穿透问题的解决方案8、缓存和数据库的数据一致性问题1、使用Redis的原因及其简述2、为什么说Redis的速度更快,性能更高3、Redis的5种数据类型及8大数据结构4、Redis中过期策略及缓存淘汰机制5、Redis中持久化机制6、Redis集群的主从复制

2020-07-16 17:23:02 68

原创 计算机网络

Java学习笔记计算机网络1、计算机网络分层2、Tcp与Udp的区别3、Tcp头部结构4、IP头部结构5、Tcp的三次握手及四次挥手6、Tcp协议7、Dns域名解析8、Http报文结构及状态码9、Get与Post的比较10、Cookie的作用、安全性以及与Session的比较11、短连接、长连接、流水线12、Http的安全性问题13、Http与Ftp的异同点14、输入网址后发生的一系列动作分析15、大数据中涉及到的心跳机制计算机网络1、计算机网络分层2、Tcp与Udp的区别3、Tcp头部结构4、I

2020-07-16 17:17:11 81

原创 操作系统

Java学习笔记操作系统1、进程、线程的区别2、进程间通信方式3、进程调度算法4、死锁及处理方法5、内存管理6、IO管理操作系统1、进程、线程的区别2、进程间通信方式3、进程调度算法4、死锁及处理方法5、内存管理6、IO管理...

2020-07-16 17:08:58 67

原创 Linux

Java学习笔记Linux1、文件系统基本原理2、硬链接与软链接的区别3、僵尸进程与孤儿进程的区别4、常用指令Linux1、文件系统基本原理2、硬链接与软链接的区别3、僵尸进程与孤儿进程的区别4、常用指令...

2020-07-16 17:05:47 75

原创 设计模式

Java学习笔记设计模式1、设计模式总述2、模板方法模式3、外观设计模式4、适配器设计模式5、单例设计模式6、装饰设计模式7、观察者设计模式8、责任链设计模式9、Java设计模式之动态代理设计模式1、设计模式总述2、模板方法模式3、外观设计模式4、适配器设计模式5、单例设计模式6、装饰设计模式7、观察者设计模式8、责任链设计模式9、Java设计模式之动态代理...

2020-07-16 17:02:47 58

原创 Spring

Java学习笔记Spring1、简述Spring2、简述Spring bean3、简述Spring IOC4、简述Spring AOP5、简述Spring MVC流程6、简述Spring事务实现原理7、简述Spring中常用的设计模式Spring1、简述Spring2、简述Spring bean3、简述Spring IOC4、简述Spring AOP5、简述Spring MVC流程6、简述Spring事务实现原理7、简述Spring中常用的设计模式...

2020-07-16 16:56:36 58

原创 Java Web

Java学习笔记Java Web1、Html2、Junit单元测试3、枚举类4、Web静态资源以及动态资源5、Http协议连接详细过程6、Servlet7、Cookie8、Session9、数据库10、Jdbc11、磁盘I/O工作机制12、网络I/O工作机制13、JavacJava Web1、Html2、Junit单元测试3、枚举类4、Web静态资源以及动态资源5、Http协议连接详细过程6、Servlet7、Cookie8、Session9、数据库10、Jdbc11、磁盘I/O工作

2020-07-16 16:50:47 74

原创 Java基础语法

Java学习笔记Java基础语法1、运算符的优先级2、代码点以及代码代码单元3、栈内存4、堆内存5、类的概念6、构造函数7、关键字8、继承9、抽象类10、接口11、抽象类与接口的区别12、多态13、内部类14、异常15、包16、单例设计模式17、多线程18、String类19、StringBuffer类20、基本数据类型对象包装类21、集合22、其他API23、IO流24、网络编程25、反射26、正则表达式Java基础语法这里主要是针对常用的Java基础语法知识点进行总结! 如有错误,请及时联系博主,谢

2020-07-16 16:21:02 158

空空如也

空空如也

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

TA关注的人

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