自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 认识动态规划算法和实践(java)

动态规划算法里面最有意思的一个东西之一。动态规划初学肯定会有一定晦涩难懂。如果我们去网上搜索,动态规划的资料,它一开始都是将很多的理论,导致会认为很难,但是这个东西实际上是有套路的。动态规划的英语是Dynamic Programming(规划),一般来说我们都简称为dp动态规划,简称DP,dp算法就是动态规划的意思求解最优化问题的一种常用策略(什么是最优化问题呢?比如我们要找零钱,硬币个数最少就是最优化,最大连续子序列号,也是最优化问题。在带最字的问题求解中,就有可能用到这个动态规划去解决)

2024-10-01 00:56:19 1641 2

原创 HTTP状态码

HTTP状态码:它们用于在HTTP响应中表示请求的结果。部分状态码被不再推荐使用,可能会在未来的HTTP版本中被移除或替换。:表示请求已成功被服务器接收、理解、并接受。:表示服务器在处理请求的过程中发生了错误。:表示需要进一步的操作以完成请求。:表示接收的请求正在处理。:表示客户端似乎有错误。

2024-10-15 22:06:06 1080 1

原创 排序算法之选择排序

选择排序的思想是每次从未排序的部分中选择最小的元素,然后将其放在已经排序部分的末尾。我们要进行选择排序,先选择最小的,然后选择第二小的,然后是选择第三小的,依次类推。比如有一个数组arr=[8,2,4,5,1,6,0,1]选择排序算法是不稳定的排序算法。选择排序是一种是原地排序算法。

2024-10-04 20:59:10 710

原创 排序算法之快速排序

【代码】排序算法之快速排序。

2024-10-02 23:57:25 426

原创 排序算法之归并排序

需要注意的是,在实际应用中,归并排序的空间复杂度较高,需要额外的空间来存储临时数组。如果对空间复杂度有要求,可以考虑使用其他排序算法。归并排序是一种分治算法,它将一个数组分成两个子数组,然后递归地对子数组进行排序,最后将两个有序的子数组合并成一个有序的数组。归并排序的时间复杂度是O(nlogn),其中n是数组的长度。它是一种稳定的排序算法,适用于各种数据类型的排序。合并排序的关键在于合并操作。

2024-10-01 23:05:47 624 1

原创 什么是敏捷迭代开发模型

通过不断迭代和持续改进,敏捷迭代开发能够提高软件开发的效率和质量,满足不断变化的用户需求。敏捷迭代开发的核心原则是持续交付和快速反馈。它提供了一套明确的规则和流程,帮助团队更好地组织和管理开发工作,实现快速交付高质量的软件。5. 敏捷模型(Agile Model):敏捷模型强调迭代、协作和快速响应变化,通过短周期的开发迭代(如Scrum、XP等)来逐步交付高质量的软件。1. 瀑布模型(Waterfall Model):瀑布模型是最传统的开发模型,按照线性顺序依次完成需求分析、设计、编码、测试和维护等阶段。

2024-09-29 22:19:12 580

原创 Java中和JavaScript中的var关键字

var关键字是在Java 10中引入的局部变量类型推断功能,它只是让编译器根据变量的初始化值推断出变量的类型,从而减少了冗余的类型声明,提高了代码的可读性和简洁性。然而,需要注意的是,过度使用var关键字可能会降低代码的可读性,特别是在变量命名不清晰或者初始化值复杂的情况下。在 JavaScript 中,`var` 关键字声明的变量是没有类型限制的,它们可以存储任何类型的值。因此,从性能的角度考虑,推荐使用 `let` 或 `const` 关键字来声明变量,尽量避免使用 `var`。

2024-09-28 23:37:28 360

原创 java中的动态代理

java中的两种代理。

2024-09-26 22:31:05 1404

原创 Vue基础知识

尤雨溪:Vue.js的创建者Vue:渐进式JavaScript框架声明式渲染–>组件系统–>客户端路由–>集中式状态管理–>项目构建官网: https://cn.vuejs.orgVue它是一个国产框架,jquery、bootstrap这些前端框架,包括很多的后端框架基本都诞生于国外,像Vue这样优秀的国产框架少之又少。官方给Vue的定义叫做渐进式JavaScript框架,需要知道渐进式和框架,它难道不是一个库吗,那么库和框架是如何界定的呢?渐进式有是什么意思呢?

2024-09-25 22:16:58 1281

原创 快速学习node.js的模块化

*模块化概念:**模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组合、分解和更换的单元。**编程领域的模块化:**编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成独立并互相依赖的多个小模块提高了代码的复用性提高了代码的可维护性可以实现按需加载。

2024-09-24 11:47:53 809

原创 node.js从入门到快速开发一个简易的web服务器

fs 模块是 Node.js 官方提供的、用来操作文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求.fs.readFile() 方法,用来读取指定文件中的内容fs.writeFile() 方法,用来向指定的文件中写入内容使用一个fs常量接收这个fs,我们接收了这个fs,后面就可以调用fs里面的方法读取指定文件中的内容fs.readFile()的语法格式参数optins解读参数1:必选参数,字符串,表示文件的路径参数2:可选参数,表示以什么编码格式来读取文件。

2024-09-23 19:49:36 2702

原创 java中的ArrayList和LinkedList的底层剖析

LinkedList也是一个动态的线性表,所以它就必须能够存储元素,能够获取大小,ArrayList底层是通过一个数组存储元素,LinkedList内部是通过一个结点类来存储元素,同时这个Node里面有两个指针,prev指向前一个结点、next指向下一个结点,同时提供一个构造方法,当我们需要添加一个元素的时候本质是添加一个结点,再把这个元素放入到这个结点内部,同时维护好这个结点的前后结点。我们要对数组进行封装,也就是让这个数组如果元素装满了之后,重新创建一个更大的数组,将原来的元素复制过去。

2024-09-22 23:14:21 2593

原创 什么是Node.js?

Node.js是一个基于Chrome V8引擎的JavaScript后端运行环境。Node.js官网地址:https://nodejs.org/zh-cn/Node.js中的JavaScript运行环境和Chrome中运行环境的比较。

2024-09-21 22:20:35 2568

原创 浏览器同源策略和跨域

​ 这个getdata.js这个文件是放到我们计算机本地的,假如这个文件并没有在我们自己的电脑上,而是在一台服务器上放着,要调用什么函数是不知道的,到底调用的是success还是abc方法我们不清楚,没有这个函数肯定就会调用失败。因此,JSONP的实现原理,就是通过标签的src属性,请求跨域的数据接口,并通过函数调用的形式,接收跨域接口响应回来的数据。通俗的理解: 浏览器规定,A 网站的 JavaScript,不允许和非同源的网站 C之间,进行资源的交互。

2024-09-20 21:34:47 825

原创 数据库事务相关概念

事务的隔离级别越低,可能出现的并发问题越多,但通常而言系统能提供的并发能力就越强。选择合适的隔离级别需要根据具体的业务需求和并发性能要求进行权衡。事务是逻辑上的一组操作,要么都执行,要么都不执行。在数据库中,事务是指一系列数据库操作的集合,这些操作要么全部成功提交,要么全部失败回滚。

2024-09-15 22:52:47 347

原创 Tomcat和servlet的关系(内容很简要后续会深入更新讲解)

Servlet 是 Java 编写的服务器端组件,它负责处理客户端的请求并生成响应。处理完成后,Servlet 会将生成的响应内容封装成一个 HttpServletResponse 对象,并将该对象返回给 Tomcat,然后 Tomcat 将该响应发送给客户端。Tomcat 会解析 HTTP 请求协议,提取出请求的信息,例如请求的 URL、请求参数等,并将这些信息封装成一个 HttpServletRequest 对象,然后将该对象传递给对应的 Servlet 进行处理。

2024-09-14 23:59:32 363

原创 MySQL中的四种SQL及其基本用法

DDL-数据库操作查询所有所有数据库查询当前数据库创建CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];删除DROP DATABASE [IF EXISTS] 数据库名;使用USE 数据库名DDL-表操作-查询查询当前数据库所有表查询表结构DESC 表名;查询指定表的建表语句SHOW CREATE TABLE 表名;show create table 表名;

2024-09-13 22:54:52 1506

原创 一段话讲懂java中的3种IO、网络编程

​ 服务器的读数据的方法不会一直在进程对应的内存中等待,而是过一段时间询问进程对应的内存是否有新的数据复制进来,如果没有等待操作系统内核把数据复制到进程区域的内存,它需要我们主动每隔一端时间进行对内存数据准备区进行询问,直到有一次我们问它,刚好它有数据了,我们的方法就可以返回具体的数据,没有也会方法也会立马返回,不会阻塞。​ 既然IO可以进行数据的输入输出操作,内存既可以是数据源也可以是数据接收方,那么这个时候如果是两台计算机,那么我们就可以实现两个计算机的内存的数据相互收发。

2024-09-12 20:48:08 1194 1

原创 什么是内存不安全

C++是一种手动管理内存的语言,开发人员需要自行负责对象的创建和销毁。而java虚拟机会每一个线程分配置一个栈内存,用于执行要执行的操作,里面可以存储零时变量和方法调用,同时存储方法调用的信息,所以java中一个线程里面存储的变量和进栈调用的方法是有限的。内存泄漏是指在程序运行过程中,由于程序未正确释放不再需要的内存空间,导致系统中的可用内存不断减少,最终耗尽系统的内存资源。Java有自动内存管理机制,即垃圾回收器会自动回收不再使用的对象,因此在大多数情况下,Java程序不会出现访问未分配内存的情况。

2024-09-12 19:49:55 624

原创 什么是语法糖?

"语法糖"一词最早由计算机科学家彼得·约翰逊(Peter J. Landin)在1972年提出,他用这个词来描述一种编程语言的设计特性,这种特性可以使代码更易读、更易写,但并不会增加语言的功能。换句话说,语法糖是一种在语法上的“甜头”,它让程序员编写代码时更加方便和愉快,但并不会改变语言的基本结构和功能。语法糖的本意是指一种“糖衣炮弹”,即在表面上看起来很甜美,但实际上隐藏着一些复杂或不易察觉的问题。在编程领域中,语法糖也有类似的含义,即某些语法上的便利可能会掩盖一些底层的复杂性或问题。

2024-09-12 18:31:44 304

空空如也

空空如也

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

TA关注的人

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