自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 配置RabbitMq让其支持Web端远程登录

打开rabbitMq安装目录:cd /etc/rabbitmq/在此目录下创建一个名为 rabbitmq_config的配置文件:vim rabbitmq_config添加配置内容:[{rabbit,[{loopback_users, []}]}]. 注:后面的点别忘记加wq退出并保存

2022-05-31 18:06:55 369

原创 Java并发编程实战——显示锁

显示锁1.1 Lock与ReentrantLocksynchronized 的局限性 与 Lock 的优点内置锁的局限性:1、无法中断一个正在等待获取锁的线程; 2. 无法在请求获取一个锁时无限地等待下去?内置锁的好处:与异常处理操作实现了很好的交互,当占有锁线程执行发生异常,此时JVM会让线程自动释放锁;而Lock的加锁和释放锁都需要手动执行,并且需要考虑抛出异常的情况,通常在finally代码块中释放锁。ReentrantLock锁更灵活,用途更广泛;...

2022-05-13 10:33:00 196

原创 深入理解java虚拟机-读书笔记

运行时数据区域程序计数器线程私有的内存区域,记录的是正在执行的虚拟机字节码指令的地址,通过改变程序计数器的值来选取下一条需要执行的字节码指令。分支,循环、跳转、异常处理、线程恢复等基础功能都需要依赖程序计数器来完成。唯一不会出现 OutOfMemoryError 的内存区域。Java虚拟机栈线程私有,生命周期和线程一致描述的是java方法执行的内存模型,即栈帧;方法在执行时会创建一个栈帧,存储的是局部变量表、操作数栈、动态链接、方法出口等信息。方法从执行到结束对应着一个栈帧从虚拟机栈中

2021-11-25 23:25:32 1512

原创 链表倒数第k个节点

class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode node1 = dummy; ListNode node2 = dummy; while (node1 != null) { .

2021-11-17 17:45:30 326

原创 Redis学习笔记

一. Redis简介Redis是Nosql数据库之一,是一个开源的、使用C语言编写的、可基于内存也能持久化存储的Key-Value数据库。Redis具备以下特性:运行在内存,减少IO操作,性能高效支持多种数据类型(也就是Value的类型)Redis的应用场景:分布式架构场景,做session共享;ps:session共享的一般解决方案:1. session(例如用户信息)存储到客户端cookie中,每次请求带着用户信息。2. session复制,将一个服务器中session信息复

2021-11-11 10:32:51 840

原创 Mysql学习笔记

什么是MySQL?MySQL 是⼀种关系型数据库,在Java企业级开发中⾮常常⽤,因为 MySQL 是开源免费的,并且⽅便扩展。阿⾥巴巴数据库系统也⼤量⽤到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何⼈都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进⾏修改。MySQL的默认端⼝号是3306。——关系型数据库,开源方便扩展,默认端口号3306MyISAM和InnoDB区别MyISAM是MySQL的默认数据库引擎(5.

2021-11-07 23:23:17 45

原创 回溯法总结

class Solution { //一个映射表,第二个位置是"abc“,第三个位置是"def"。。。 //这里也可以用map,用数组可以更节省点内存 String[] letter_map = {" ","*","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; public List<String> letterCombinations(String digits) { //注意边界条件 if(digits==null |.

2021-10-26 11:46:13 66

原创 强化学习感想

为什么用强化学习?智能体的选择动作是根据以往的训练效果(奖惩函数),并结合当前的状态来决定;这便是强化学习的目的,挖掘状态和动作的隐蔽相关性。如果状态和动作的相关性很明显的话,那么就不需要用强化学习来做了。例如:在微电网的削峰填谷的场景下,任意时刻只要知道微电网当前缺电(状态),那么电动汽车就放电(动作);微电网当前电量剩余很多(状态),就给电动汽车充电(动作)。不考虑约束条件以及奖惩函数(结果)的话,这就属于相关性很明显。但是需要考虑的是: 电动汽车在离开时,电池的电量需要达到车主的预期值。那么这

2021-10-20 00:06:11 140

原创 LRU 缓存机制

class LRUCache { class Node{ int k,v; Node l,r; public Node(int _k, int _v) { k = _k; v = _v; } } int size; Map<Integer, Node> map; Node head, tail; public LRUCache(int .

2021-10-15 00:08:14 53

原创 设计模式总结

单例模式定义:一个类只有一个实例,该类能自行创建这个实例的一种模式。单例模式的特点:单例类只有一个实例对象该单例对象必须由单例类自行创建单例类对外提供一个访问该单例的全局访问点在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、显卡的驱动程序对象、打印机的后台处理服务、应用程序的日志对象、数据库的连接池、网站的计数器、Web 应用的配置对象、应用程序中的对话框、系统中的缓存等常常被设计成单例。单例模式在现实生活中的应用也非常广泛,例如公司 CEO、部门经理

2021-10-14 11:44:56 71

原创 java多线程操作

创建线程两种方式:继承Thread类实现Runnable接口,重写run()方法建议使用 实现Runnable接口的方式,解决单继承的局限性synchronized关键字解决多线程的同步问题:用synchronized关键字,它是一种同步锁,保证同一时刻最多只有1个线程执行被Synchronized修饰的方法 / 代码块。可以修饰:代码块,方法,分为对象锁(包括方法锁和代码块锁)和类锁(包括方法锁和代码块锁);也可分为方法锁(对象锁和类锁)和代码块锁(对象锁和类锁)特别注意Synch

2021-10-13 23:18:03 53

原创 Java基础

面向对象与面向过程面向过程:将问题分解成步骤,根据步骤实现函数,执行时依次调用函数,数据和对数据的操作是分离的。面向对象:将问题分解成对象,描述对象在解决问题的步骤中的行文,对象与属性和行为是关联的。面向过程的优点:性能高,不需要面向对象的实例化;缺点:代码不易维护,扩展和复用面向对象的优点:代码易维护、复用和扩展,可以设计出低耦合的系统缺点:需要实例化对象,性能比面向过程低JAVA技术体系java程序设计语言java虚拟机,JVMjava类库APICLass文件格式来自商业机构和

2021-10-12 17:23:50 182

原创 操作系统知识点总结

一. 操作系统基础什么是操作系统?操作系统本质是软件;管理计算机硬件和软件资源;屏蔽了硬件层的复杂性内核是操作系统核心,负责内存管理,硬件设备的管理,文件系统的管理,应用程序的管理系统调用用户态:用户态运行的进程可以直接读取用户程序的数据系统态:系统态运行的进程几乎可以访问计算机任何资源,不受限制。调用系统态级别的资源就是系统调用,系统调用功能可分为:设备管理 2. 文件管理 3. 进程控制 4. 进程通信 5. 内存管理二. 进程和线程进程定义:一段程序的执行实例;操

2021-10-11 21:16:20 2393

原创 回溯法——总结(是否包含重复元素,是否全排列)

class Solution { List<List<Integer>> res; List<Integer> path; public List<List<Integer>> permute(int[] nums){ res = new ArrayList<>(); path = new ArrayList<>(); int[] visited = .

2021-10-11 16:27:18 163

转载 OC内存泄漏

1. 内存泄漏的定义程序中已动态分配的堆内存因为某种原因程序未被释放或者无法释放,造成内存浪费,导致程序运行缓慢或者崩溃等严重后果。2. OC中内存泄漏的几种情况和解决办法2.1 对象间的循环引用2.1.1 普通对象的循环引用解决方法是将对象之间引用环的某一强引用(strong)改为弱引用(weak)。// ClassA@property (nonatomic, weak) ClassA * a;// ClassB@property (nonatomic, strong) ClassB

2021-10-11 11:36:13 388

原创 二分查找模板的应用

class Solution { public int missingNumber(int[] nums) { int i = 0, j = nums.length - 1; while(i <= j) { int m = (i + j) / 2; if(nums[m] == m) i = m + 1; else j = m - 1; } return i;.

2021-10-10 23:57:14 57

转载 计算机网络——数据链路层,物理层,网络安全

MAC 地址和 IP 地址分别有什么作用面试高频指数:★★★☆☆MAC 地址是数据链路层和物理层使用的地址,是写在网卡上的物理地址。MAC 地址用来定义网络设备的位置。IP 地址是网络层和以上各层使用的地址,是一种逻辑地址。IP 地址用来区别网络上的计算机。...

2021-10-06 20:21:47 1423

转载 计算机网络——网络层

IP 协议的定义和作用面试高频指数:★★★☆☆IP 协议(Internet Protocol)又称互联网协议,是支持网间互联的数据包协议。该协议工作在网络层,主要目的就是为了提高网络的可扩展性,和传输层 TCP 相比,IP 协议提供一种无连接/不可靠、尽力而为的数据包传输服务,其与TCP协议(传输控制协议)一起构成了TCP/IP 协议族的核心。IP 协议主要有以下几个作用:——IP协议的特点:无连接、不可靠、尽力而为的数据包传输。- 寻址和路由:在IP 数据包中会携带源 IP 地址和目的 IP 地址

2021-10-05 19:29:02 277

转载 计算机网络——传输层

三次握手和四次挥手机制面试高频指数:★★★★★三次握手三次握手是 TCP 连接的建立过程。在握手之前,主动打开连接的客户端结束 CLOSE 阶段,被动打开的服务器也结束 CLOSE 阶段,并进入 LISTEN 阶段。随后进入三次握手阶段:① 首先客户端向服务器发送一个 SYN 包,并等待服务器确认,其中:标志位为 SYN,表示请求建立连接;序号为 Seq = x(x 一般取随机数);随后客户端进入 SYN-SENT 阶段。② 服务器接收到客户端发来的 SYN 包后,对该包进行确认后结束

2021-10-05 16:33:16 649

转载 Leetcode-接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。public int trap6(int[] height) { int sum = 0; Stack<Integer> stack = new Stack<>(); int current = 0; while (current < height.length) { //如果栈不空并且当前指向的高度大于栈顶高度就一直循环

2021-10-04 00:01:58 36

转载 计算机网络——应用层

HTTP 头部包含哪些信息HTTP 头部本质上是一个传递额外重要信息的键值对。主要分为:通用头部,请求头部,响应头部和实体头部。

2021-10-01 12:13:20 862

转载 OSI 模型和 TCP/IP 模型异同比较

OSI 模型和 TCP/IP 模型异同比较相同点① OSI 参考模型与 TCP/IP 参考模型都采用了层次结构。② 都能够提供面向连接和无连接两种通信服务机制。不同点① OSI 采用的七层模型; TCP/IP 是四层结构。② TCP/IP 参考模型没有对网络接口层进行细分,只是一些概念性的描述; OSI 参考模型对服务和协议做了明确的区分。③ OSI 先有模型,后有协议规范,适合于描述各种网络;TCP/IP 是先有协议集然后建立模型,不适用于非 TCP/IP 网络。④ TCP/IP 一开始就

2021-09-28 21:35:53 19275

转载 TCP/IP 五层参考模型

五层体系的协议结构是综合了 OSI 和 TCP/IP 优点的一种协议,包括应用层、传输层、网络层、数据链路层和物理层。其中应用层对应 OSI 的上三层,下四层和 OSI 相同。五层协议的体系结构只是为介绍网络原理而设计的,实际应用还是 TCP/IP 四层体系结构。作者:力扣 (LeetCode)链接:https://leetcode-cn.com/leetbook/read/networks-interview-highlights/egackd/来源:力扣(LeetCode)著作权归作者所有。商业

2021-09-28 19:35:25 348

转载 TCP/IP 参考模型

OSI 七层模型在提出时的出发点是基于标准化的考虑,而没有考虑到具体的市场需求,使得该模型结构复杂,部分功能冗余,因而完全实现 OSI 参考模型的系统不多。而 TCP/IP 参考模型直接面向市场需求,实现起来也比较容易,因此在一经提出便得到了广泛的应用。基于 TCP/IP 的参考模型将协议分成四个层次,如上图所示,它们分别是:网络访问层、网际互联层、传输层、和应用层。总结:OSI模型相比于TCP/IP模型,结构更复杂,部分功能冗余。TCP/IP模型简单,实现起来更容易。① 应用层TCP/IP 模型将

2021-09-28 16:12:43 733

转载 OSI七层模型

OSI 模型全称为开放式通信系统互连参考模型,是国际标准化组织 ( ISO ) 提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。 OSI 将计算机网络体系结构划分为七层,每一层实现各自的功能和协议,并完成与相邻层的接口通信。OSI 的服务定义详细说明了各层所提供的服务。某一层的服务就是该层及其下各层的一种能力,它通过接口提供给更高一层。各层所提供的服务与这些服务是怎么实现的无关。**总结:**分层是为了简化系统复杂性,每一层实现各自的功能和协议,通过接口提供服务给上一层,服务不需要关心下层的.

2021-09-28 13:32:05 175

原创 剑指 Offer II 005. 单词长度的最大乘积

给定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。class Solution { public int maxProduct(String[] words) { int len = words.length; int[] masks = new int[len]; for(int i=0

2021-09-17 11:33:09 45

原创 循环终止条件的选择

class Solution { public int[] reversePrint(ListNode head) { LinkedList<Integer> stack = new LinkedList<Integer>(); while(head != null){ stack.addLast(head.val); head = head.next; } int

2021-05-25 11:50:12 306

原创 Batch与Epoch

假设您有一个包含200个样本(数据行)的数据集,并且您选择的Batch大小为5和1,000个Epoch。这意味着数据集将分为40个Batch,每个Batch有5个样本。每批五个样品后,模型权重将更新。这也意味着一个epoch将涉及40个Batch或40个模型更新。有1000个Epoch,模型将暴露或传递整个数据集1,000次。在整个培训过程中,总共有40,000Batch。在这里batchsize为5,若将batchsize设为10,则相应的训练时间也会加倍。...

2021-01-12 16:07:31 189

原创 设计并发算法的方法论

#一. 什么是并发?和并行的区别?单个处理器上采用单核处理多个任务即为并发,在这种情况下,操作系统的调度程序会频繁且迅速地从一个任务切换到另一个任务,因此看起来所有任务是同时进行的;而并行是在不同的计算机、处理器或处理器核心上同时运行多个任务#二. 为什么需要设计并发程序?简单来说就是为了提高系统性能,提高系统资源(cpu)的利用率,将CPU的计算能力发挥到极致。但是并发应用程序会出现很多问题,如下:数据竞争:两个或多个任务同时对一个共享变量进行写入操作,那么该变量的最终结果取决于这些任务的执

2021-01-06 16:36:38 263

原创 TypeError: ‘NoneType‘ object is not subscriptable

TypeError: ‘NoneType’ object is not subscriptable错误的原因是:操作了None的变量,调用了None.方法,但空变量是没有方法的,所以报错;建议检查加个判断,当变量为空时,做另外的操作

2020-12-05 19:35:11 1075

原创 马尔科夫过程,马尔科夫奖励过程和马尔科夫决策过程

马尔科夫决策过程是强化学习中的一个基本框架,用来表示agent与环境的交互过程:agent观测得到环境的当前状态之后,采取动作,环境进入下一个状态,agent又得到下一个环境状态的信息,形成一个循环回路。在理解马尔科夫决策过程之前,首先要理解马尔科夫、马尔科夫奖励过程。1. 马尔科夫过程满足马尔科夫性质的状态转换过程是马尔科夫过程;什么是马尔科夫性质呢?在环境状态的转换过程中,环境的下一个状态只取决于当前状态,和历史状态无关,即满足马尔科夫性质。2. 马尔科夫奖励过程(1)马尔科夫链可以通.

2020-11-02 23:31:56 2196

原创 java高级编程之内部类(全)

1. 什么是内部类https://blog.csdn.net/Zzwtyds/article/details/78198348

2020-10-11 16:14:10 165

原创 java基础之抽象类(abstract)和接口(interface)

一. 抽象类的特性(语法规则)抽象类不能被实例化注:为什么抽象类不能被实例化?从语义上来解释,抽象类表示的从具体类型抽象出来的类型,例如苹果类、香蕉类和橘子类是具体类,而水果类则是抽象类,在自然界中也不存在水果类本身的实例。抽象类中可以没有抽象方法包含抽象方法的类必须被定义为抽象类,如果子类没有实现父类中所有的抽象方法,子类也必须被定义为抽象类。abstract class Base{ abstract void method1(); abstract void method2();

2020-10-06 15:54:04 215

原创 java基础之方法重载(Overload)与方法覆盖(Override)

方法重载与方法覆盖什么是方法重载?在同一个类中,如果有两个方法的方法名相同,但参数不一致,那么可以说,一个方法是另一个方法的重载方法。因此,重载方法必须满足两个条件:方法名相同方法的参数类型、个数、顺序至少有一项不同(这部分属于参数签名)代码举例:public class Sample{ public void method(int i, String s){...} public void method(String s, int i){...} // 方法重载 public i

2020-10-05 13:02:45 182

空空如也

空空如也

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

TA关注的人

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