自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 如何在 Ubuntu 中更改时区设置

Linux时区修改

2024-01-16 09:19:26 722

原创 Matplotlib快速入门,Python通用的绘图工具库上手

Python绘图重要助手

2023-12-18 09:31:59 465

原创 快速了解小波变换,这篇文章就够了

小波变换的功能和傅立叶变换功能相同,但小波变换对非稳定信号有很好的效果,这是两个变换的最根本的区别。假设我们有一个股票价格的时间序列数据,我们可以通过小波变换来分析这个数据的局部特征,从而预测股票价格的走势。在短期电力预测中,我们可以通过小波变换来分析电力负荷的局部特征,从而预测未来的电力需求。小波变换是一种数学工具,它的基本思想是将无限长的三角函数基换成有限长的会衰减的小波基。,可以将小波转换的高频滤掉,即保留低频部分而将其他部分舍弃,这在数据压缩和去除噪声中非常有用。库提供了实现小波变换的函数。

2023-12-16 15:22:28 1036

原创 为什么HTTP/3要引入UDP?(快速了解QUIC)

HTTP/3和QUIC协议的出现,为互联网带来了新的机遇和挑战。虽然QUIC协议目前还处于发展阶段,但它已经展现出了巨大的潜力。在未来,我们可以期待HTTP/3和QUIC协议在更多的领域中得到应用,为互联网带来更快的速度和更好的体验。QUIC 协议详解。

2023-12-15 10:07:56 1141

原创 重载和重写的区别是什么? 看这一篇短文就够了

面经

2023-12-14 10:39:25 944

原创 后端开发过程中的乐观锁和悲观锁怎么理解并选型?

笔者在参加某银行软开面试时被问到这个偏实践类的问题,特来学习并总结。

2023-11-14 11:10:53 203

原创 Set接口具体实现的源码与分析

HashSet是基于散列表实现的Set接口类该实现不保证集合的迭代顺序

2023-11-14 09:50:53 68

原创 微服务如何做负载均衡?

6. 容器化和自动伸缩:使用容器化技术(如Docker)和自动伸缩技术,可以将应用程序部署到多个服务器上,实现负载均衡。当请求量增加时,可以自动增加服务器数量,当请求量减少时,可以自动减少服务器数量。3. 软件负载均衡器:软件负载均衡器通常位于应用程序服务器上,可以使用开源的Nginx、HAProxy等软件负载均衡器。每个服务器都有一个解析的IP地址,当收到请求时,DNS服务器将请求解析到多个服务器中的一个。2. 硬件负载均衡器:硬件负载均衡器通常位于数据中心,负责将请求分配到不同的服务器。

2023-11-10 17:03:43 1380

原创 开发流程中少不了的ORM是什么?

在 Java 开发中,我们经常会使用 ORM(Object Relational Mapping,对象关系映射)框架技术,如 MyBatis、Hibernate 等。使用这些 ORM 技术的目的是为了在 Java 应用程序中更方便地处理数据库操作,即OOP和关系型数据库的中间层,降低开发难度和提高开发效率。

2023-10-25 09:29:42 72

原创 Java开发,参数类型如何选?int, Integer, AtomicInteger?

int是基础的变量类型;Integer是包装类型;AtomicInteger是来自JUC的一个在并发编程场景下重要的包,对于Java开发人员来说,确实需要对其都有充分的认识与了解。

2023-10-15 09:33:36 669 1

原创 Java中的错误和异常有什么区别和联系?

异常和错误概述

2023-10-11 20:52:08 135

原创 Java的指针、引用与C++的指针、引用的对比

1. 指针指针是存储内存地址的变量,其目的是充当该地址存储的内容的别名。所以,指针是引用,但引用不一定是指针。指针是引用概念的特定实现,该术语往往仅用于可让您直接访问内存地址的语言。2. 引用引用是指引用其他内容的变量,并且可以用作该其他内容的别名。

2023-10-10 10:23:38 213

原创 1000K数据在Java中用哪种选型进行存储?

在 ArrayList 中访问一个元素需要常数时间 [O(1)],添加一个元素需要 O(n) 时间 [最坏情况]。在 LinkedList 中,插入一个元素需要 O(n) 时间,访问也需要 O(n) 时间,但是 LinkedList 比 ArrayList 使用更多的内存。(以N个空引用为例)如题,笔者在面试时被考察到该问题,Java中面临这样大的数组,选择ArrayLIst还是LinkedList来进行存储呢?如上图所示,当元素数量非常多的时候,尽量选用ArrayList。

2023-09-19 15:21:15 56

原创 MySQL多表联查如何建立索引?

在 MySQL 数据库中,设计索引主要是为了提高查询的效率,降低数据库的压力。当我们进行多表查询时,正确设计索引非常重要。

2023-08-30 20:18:07 2776

原创 竞态条件?如何设计一个抢红包的程序? 说说你的思路

抢红包问题是面试过程中的经典场景题,需要进行一定的准备。

2023-08-22 10:20:43 108

原创 如何理解Java中的Wait和Sleep?

如何认识Java中的sleep与wait?

2023-08-22 09:44:21 118

原创 Redis是如何保证高可用的?

Redis这种基于内存的关系型数据库我们在选用的时候就是考虑到它的快。而且可以很方便的实现诸如分布式锁、消息队列等功能。笔者在前一段秋招面试的时候就被提问,“Redis是怎么保证高可用的?” 后续的子问题包含,集群模式是怎么实现的?哨兵模式又是怎样工作的?哨兵的存在是怎么保证其他节点正常运行的?如果哨兵自己宕机了,整个系统又怎么样?

2023-08-20 20:04:04 471

原创 JVM的元空间了解吗?

笔者近期在面试的时候被问到了这个问题,元空间也是Java8当时的一大重大革新,之前暑期实习求职的时候有专门看过,但是近期秋招的时候JVM相关的内容确实有点生疏了,故在此进行回顾。

2023-08-20 10:55:07 1133

原创 Spring Boot使用MySQL的默认连接池

笔者在近期秋招面试的时候被问到了这个问题,现在简单梳理一下便于后期重新回顾,并加深记忆。Spring Boot 默认使用的数据库连接池是 HikariCP(HikariCP 是目前性能最好的连接池之一,它具有高度的性能、可靠性和可扩展性,并且对于大多数应用场景来说效果非常好。在 Spring Boot 中,只需要在配置文件中进行相应的配置,即可使用 HikariCP 进行数据库连接池管理。默认情况下,HikariCP连接池的最大连接数被设置为。这意味着在同一时间点,最多可以有10个连接可供使用。

2023-08-19 18:36:19 1780

原创 Java序列化传输

Java序列化

2023-08-11 11:04:01 132

原创 代码同步离不开的gitignore文件

但需要注意的是,每个项目的需要忽略的文件和文件夹可能都不同,因此我们应根据项目的实际情况进行相应的调整。我们无论是在写那种语言的代码工程,在团队协作过程中离不开gitignore来避免一些无效文件的同步。这些模板可以帮助你快速设置.gitignore规则,

2023-05-11 20:01:06 85 1

原创 Z3求解器的使用

SMT对问题约束并求解是一种很方便的思路。如何运用广为流行的z3来辅助我们的问题求解?

2023-05-08 10:38:31 1027

原创 网络传输中的粘包是怎么回事? 计算机网络常考面试题

在该方案中,发送方在每个数据包的头部添加一个固定长度的消息头,消息头中包含了数据包的长度等信息,接收方在接收到数据包后先解析消息头,然后根据消息头中的长度信息来拆分数据包。粘包问题是指在数据传输过程中,发送方发送的多个数据包被接收方误认为是一个数据包,导致接收方无法正确解析数据,从而出现异常的现象。粘包问题的原因有很多,比如发送方发送的数据包大小不一致,或者发送方发送数据包的速度过快,接收方没有及时处理等等。粘包问题会带来很多异常的后果,比如数据解析错误,数据丢失等等。目前,主流的粘包解决方案包括。

2023-04-27 11:24:10 337

原创 Java 数据结构 线程安全与线程不安全的有哪些?

Java开发过程中,Set,Map,List等接口都有很多根据特定场景需要而具体实现的类,面试过程中难免会被考察。

2023-04-27 10:14:23 969

原创 Redis中的排序可以怎么实现?

遇到这个问题,我上来就回答可以利用数据结构的特性,比如Zset的自带排序。(当时没有想到redis也是自带sort功能,对无序数据结构进行后续排序的)先看AI的表现:问题:Redis排序知道吗?如果我的业务场景中需要引入Redis缓存,且需要维护一定的顺序性,Redis可以通过哪些方式实现?回答:是的,Redis可以通过一些方式来实现有序集合的排序功能。1.Redis中的有序集合(SortedSet)是一个键值对集合,其中每个元素都有一个分数(score),可以根据分数进行排序。

2023-04-25 11:33:05 2078

原创 进程、线程、协程 面试中的基础与关键 Synchronized与Reentranlock

Java中的进程、线程和协程都是并发编程的重要概念。进程是操作系统中的基本单位,每个进程都有自己独立的内存空间和系统资源,可以独立运行。Java中可以通过Runtime和ProcessBuilder等类创建和控制进程。线程是进程中的执行单元,可以共享进程的内存空间和系统资源。Java中的线程有这几种状态:新建(New)、可运行(Runnable)、阻塞(Blocking)、无限期等待(Waiting)、限期等待(Timed Waiting)和终止(Terminated)。

2023-04-22 10:07:49 236

原创 一个可行的业务项目从开发到部署的常见指令 Java、Linux

有的同学为了求职等面试时会进行一些经典的项目学习,开源项目中也会说明程序如何准备并运行,本文集中进行一个简要的梳理,方便大家明确流程。tar -zxvfjava -jar注意,以上步骤仅为指导,具体实现方式根据具体项目需求而定。另外Linux常用操作的掌握也是后端开发面试中不可忽视的一个问题,我们在服务器启动程序的时候,需要让其在后台运行,我们可以从下面的思路进行考虑。

2023-04-21 17:01:35 44

原创 Java基类有什么?展开说说

Java的数据类型有什么,这个算是一道经典的基础面试题。我们不光要了解几大基础数据类型,还要了解其源自哪些基类。Java的主要基类包括:Object:Java中所有类的基类,提供了一些通用方法,如equals()、hashCode()和toString()。,包括Byte、Short、Integer、Long、Float和Double。String:Java中字符串类型的基类,它提供了很多方便的方法,比如substring()、trim()、equals()等。

2023-04-21 10:58:23 495

原创 Java IOC与反射

Bean 代指的就是那些被 IoC 容器所管理的对象。我们需要告诉 IoC 容器帮助我们管理哪些对象,这个是通过配置元数据来定义的。配置元数据可以是 XML 文件、注解或者 Java 配置类。下图简单地展示了 IoC 容器如何使用配置元数据来管理对象。和这两个包是 IoC 实现的基础,Java依赖注入(Dependency Injection,DI)是指在一个对象需要依赖另一个对象时,由容器自动将依赖的对象注入到该对象中。常见的实现方式有构造函数注入、属性注入和接口注入等。

2023-04-20 17:30:13 405

原创 Java GC 以 G1回收器为例

Java垃圾回收是非常重要的一个知识点,无论是代码开发还是面试过程中都是避不开的问题。Java作为和C++抗衡的一大重要因素就是内存管理,Java的垃圾回收期能够有效清理堆空间的垃圾,使得程序能够在有限的分配空间下正常运行。通常来说,会和该知识点关联的内容包含但不限于:JVM运行时数据区的结构、垃圾回收算法、JDK1.8前后的JVM结构变化,方法区是什么?JVM与垃圾回收期相关的指令参数是什么?JVM调优实战...

2023-04-20 11:20:40 264

原创 Java类加载过程详解

首先我们应明确在Java中类的生命周期是什么,引用一张图像进行说明使用(Using)卸载(Unloading)

2023-04-19 17:09:09 3689

原创 ThreadLocal面试题 Java并发面试高频 附带源码分析

作为Java面试环节中必不可少的并发相关内容,ThreadLocal的地位是很高的。其可以和HashMap相关联,可以牵涉到static关键字的作用,可以引入Java引用的概念,由于Key是弱引用,而对应的value为强引用,进而可以继续引入一个垃圾回收与OOM的问题。总之,对ThreadLocal有一个较为清晰的认识,有利于并发场景下的编程与故障排查,也有利于认识Java经典的数据结构。一句话概括:每个线程都有一个ThreadLocalMap对象。这个Map里面存了所有线程变量中保存的数据。

2023-04-19 16:33:56 218

原创 Centos7部署torch环境 配合pyCharm远程调试开发

python目标版本3.6,torch目标版本1.8.1部署环境总是代码开发者离不开的一个问题,通常会有几种解决路线。1. 每个环境单独部署一套,windows一套,unix一套,需要什么依赖就装什么。2. 引入conda环境,为每个类型的项目创建一个属于自己的虚拟环境。3. 引入Docker,直接把代码运行所需要的操作系统以及库依赖全部打包。4. 服务器-本地结合的开发形式。本文主要尝试第二点与第四点相结合,利用已有的闲置服务器,配合本地IDE进行开发。

2023-04-15 17:18:27 1088 3

原创 Python脚本 处理目录下以.class或其他类型结尾的所有文件

该脚本中,在删除 .class 文件之前,先创建了一个名为 trash 的文件夹,并在代码中使用 shutil.move() 方法将要删除的文件移动到该文件夹下。同时,记录已删除的文件和总共删除的文件数操作也被修改,现在所有的日志信息都会写入 deleted_files.log 文件中。在Unix环境就要配合命令行指令编译出.class文件再送给JVM进行处理,一种方式是git同步的时候忽略.class文件,要么就是在某一平台运行管理的时候,另外用脚本进行无用文件的删除工作。

2023-04-14 09:10:33 117

原创 Python训练数据个性化提取 JSON与DICT转换并输出

深度学习或机器学习过程中少不了需要对训练过程进行额外处理,比如我们想观察score的变化,相关差准确率变化的趋势。除了用模型自带的plot工具,我们也需要自己进行集中处理或对中间过程进行缓存。我们的提取目标是,获取每一次迭代中的'test_f1对应的数值。初步分析可以值,文件中每一round数据结果是按行进行存储。格式是几乎统一的。所以我们可以将文件用Python按行读取,进行处理,并且将数据处理之后存入一个列表当中。那剩下的工作就是如何对每行数据进行处理了。

2023-04-13 20:08:55 128

原创 拦截器和过滤器的区别?面试常问的细节!

Override.addPathPatterns("/**") // 拦截所有路径// 不拦截登录请求上述代码中,MyInterceptor是自定义的拦截器类,addPathPatterns方法指定需要拦截的请求路径,excludePathPatterns方法指定不需要拦截的请求路径。

2023-04-13 17:27:04 795 1

原创 智能开发工具Cursor上手体验

然后,它设置了一个CommunityTarget对象,该对象包含了SNMP请求的目标地址和社区字符串。例如,可以使用SNMP4J-Agent库来创建一个SNMP代理,该代理可以处理SNMP请求并返回MIB树消息。需要注意到的是,不仅可以和生成的代码“对话”,也可以将 JDK 、开源项目和自己业务代码贴到这里,进行“对话”,让它解释辅助理解,也可以让它给你改进建议,让它帮你找潜在BUG等。Edit,我们可以告诉它我们的需求,它会进行代码的修改。Chat,我们可以进行跟相关的提问,让它来进行解释。

2023-04-12 11:21:42 379

原创 面试常见智力题一览

取到0的概率,假设第一次就取到 概率是1/9,但也有可能第一次没取到,第二次才取到,那么第二次取到的概率是2/9 * 1/9, 也有可能是第三次取到,第三次取到的概率是(2/9)的平方 * 1/9,这样所以的加起来是1/9 * (9 / 7) * (1- (2/9)的n+1次方),n趋于无穷的情况下概率就是1/7。Rand5产生1到5的数,减1就产生0到4的数,乘以5后可以产生的数是:0,5,10,15,20。我们可以得到1到25, 而且每个数都只由一种组合得到,即上述代码可以等概率地生成1到25。

2023-04-11 21:08:44 204

原创 介绍一下JavaNIO的Selector和lO多路复用的select有什么区别?

通过配置监听的通道 Channel 为非阻塞,那么当 Channel 上的 IO 事件还未到达时,就不会进入阻塞状态一直等待,而是继续轮询其它 Channel,找到 IO 事件已经到达的 Channel 执行。因此,Java NIO和lO多路复用的select都是实现I/O多路复用的机制,但是Java NIO是Java自己实现的,而lO多路复用的select是Linux系统提供的。新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的,弥补了原来的 I/O 的不足,提供了高速的、面向块的 I/O。

2023-04-10 20:01:51 142

原创 Controller和RestController的区别

如果你忘记在使用@Controller注解的方法上加上@ResponseBody注解,那么返回值通常会被解析为跳转路径,控制器返回的时候路径会变为(在当前路径的上一级路径上追加路径),然后返回的过程找不到对应的视图,导致404的错误。@Controller和@RestController注解都是Spring MVC框架中的注解,用于标识一个类是Spring MVC controller处理器,可以接收HTTP请求。如果你需要返回一个JSON格式的数据,那么你需要使用@RestController注解。

2023-04-10 19:40:09 423

空空如也

空空如也

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

TA关注的人

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