加锁的方式有哪些 ?

使用synchronized关键字 使用Lock锁 synchronized和Lock有什么区别 ? 首先synchronized是Java内置关键字,在JVM层面,Lock是个Java类; synchronized 可以给类、方法、代码块加锁;而 lock 只能给代码块加锁。 synchronized 不需要手动获取锁和释放锁,使用简单,发生异常会自动释放锁,不会造成死锁; 而 lock 需要自己加锁和释放锁,如果使用不当没有 unLock()去释放锁就会造成死锁。 通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到。

314 0

== 和 equals 的区别是什么

== : 它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数 据类型 == 比较的是值,引用数据类型 == 比较的是内存地址) equals() : 它的作用也是判断两个对象是否相等。

270 0
|
Java 容器 Spring
|

什么是Spring IOC 和DI ?

IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。 DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。

513 3
|
存储 算法
|

HashMap的实现原理?

HashMap的数据结构: HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。 HashMap 基于 Hash 算法实现的 1. 当我们往HashMap中put元素时,利用key的hashCode重新hash计算出当前对象的元素在数 组中的下标 2. 存储时,如果出现hash值相同的key,此时有两种情况。 a. 如果key相同,则覆盖原始值; b. 如果key不同(出现冲突),则将当前的key-value放入链表中 3. 获取时,直接找到hash值对应的下标,在进一步判断key是否相同,从而找到对应值。 HashMap JDK1.8之前 JDK1.8之前

259 0

HashMap的put方法的具体流程?

1. 判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容; 2. 根据键值key计算hash值得到插入的数组索引i,如果table[i]==null,直接新建节点添加,转向 ⑥,如果table[i]不为空,转向③; 3. 判断table[i]的首个元素是否和key一样,如果相同直接覆盖value,否则转向④,这里的相同指的 是hashCode以及equals; 4. 判断table[i] 是否为treeNode,即table[i] 是否是红黑树,如果是红黑树,则直接在树中插入键值 对,否则转向5; 5. 遍历table[i],判断链表长度是否大于8,大于8的

472 0

线程池的核心参数有哪些 ?

corePoolSize 核心线程数量 maximumPoolSize 最大线程数量 keepAliveTime 线程保持时间,N个时间单位 unit 时间单位(比如秒,分) workQueue 阻塞队列 threadFactory 线程工厂 handler 线程池拒绝策略

380 0

common-lang3

common-lang3

247 0
|
XML JSON 数据格式
|

JSONUtil

JSONUtil

250 0
|
安全 数据安全/隐私保护
|

SpringSecurity核心功能

SpringSecurity核心功能

291 0
|
存储 Java
|

StringUtil

StringUtil

233 0
|
安全 Java 应用服务中间件
|

实现权限管理的技术

实现权限管理的技术

266 0
|
存储 JSON JavaScript
|

mangodb数据模型

数据模型

335 0
|
NoSQL 定位技术 MongoDB
|

MongoDB的特点

高性能 MongoDB提供高性能的数据持久性。特别对嵌入式数据模型的支持减少了数据库系统上的I/O活动。 索引支持更快的查询,并且可以包含来自嵌入式文档和数组的键。(文本索引解决搜索的需求、TTL索引解决历史数据自动过期的需求、地理位置索引可用于构建各种 O2O 应用) mmapv1、wiredtiger、mongorocks(rocksdb)、in-memory 等多引擎支持满足各种场景需求。 Gridfs解决文件存储的需求。 高可用性 MongoDB的复制工具称为副本集(replica set),它可提供自动故障转移和数据冗余。 高扩展性 MongoDB提供了水平可扩展性作为其核

302 0
|
JSON NoSQL 关系型数据库
|

MongoDB简介

MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构非常松散,是一种类似于 JSON 的格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。 MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。

417 0

@Inherited 注解的作用

@Inherited 注解的作用

369 0
|
XML Java 数据格式
|

整合Logback,滚动记录+多文件

整合Logback,滚动记录+多文件

211 0
|
存储 NoSQL 关系型数据库
|

MongoDB什么时候用

MongoDB什么时候用

237 0
|
Java 调度
|

Java线程池实现架构

Java线程池实现架构

289 0
|
存储 Java
|

什么是泛型擦除

什么是泛型擦除

243 0

Arrays.asList之后不要调用修改操作

Arrays.asList之后不要调用修改操作

165 0

使用 entrySet 遍历 Map 类集合 KV

使用 entrySet 遍历 Map 类集合 KV

297 0

什么是泛型擦除后保留的原始类型

什么是泛型擦除后保留的原始类型

191 0

编译时集合的instanceof

编译时集合的instanceof

177 0
|
缓存 数据库
|

并发修改同一记录时需要加锁

并发修改同一记录时需要加锁

260 0

SimpleDateFormat不要定义为static

说明:如果是 JDK8 的应用,可以使用 Instant 代替 Date,LocalDateTime 代替 Calendar,DateTimeFormatter 代替 SimpleDateFormat,官方给出的解释:simple beautiful strong immutable thread-safe。

193 0

jvm类常见加载顺序

jvm类常见加载顺序

247 0

泛型在静态方法和静态类中的问题

泛型在静态方法和静态类中的问题

198 0
|
Java 编译器
|

泛型擦除与多态的冲突与解决方法

泛型擦除与多态的冲突与解决方法

222 0
|
缓存 Java
|

线程池初始化严禁使用Executors

线程池初始化严禁使用Executors

359 0

初始化Map大小并非用多少指定多少

初始化Map大小并非用多少指定多少

266 0
|
人工智能 自然语言处理 IDE
|

通义灵码 Visual Studio 终于支持模型切换

如需使用灵码模型选择,需要开发者将灵码 IDE 插件更新到最新版,前往下载安装包安装

1857 0
|
C++ 自然语言处理 人工智能
|

VS Code通义灵码对话过长卡顿

1120 1
已解决
|
Serverless 人机交互 UED
|

鸿蒙特效教程01-哔哩哔哩点赞与一键三连效果实现教程

本教程面向HarmonyOS初学者,详细讲解如何实现类似哔哩哔哩APP中的点赞与一键三连效果。内容涵盖基础布局、状态切换、点击动画、长按手势识别、旋转缩放动画以及粒子爆炸效果的实现。通过ArkUI布局系统、状态管理、手势处理和动画技术,逐步完成从简单到复杂的交互设计。最终效果包括图标变色、缩放、旋转及粒子动画,为用户提供流畅生动的体验。适合希望掌握HarmonyOS开发技巧的开发者学习参考。

832 68
|
程序员 人工智能
|

模型会自动切换

246 1
已解决
|
人工智能 运维 数据可视化
|

凌晨急诊室诞生的疫苗系统:一个宝妈的AI破局之路

本文分享了一位妈妈在急诊室经历后,将技术与母爱结合的心路历程。从凌晨抱着高烧儿子就医,同时处理工作告警的崩溃时刻,到意识到妈妈和程序员都是“运维工程师”,作者逐步构建了宝宝疫苗管理系统。文章介绍了系统从静态命令行工具升级为动态智能预警系统的全过程,包括环境搭建、核心代码解析及家庭协同功能实现,并总结了碎片时间开发法与防坑指南。最终,作者通过技术赋予母爱温度,为其他妈妈提供了实用资源包,展现了代码背后的人文关怀。

487 5

Qoder CN

Qoder CN 是阿里云推出的 AI 智能体产品系列,覆盖软件开发与日常办公多元场景,包含面向编码场景的 Qoder CN(含 IDE、JetBrains/VS Code 插件)、面向日常工作的 QoderWork CN(桌面应用)、Qoder CLI CN(终端原生形态)等子产品。系列基于国内主流大模型与国内部署,满足金融、政务等行业对数据安全与合规的高要求。 更多信息欢迎加入用户交流群(钉钉群号53770000738)

0
今日
3389
内容
18
活动
2556
关注
你好!
登录掌握更多精彩内容