自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Python实现谷歌翻译爬虫,翻译PDF,翻译Excel,支持excel文档打开翻译,支持xlsx,xlsm等格式。

这两个Python脚本是我在实习期间完成的,具体来自于小组主管的两个小需求。做完之后感觉还是挺有收获的。实现谷歌翻译,首先需要将我们写的Python脚本还有需要翻译的文件放到谷歌浏览器的安装目录下。值得注意的是,实现谷歌翻译需要调用谷歌浏览器驱动chromedriver.exe,如果没有则需要去下载并将其放入谷歌浏览器的安装目录下。致于如何下载对应浏览器版本的驱动可以百度参考一下!以下分别两个说明,指明了使用方法。...

2022-08-07 22:18:46 3157 5

原创 JVM 垃圾回收的概述与机制

什么是垃圾垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。关于垃圾收集有三个经典问题:哪些内存需要回收? 什么时候回收? 如何回收?垃圾收集机制是 Java 的招牌能力,极大地提高了开发效率。如今,垃圾收集几乎成为现代语言的标配,即使经过如此长时间的发展,Java的垃圾收......

2022-08-04 13:39:27 476

原创 类加载子系统

Class 文件加载的整体过程:类加载器子系统作用类加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识。 ClassLoader 只负责 class 文件的加载,至于它是否可以运行,则由ExecutionEngine决定。 加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量 (这部分常量信息是Class文件中常量池部分的内存映射)类加载器 ClassL.

2022-04-21 15:54:38 671

原创 JVM 与 Java 体系结构

Java虚拟机Java虚拟机时一台执行Java字节码的虚拟计算机,它拥有独立的运行机制,其运行的 Java 字节码也未必由 Java 语言编译而成。 JVM平台的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收器,以及可靠的即时编译器。 Java 技术的核心就是 Java 虚拟机 (JVM, Java virtual Machine) ,因为所有的 Java 程序都运行在Java虚拟机内部。作用:Java 虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释 / 编译为对

2022-04-21 12:40:15 141

原创 Redis持久化操作--原理剖析

RDB持久化RDB概述Redis是一个键值对数据库服务器吗,服务器中通常包含着任意个非空数据库。数据库状态示例因为Redis是内存数据库,它将自己的数据库状态储存在内存里面,所以如果不想办法将储存在内存中的数据库状态保存到磁盘里面,那么一旦服务器进程退出,服务器中的数据库状态也会消失不见。为了解决这个问题,Redis提供了RDB持久化功能,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面,避免数据意外丢失。RDB持久化功能所生成的RDB文件是一个经过压缩的二进制文件,通

2022-03-26 20:50:25 149

原创 RabbitMQ相关知识---详细

1 RabbitMQ概念1.1 RabbitMQ简介:RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。核心概念:Message消息,消息是不具名的,它由消息头和消息体组成。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键) 、priority (相对于其他消息的优先权)、delivery-mode (指出该消息可能需要持久性存储)等。Publisher

2022-03-03 22:39:12 1719

原创 高并发下缓存失效问题--(缓存穿透,缓存雪崩,缓存击穿)

1 缓存穿透指查询一个一定不存在的数据,由于缓存是不命中,将去查询数据库,但是数据库也无此记录,我们没有将这次查询的null写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义1.1 风险利用不存在的数据进行攻击,数据库瞬时压力增大,最终导致崩溃1.2 解决null结果缓存,并加入短暂过期时间set(String key, String value, long timeout, TimeUnit unit)2 缓存雪崩缓存雪崩是指在我们

2022-03-03 19:14:27 554

原创 一致性哈希算法分区

一致性哈希算法,认真看图分析收获满满!彻底解决疑惑

2022-03-01 22:38:53 398

原创 哈希取余分区

是什么?2亿条记录就是2亿和k, v,我们单机不行必须要分布式多机,假设有3台机器构成一个集群,用户每次读写操作都是根据公式:hash(key) % N个机器台数计算出哈希值,用来决定数据映射到哪一个节点上。缺点原来规划好的节点,进行扩容或者缩容就比较麻烦,不管扩缩,每次数据变动导致节点有变动,映射关系需要重新进行计算,在服务器个数不变时没有问题,如果需要弹性扩容或故障停机的情况下,原来的取模公式发生变化:Hash(key) / 3 会变成Hash(key) / ?此时地址.

2022-03-01 21:59:44 497

原创 分布式存储---哈希槽的概念

1 是什么1.1 为什么出现?由于一致性哈希算法的数据倾斜问题,Redis集群并没有使用一致性hash而是引入了哈希槽的概念。哈希槽实质就是一个数组空间,数组[0, 2^14 - 1]形成hash solt空间。2.2 能干什么?解决均匀分配问题,在数据和节点之间又加入了一层,把这层称为哈希槽(slot),用于管理数据和节点之间的关系,现在就相当于节点上放的是槽,槽里放的是数据。槽解决的是粒度问题,相当于把粒度变大,这样便于数据移动...

2022-02-27 22:32:22 3873

原创 计算机网络——学习笔记(1.基础篇-TCP/IP ⽹络模型)

TCP/IP网络模型网络协议通常由上到下,分为5层,分别是:应用层、传输层、网络层、数据链路层和物理层。应用层:最上层的,电脑或手机使用的应用软件都在应用层实现。其只关注数据如何传输。类似于,我们寄快递的时候, 只需要把包裹交给快递员,由他负责运输快递,我们不需要关⼼快速是如何被运输的。传输层:是为应用层提供网络支持,有两个传输协议,分别是TCP和UDP。TCP: 传输层控制协议UDP:简单到只发送数据包,不保证数据包是否能抵达,但实时性相对更好,传输效率也高。

2022-01-24 22:56:17 1747

原创 解决Mysql中文乱码问题(多方面考虑,彻底解决乱码问题)

前言今天在做java前后端分离项目的时候遇到了读取mysql中文乱码问题,首先在项目中的要求是通过springboot和mybatis-plus构建访问数据库,后面在通过浏览器访问固定地址读取查询表内容的时候(select * from hospital_set),出现的乱码问题(如下图所示)。解决办法可能性分析(1):首先出现这种情况,你可能是因为使用了navicat软件,你直接在这个软件上面对创建的表进行了数据填写(如下图)。因为是在这个软件上面直接填写的,所以你填写中文的格

2022-01-10 19:12:15 16424

原创 java刷题专题——链表 (142.环形链表II)

问题:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?示例 1:输入:head = [3,2,0,-4], pos = 1输出:返回索引为 1 的链表节点解释...

2021-10-03 15:27:57 148

原创 java刷题专题——数组 (26. 删除有序数组中的重复项)

问题:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。示例 2:输入:nums = [0,0,1,1,1,2,2,3,3

2021-09-03 22:10:50 132

原创 java刷题专题——数组 (27.移除元素)

问题:给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数...

2021-09-01 13:59:36 414

原创 java刷题专题——数组 (704.二分查找)

题目:给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1来源:力扣(Leet...

2021-09-01 11:20:20 233

原创 java刷题训练LeetCode ——(第二题,647. 回文子串)

问题:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindromic-s

2021-08-29 21:44:07 183

原创 java刷题训练LeetCode ——(第一题,349. 两个数组的交集)

再来看一道有关数组的哈希处理,这种类型看似不难,实际上动手起来还是有些困难的。特别是有关哈希数据结构set的用法,理解和掌握的还有待加强。问题:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。来源:力扣(Lee

2021-08-26 23:04:40 130

原创 java刷题训练LeetCode ——(第一题,242.有效的字母异位词)

这里有一道与两数之和类似的题,同样使用到了哈希表方法。问题:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若s 和 t中每个字符出现的次数都相同,则称s 和 t互为字母异位词。示例1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/p...

2021-08-25 23:05:33 98

原创 java刷题训练LeetCode ——(第一题,1.两数之和)

问题:给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解答:这道题有两种解决方法,一...

2021-08-25 15:50:16 518

原创 AD软件——设计总结(差分布线,蛇形布线)

AD软件——设计总结(敷铜)

2021-08-23 22:08:41 5926

原创 AD软件——设计总结(敷铜)

导师公司的电路板其实我早已经设计完了,今天有点时间我就来总结一下,毕竟这也是自己辛苦学习的成果,免得以后忘了这部分的知识,万一将来要用到了还能回过来翻翻看看! 今天所总结的知识,是网络视频教程上很少甚至不会提及的关键知识。可能你跟着别人的视频学习画板子能很快的带你入门,你也可以简单的完成自己的电路板设计,但面对实际生产应用,你学习的画板子知识和操作还远远不够用。就比如有些视频,根本不会教你如何划分内电层,还有如何差分布线,蛇形走线。然而这些操作在高速板中是必不可少的。A...

2021-08-23 17:48:34 1939

原创 java刷题训练LeetCode ——(开始)

前期学习了数据结构与算法,视频已经刷过一边了,对数据结构与算法的也有了更深一步的掌握。但无论做什么事情都不能仅限于理论,要理论结合实践,这样才能真正的熟练掌握与应用。就像我之前帮导师的公司画电路板一样,要自己动手去做,才能快速的掌握。只知道天天看视频看书,这样掌握起来是非常慢的,动手实践才能学会真知。 那么从今天开始,我就要开始结合题目来练习了,期望在以后的工作中能熟练应用数据结构与算法的知识。 对于如何学习java的相关知识自己也是在网上看了很多遍了,有...

2021-08-23 17:11:41 198

原创 AD软件—(如何从原理图生成PCB)

如何学习AD这款软件呢!最好的办法就是动手做,作为一名大学生、研究生,我想每个人都应该有这种学习能力吧! 虽然本科阶段有学习一点,但都是为了完成课程,学的也都是一些皮毛。那么现在又来学习,如果刚开始接触,我推荐可以到B站上面先找点视频看看,边看边跟着动手,完成一套课程简单的学习我想也应该差不多了。 那么今天的重点不是如何入门,而是为了记录自己遇到的一些问题,通过这种方式分享自己是如何解决问题的,相信能给大家带来帮助。 想要画PCB板,原理...

2021-07-14 15:18:08 38835 5

原创 AD软件(开始)

作为一名在读研狗,渴望学习知识是我们前进的动力,(哈哈!这里不由的会心一笑)。 好了,废话就不多说了!面对互联网飞速发展的今天,以及国家对人工智能、高端芯片研发制造等等........高度的重视。当然啦,这也是时代所需,未来所向,国家的发展必须依靠科技的进步,当然也需要我们年轻的一代人为之奋斗。近几年,华为经过不断的努力,成功开发出了自己的操作系统(HarmonyOS),这无疑是一次伟大的进步。那么为维持操作系统和其生态链的运作,势必需要大量的开发者(笔者也是十分希望毕业后...

2021-07-14 14:34:31 225

空空如也

空空如也

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

TA关注的人

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