Hilda

「离开世界之前 一切都是过程」

spring6-基础

Spring框架是一个轻量级、开源的Java EE全栈框架,以IoC/DI和AOP为核心,消除样板代码,实现松耦合,简化事务管理和横切关注点处理。其模块化生态系统整合多种技术,支持云原生、响应式编程等现代开发需求,大幅提升开发效率、可维护性和扩展性。

spring官网:https://spring.io/ 1.spring框架的优势 1.消除样板代码,提升业务层关注度。比如Mybatis来说,通常需要写和核心业务逻辑无关的样板代码,比如加载配置文件,构建SqlSessionFactory,开启SqlSession,获取Mapper代理对象等等,重复编写就会增加出错的可能性,使业务层代码的关注点分散,是一系列繁琐的资...

jvm-class文件格式

在学习jvm的各种内容之前应该简单了解下class文件的格式。

官网关于ClassFileFormat(JDK8):https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html 1 一个最简单的案例开始 准备一个最简单的java源代码: 1 2 public class SimpleExample { } 利用idea的build工具进行编译: 在out/produc...

java闭包

闭包是JavaScript和Java中重要的概念,指函数或Lambda捕获外部作用域变量。JavaScript通过内部函数访问局部变量形成闭包;Java中,Lambda或匿名类捕获final变量实现闭包,动态绑定状态,增强函数式编程灵活性。

通常讲到闭包,一般都是指在javascript的环境中。闭包是JS中一个非常重要的也非常常用的概念。闭包产生的原因就是变量的作用域范围不同。一般来说函数内部的定义的变量只有函数内部可见。如果想要在函数外部操作这个变量就需要用到闭包了。 JS中的闭包 在JS中,变量可以分为两种全局作用域和局部作用域。在函数外部无法读取函数内部定义的局部变量。 例如: 1 2 3 4 functio...

ollama工具-自定义模型

这篇博客介绍了如何使用Ollama的Modelfile定制化模型。通过在Modelfile中指定基础模型、调整temperature等参数和设置SYSTEM系统提示,可以使用ollama create命令创建个性化的模型,然后运行交互。

Ollama中允许用户基于现有模型进行定制化设置,如:调整模型推理参数、设置提示模版等,自定义模型需要创建一个Modelfile文件,在文件中设置参数和提示模版相关内容,如下: 1 2 3 4 5 6 7 8 9 10 FROM llama3.2 # set the temperature to 1 [higher is more creative, lower is more co...

ollama工具-下载安装快速上手

介绍本地大模型运行器Ollama,说明了如何安装、通过命令行下载并运行Gemma等模型进行交互,以及如何列出、删除模型。还演示了直接提问、查看效率和使用llava分析图片功能

简单来说Ollama就是一个大模型的管理平台,“LLM 运行器” 或 “本地 LLM 管理器” Ollama 是一个基于 Go 语言开发的简单易用的本地大语言模型运行框架。可以将其类比为 docker,事实上它也的确制定了类 docker 的一种模型应用标准 在管理模型的同时,它还基于 Go 语言中的 Web 框架 gin提供了一些 Api 接口,让你能够像跟 OpenAI...

026 哈希表,有序表和比较器的用法

哈希表(集):O(1)操作依赖hashCode/equals;有序表(集):O(log n)操作依赖比较器维护顺序。介绍根据值/地址作键、数组替代哈希表场景、比较器定制和字典序概念。

概览: 前置知识:无 提醒:讲解虽然用的java语言,但是任何语言都有对等的概念 提醒:后续有专门的章节来详解哈希函数、有序表,这节课就是常规用法展示 哈希表的用法(认为是集合,根据值来做key 或者 根据内存地址做key) HashSet和HashMap原理一样,有无伴随数据的区别 增、删、改、查时间为O(1),但是大常数 所以当key的范围是固定的、可控的情况下,可以用...

java基础(2) 实现hashCode方法的通用约定

hashCode的通用约定确保哈希表等数据结构能正确运行:首先,如果两个对象通过equals方法比较是相等的,它们的hashCode必须相同;其次,只要用于equals比较的对象信息未变,单次程序运行中同一对象的hashCode必须保持一致;最后,虽然不强制要求,但为了提高性能,不相等的对象应尽量产生不同的hashCode以减少哈希冲突。

实现hashCode方法的通用约定 在应用程序的执行期间,只要对象的equals方法的比较操作所用到的信息没有被修改,那么对这个同一对象调用多次,hashCode方法必须始终如一地返回同一个整数。在同一个应用程序的多次执行过程中,每次执行所返回的整数可以不一致。 如果两个对象根据equals(Object)方法比较是相等的,那么调用这两个对象中任意一个对象的hashCode方...

025 堆结构与堆排序

堆是数组实现的完全二叉树,核心操作为向上(heapInsert)和向下(heapify)调整(O(log n))。堆排序先建堆(O(n)或O(n log n)),再交换堆顶并调整。整体时间复杂度O(n log n),空间O(1)。堆结构本身比堆排序更有用。

概览: 前置知识:无 堆结构 完全二叉树和数组前缀范围来对应,大小,单独的变量size来控制 i的父亲节点:(i-1)/2,i的左孩子:i*2 + 1,i的右孩子:i*2 + 2 堆的定义(大根堆、小根堆),本节课讲解按照大根堆来讲解,小根堆是同理的。 堆的调整:heapInsert(向上调整)、heapify(向下调整) heapInsert、heapify方法的单次调用...

力扣2607 使子数组元素和相等

优化

2607. 使子数组元素和相等 这道题本身比较难,需要掌握裴蜀定理。 我今天想到的优化就是把原先数组排序找中位数,直接变成只寻找中位数(利用最近学到的寻找kth大的数来解决,随机选择的思想),优化找中位数的这一步的时间复杂度(时间复杂度这一步做到O(N),N不是原数组的大小,而是temp数组的大小) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17...

024 随机选择算法,BFPRT算法

本博客讲解了在无序数组中寻找第K大元素的两种方法:随机选择算法和BFPRT算法。随机选择算法基于快排思想,期望时间复杂度为O(n),但证明较复杂。BFPRT算法通过选取“中位数的中位数”作为pivot,保证最坏情况下时间复杂度也为O(n),但实现稍复杂。博客提供了两种算法的Java代码,并强调BFPRT算法的意义在于其规避最坏情况,优化算法的思想。

前置知识:讲解023-随机快速排序 笔记 下面的我是指左老师本人 本节视频链接 本节leetcode链接:https://leetcode.cn/problems/xx4gT2/description/ 本题与主站 215 题相同: https://leetcode-cn.com/problems/kth-largest-element-in-an-array/...