Java
JUC源码讲解:逐步解析 Thread.start() 源码
JUC源码讲解:逐步解析 Thread.start() 源码 抛出问题 当 new Thread() 时,线程会进入 NEW 状态,如果我们想要使用线程,就需要调用 start() 方法,那么,在使用 star() 时发生了什么?有什么需要注意的?线程是怎么一步步被创建的?跟着我一起分析源码吧! 阅读源码 为了方便讲解,我先把源码贴出来,然后逐步讲解每一步的作用 我们先看这个方法头部分: 注意
安装JDK11+Tomcat10.0.1+eclipse-jee-2023-12-R-win32-x86_64 配置
第一步,先双击启动软件: 改一下名称:C:UsersAdministratoreclipse-workspace 变成:C:Program FilesJava Java:为什么JSP文件要放到SpringBoot工程的src/main/webapp目录下 参考文章:https://blog.csdn.net/netyeaxi/article/details/100928105 为了看到更具体的
什么是Elasticsearch?
介绍 当人们问“什么是Elasticsearch?”时,有些人可能会回答说它是“一个索引”,“一个搜索引擎”,“分析数据库”,“一个大数据解决方案”,“它快速且可扩展”,或者“它有点像谷歌”。根据您对这项技术的熟悉程度,这些答案可能会使您更接近啊哈时刻,或者让您进一步困惑。但事实是,所有这些答案都是正确的,这是Elasticsearch吸引力的一部分
Jetpack Compose(3) —— 状态管理
上一篇文章拿 TextField 组件举例时,提到了 State,即状态。本篇文章,即讲解 State 的相关改概念。 一、什么是状态 与其它声明式 UI 框架一样,Compose 的职责非常单纯,仅作为对数据状态的反应。如果数据状态没有改变,则 UI 永远不会自行改变。在 Compose 中,每一个组件都是一个被 @Composable 修饰的函数,其状态就是函数的参数,当参数不变,则函数的输出
1. 对Vue的理解
一、为什么说Vue是渐进式框架 Vue是一个框架,也是一个生态,其功能覆盖了大部分前端开发常见的需求。包含了声明式渲染、组件化系统、客户端路由、大规模状态管理、构建工具等,但vue的核心库只关注视图层。在实际开发中,可以根据业务需求的变化,来不断增加这些功能,这种渐进式的开发方式使得Vue非常灵活,能够适应不同规模和复杂度的项目。 二、声明式框架 声明式框架允许开发者专注于业务逻辑或UI的组织,而
Flutter GetX系列教程---Cli使用以及常用命令
GetX Cli安装 第一步:安装Cli脚手架 我们通过命令flutter pub global activate get_cli 进行脚手架的全局安装,本文以MacOS为例。 第二步:设置环境变量 一般Mac的环境变量都是通过根目录的 code ~/.zshrc 进行环境变量设置。 第三步:使设置的环境变量生效 我们可以通过source 加上路径,对环境
Redission分布式锁实战
背景 通过springboot整合Redission实现分布式锁 可重入锁 可重入锁,也叫做递归锁,是指在一个线程中可以多次获取同一把锁,比如:一个线程在执行一个带锁的方法,该方法中又调用了另一个需要相同锁的方法,则该线程可以直接执行调用的方法【即可重入】,而无需重新获得锁;对于不同线程则相当于普通的互斥锁。 为什么要用可重入锁,因为即时在单线程的环境下,方法直接互相调用是十分场景的,比如方法
通过Treeset解决随机数排序问题
题目链接:https://www.nowcoder.com/practice/3245215fffb84b7b81285493eae92ff0?tpId=37&tqId=21226&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D37&difficult
面试官:微服务通讯方式有哪些?
微服务的通讯方式主要有以下几种: RESTful API:基于 HTTP 协议的 RESTful API 是最常用的微服务通讯方式之一。服务之间通过 HTTP 请求和响应进行通讯,实现数据交换。这种方式简单、通用,适用于各种场景,但可能不适合对实时性要求非常高的场景。 RPC(远程过程调用):RPC 允许一个服务像调用本地方法一样调用另一个服务的方法。它通过将方法调用封装成网络数据包并在不同的
Pageoffice6 实现后台批量转PDF文档
在实际项目开发中如果遇到批量动态生成PDF文档的需求,只需参考后台批量生成PDF文档,目前网上也有一些针对此需求的方案,如果您想要了解这些方案的对比,请查看后台生成单个Word文档中的“方案对比”。 如果只是需要批量转PDF文件,那么也可以使用PageOffice提供的FileMaker组件来实现,与“后台批量生成PDF文档”不同的地方仅是:批量转PDF文件不需要WordDocument对象动态填
理解 Rust 中的生命周期
Ownership, Borrowing 与 Lifetime 共同成就了 rust 中的内存安全,也是 rust 语言中最精髓的创造,我们就来学习学习它们究竟是什么,为什么要引入这些概念。 权力与风险共生 权力与风险往往是一同出现。如果你被授予了制作核弹的权力,那么在你制造它时其实是面临着诸多的风险。 早期的编程语言如 C/C++ 赋予了程序员极高的权力,它们能自由地操作计算机的内存(虚拟内存)
Spring的核心思想之IOC:仿Spring自定义一个实现IOC的容器
IoC Inversion of Control (控制反转/反转控制),是⼀个技术思想而不是⼀个技术实现。它描述的是Java开发领域对象的创建,管理的问题 ——传统开发⽅式:⽐如类A依赖于类B,往往会在类A中new⼀个B的对象,而在 IoC思想下开发⽅式:使用者不⽤⾃⼰去new对象了,由IoC容器(Spring框架或其他)帮助使用者实例化对 象并且管理它,使用者需要使⽤哪个对象,去问IoC容
【设计模式】Reactor 模式简介
如果你熟悉 Java 的 23 种设计模式,看到“Reactor 模式”可能就会一脸懵逼,这是什么鬼。Reactor 是一种应用在服务器端的开发模式(也有说法称 Reactor 是一种 IO 模式),目的是提高服务端程序的并发能力。 Reactor 模式 它要解决什么问题呢?传统的 thread per connection 用法中,线程在真正处理请求之前首先需要从 socket 中读取网络请求,
Vue 3 组件通信与 ViewDesign 最佳实践
Vue 3 组件通信与 ViewDesign 最佳实践 随着 Vue 3 的发布,组件通信成为了前端开发中一个值得关注的话题。通过有效的组件通信方式,可以大幅提高代码的可维护性和可重用性。本文将探讨 Vue 3 中组件通信的几种方式,并使用 ViewDesign 组件库中的实例加以说明。 ViewDesign 是一款基于 Vue 3 的高质量 UI 组件库,拥有高度模块化、可定制化的特点,可以有
Dockerfile 部署jar包
防火墙端口添加: firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) 重新载入 firewall-cmd --reload 查看 firewall-cmd --zone= public --query-port=80/tcp 删除 firewall-cmd --zone=
深入理解 ELK 中 Logstash 的底层原理 + 填坑指南
深入理解 ELK 中 Logstash 的底层原理 + 填坑指南 <img src="https://pic4.zhimg.com/v2-3afecd9bcad8087524ef7db1f8f51abf_b.jpg" data-rawwidth="722" data-caption="" data-size="normal" data-rawheight="500" class="origi
java8中,Arrays.sort()默认是升序的,对于基本数据类型,使其降序怎么实现
对于引用数据类型,自定义比较器对象,实现 Comparator 接口/Comparable接口 对于基本数据类型,自定义比较器对象,将基本数据类型转换成对应的包装类型即可 但是这样写是错误的, 如下可行 chatgpt 回答如下
两种语言实现设计模式(C++和Java)(二十:模板模式)
很久之前的设计模式系列漏掉了模板模式,现补上 概述 模板模式是一种行为型设计模式,它定义一个算法的骨架,并允许子类在不改变算法结构的情况下重新定义算法的某些步骤。模板模式的主要目的是通过把不变的行为搬移到超类,去除子类中的重复代码来体现它的优势。 模板模式的主要结构包括: 抽象类(Abstract Class):定义了一个算法的骨架,它的模板方法定义了算法的基本步骤,可以包含一个或多个抽象操作
Vue2.x笔记:组件通信
目录一、插槽 slot1. 默认插槽2. 具名插槽3. 作用域插槽二、props1. props的声明与传值2. 特殊属性: this.$attr三、自定义事件1. 绑定自定义事件2. 解绑自定义事件四、Vuex1. Vuex概念2. 安装和引入Vuex3. vuex的基础用法4. mapState、mapGetters、mapActions和mapMutations5. Vuex模块化编码五、
SpringBoot文件下载
SpringBoot文件下载 文件下载方式的选择需要根据结合实际情况选择,如果是下载小文件,则可以读取整个文件先放入内存中,如果文件有几十上百兆,则应该考虑使用缓冲流,避免读取内容过大导致内存资源耗尽乃至宕机。 指定下载文件名称 下载文件时使用指定文件名称进行保存文件,需要在响应头中设置属性Content-Disposition中的filename,示例如下: 其中Content-Disposi
Android RecyclerView的使用(以实现一个简单的动态聊天界面为例)
RecycleView可以实现动态列表的功能,毕竟在实际开发中大多数情况下不可能提前知道一个列表要塞进去多少东西。 比如说QQ微信的聊天栏界面,可以抽象成一个RecycleView(或者一个ListView),没人说话时列表为空,你发一句话我发一句话,这列表就长起来了。 再或者像是一些管理系统里,每一个物品号旁边还有一个删除按钮,点击后删除这个物品这一栏(连按钮也一块删除),可控件一般是静态的,这
es聚合查询自动补0----java代码
ES语句 GET /event_log_hulianwang_v3/_search { "size": 0, "query": { "bool": { "must": [ { "term": { "event_type.keyword": "终端事件"