- 博客(143)
- 资源 (14)
- 收藏
- 关注
原创 invokevirtual和invokestatic
在 Java 中,和是字节码指令,用于调用方法。它们的主要区别在于和。用于调用(非静态方法)。实例方法依赖于对象实例,需要通过对象来调用。。用于调用(类方法)。静态方法不依赖于对象实例,直接通过类名调用。。需要作为调用者。在运行时,JVM 会根据对象的实际类型(动态绑定)决定调用哪个方法(多态)。例如:javaa.sound();// 调用 Dog 的 sound 方法对应的字节码:plaintext不需要对象实例,直接通过调用。在编译时就已经确定调用的方法(静态绑定)。
2025-03-21 01:11:11
860
原创 距离上海市最近的2025年招非全MEM的非上海事的院校
以下是距离上海市较近的2025年招收非全日制MEM(工程管理硕士)的非上海市院校信息,按距离从近到远排列。学费、招生人数等信息为2023年数据,2025年可能会有调整。以上距离为直线距离,实际交通距离可能更长。:MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理):MEM(工程管理)
2025-03-18 16:56:14
617
原创 输入:0.5元/百万tokens(缓存命中)或2元(未命中) 输出:8元/百万tokens
当请求的数据不在缓存中时,称为缓存未命中。如果你输入的数据已经在缓存中(缓存命中),则输入成本为 0.5 元/百万 Tokens。无论缓存是否命中,输出的 Tokens 都会按照 8 元/百万 Tokens 收费。无论缓存是否命中,输出 Tokens 的收费固定为 8 元/百万 Tokens。如果数据不在缓存中(缓存未命中),则输入成本为 2 元/百万 Tokens。如果数据在缓存中,收费较低(0.5 元/百万 Tokens)。如果数据不在缓存中,收费较高(2 元/百万 Tokens)。
2025-03-13 17:47:40
915
原创 Hystrix 实现限流\降级\熔断
限流: 通过线程池和队列大小限制并发请求。降级: 当命令失败时,返回备用结果。熔断: 当错误率超过阈值时,熔断器打开,直接进入降级逻辑。Hystrix 是一个强大的工具,但需要注意的是,Netflix 已经停止维护 Hystrix,推荐使用 Resilience4j 或 Spring Cloud Circuit Breaker 作为替代方案。如果你有更多问题,欢迎继续提问!
2025-03-10 11:24:46
811
原创 jvm 配置
export JAVA_OPTS="-Djava.library.path=/usr/local/lib -server -Xms10649m -Xmx10649m -XX:MaxPermSize=256m -XX:PermSize=256m -XX:MaxDirectMemorySize=1966m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export
2025-03-07 14:35:56
1079
转载 谈JVM线程和内存参数合理性设置
堆内内存包括年轻代(浅绿色),老年代(浅蓝色),在JDK7或者更老的版本,图中右边还有个永久代(永久代在逻辑上位于JVM的堆区,但又被称为非堆内存,在JDK8中被元空间取代)。这两个优化目标是有冲突的,不同的GC方法优化标的有所不同,并且在一定范围内,参与GC的线程数越多,停顿时长越小,但吞吐量也越小。ConcGCThreads一般称为并发标记线程数,为了减少GC的STW的时间,CMS和G1都有并发标记的过程,此时业务线程仍在工作,只是并发标记是CPU密集型任务,业务的吞吐量会下降,RT会变长。
2025-03-07 13:58:39
103
原创 意向锁的目的
支持表级锁和行级锁的共存。它是一种表级锁,但不会阻塞其他事务对表中其他行的操作。意向锁通过“预告”事务的加锁意图,使得数据库可以快速判断锁冲突,从而提升并发性能。
2025-03-06 21:35:44
348
原创 SELECT ... FOR UPDATE 加锁后,其他线程能读取数据吗
读取未提交数据:仅在级别下允许。读取已提交数据:在和级别下允许,但可能限制更多。因此,加锁后,其他事务能否读取数据取决于数据库的隔离级别。
2025-03-06 21:20:00
321
原创 在线DDL
MySQL 5.6 及以上版本支持多种在线 DDL 操作,包括添加列、删除列、修改列类型、添加索引、删除索引、重命名表、设置默认值和删除默认值等。在线 DDL 提高了数据库的可用性和性能,但在执行时仍需注意锁机制、资源消耗和版本差异等问题。功能,允许在不锁定表或最小化锁定的情况下执行某些 DDL 操作。这大大提高了数据库的可用性和性能。从 MySQL 5.6 开始,引入了。
2025-03-06 15:54:54
368
原创 SQL分几种
SQL(Structured Query Language)是用于管理关系型数据库的标准语言。掌握这些 SQL 语句类型,可以更好地管理和操作关系型数据库。用于定义或修改数据库结构(如表、索引、视图等)。用于对数据库中的数据进行增、删、改操作。用于从数据库中查询数据。用于控制数据库访问权限。用于管理数据库事务。
2025-03-06 11:29:05
590
原创 MySQL 中,SELECT ... FOR UPDATE
主要用于防止其他事务修改或删除被锁定的行,但通常不会阻止其他事务读取快照数据。的行,但读取的是事务 A 加锁之前的快照数据。假设有两个事务:事务 A 和事务 B。隔离级别下,事务 B 可以读取。语句会对查询结果集中的行加。在 MySQL 中,
2025-03-06 11:22:46
271
原创 SELECT/DELETE/ UPDATE/ INSERT 语句会自动加锁
在 MySQL 中,SELECTDELETEUPDATE和INSERT语句是否会加锁,以及加什么锁,取决于和。
2025-03-06 11:13:05
984
1
原创 DELETE/ UPDATE/ INSERT 语句会自动加锁
在数据库系统中,DELETEUPDATE和INSERT语句通常会自动加锁,以确保数据的一致性和并发控制。具体的锁类型和效果取决于数据库的实现(如 MySQL、PostgreSQL 等)以及事务的隔离级别。
2025-03-06 10:52:23
551
原创 对象头(Object Header)中的 Mark Word 在32位和64位系统中有显著区别
压缩后的指针可以表示最大35位的地址空间(32GB堆内存),通过左移3位(乘以8)还原为64位地址。:JVM要求对象在内存中按8字节对齐,因此即使开启指针压缩,对象头大小仍可能对齐到16字节。在实际开发中,建议在64位系统上开启指针压缩(默认开启),以减少内存开销并提升性能。由于指针长度增加(64位),对象头的大小会显著增大,导致内存开销增加。:通过压缩类型指针,减少内存占用,适合堆内存小于32GB的场景。内存占用较大,尤其是小对象(如只有几个字段的对象)会显得浪费。与32位类似,但可存储更多的信息。
2025-03-05 17:53:59
487
原创 自定义类加载器
实现类的隔离问题:在同一个JVM中运行多个应用程序或模块时,如果这些应用程序或模块依赖不同版本的同一个类库,可能会导致冲突。解决方案:通过自定义类加载器,可以为每个应用程序或模块创建独立的类加载器,从而实现类的隔离。典型场景Web应用服务器(如Tomcat)为每个Web应用创建独立的类加载器,避免不同Web应用之间的类冲突。插件化架构中,为每个插件创建独立的类加载器。继承类java复制// 实现自定义逻辑重写findClass方法在该方法中实现从自定义来源加载类的逻辑。调用。
2025-03-05 13:53:44
647
原创 ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue 和 PriorityBlockingQueue 使用示例
适合固定大小的任务队列。:适合高吞吐量的任务队列。:适合直接传递任务的场景。:适合按优先级处理任务的场景。根据具体需求选择合适的队列类型。
2025-03-05 10:31:39
661
原创 ArrayBlockingQueue: LinkedBlockingQueue: ;SynchronousQueue: ;PriorityBlockingQueue:
无界队列和默认情况下的。有界队列和指定容量后的。特殊队列。
2025-03-05 10:30:24
313
1
原创 删除变慢问题
随着数据逐步删除,剩余的数据量减少,但数据库仍然需要扫描整个表(或索引)来找到符合条件的记录,尤其是在数据分布不均匀的情况下,查询效率会显著下降。删除操作不仅会删除数据,还会更新索引、写入事务日志(如MySQL的undo log和redo log),并可能触发锁机制(如行锁或表锁)。频繁的删除操作会导致数据页(Data Page)出现碎片化,数据库在查询时需要扫描更多的数据页来找到符合条件的记录,从而降低查询效率。这种方法可以减少对主表的操作压力。:使用的索引,如果没有使用索引,可能需要优化索引设计。
2025-02-28 17:33:28
757
原创 META-INF 文件夹用途
META-INF文件夹是 Java 应用程序和库中用于存放元数据和配置文件的标准目录。存放文件。存放 SPI 配置文件。存放签名文件。存放 Spring 配置文件。存放资源文件。存放 OSGi 配置文件。存放 Java 9+ 模块描述文件。存放扩展配置文件。存放许可证文件。合理使用META-INF文件夹可以提高应用程序的可维护性和扩展性。
2025-02-18 11:40:05
780
原创 java中共有四种访问级别(Access Modifiers)
在 Java 中,访问级别(Access Modifiers)用于控制类、方法、变量等成员的可见性和访问权限。Java 提供了private。
2025-02-18 10:43:48
420
原创 DeepSeek应用场景及其解决的问题
DeepSeek 在企业级应用开发中的应用场景非常广泛,主要解决了企业在数据处理、信息检索、自动化、风险管理和决策支持等方面的痛点。通过深度学习技术,DeepSeek 能够提升企业的运营效率,降低人工成本,并帮助企业从海量数据中挖掘出有价值的信息,支持业务创新和增长。
2025-02-17 17:15:58
2257
原创 强软弱虚引用类型
在Java中,“强软弱虚”是指四种不同的引用类型,它们分别是:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。这些引用类型决定了对象的生命周期和垃圾回收器的行为。,因为虚引用的目的是为了跟踪对象的回收,而不是为了访问对象。虚引用(Phantom Reference)强引用(Strong Reference)软引用(Soft Reference)弱引用(Weak Reference)
2025-01-13 21:12:01
229
原创 java远程调试
在IDE(如Eclipse、IntelliJ IDEA等)或者其他支持JDWP调试的工具中,配置远程调试连接,连接到上述启动命令中指定的地址和端口(例如,请注意,确保在启动Java应用程序的计算机上没有其他进程占用了端口5005,否则可能会导致连接失败。这是一条Java调试参数,用于启动Java应用程序并允许远程调试。运行调试器,并在IDE或工具中设置断点、单步执行等调试操作。是您的Java应用程序的主类。
2025-01-06 14:48:20
231
原创 什么时候用the
如果你指的是不可数的名词(如液体、气体或抽象概念),通常不使用 "the"。:如果你指的是某类事物而不是特定的事物,通常不使用 "the"。:如果你指的是一般的、非特定的多个事物,通常不使用 "the"。:如果你指的是特定的、已知的地点或区域,通常使用 "the"。:如果你指的是特定的、已知的组织或团体,通常使用 "the"。:如果你指的是特定的、已知的人或事物,通常使用 "the"。:如果你指的是世界上只有一个的实体,通常使用 "the"。:如果你指的是抽象的概念或品质,通常不使用 "the"。
2024-12-16 11:01:53
315
原创 mysql 双1设置
和。这两个参数都与 MySQL 的数据安全和性能有关。:这个参数控制了 InnoDB 引擎中事务日志的刷新频率。"双1"设置中,这个参数通常被设置为 1,以确保数据的安全性。:这个参数控制了 MySQL 的二进制日志的同步写入频率。"双1"设置中,这个参数也通常被设置为 1,以确保数据的安全性。总的来说,"双1"设置是为了在保证数据安全的前提下,尽可能地提高 MySQL 的性能。这种设置可以防止在崩溃或电源故障时丢失已提交的事务数据,但也可能会对性能产生一定的影响。
2024-12-05 21:31:18
1017
原创 JDK 动态代理和 CGLIB 代理
JDK 动态代理适合于接口的情况,而 CGLIB 代理适合于没有接口的类。JDK 动态代理性能稍低,CGLIB 代理性能更高,但不能代理 final 类或方法。在选择使用哪种代理时,可以根据具体需求和目标类的特性来决定。
2024-12-05 17:38:04
462
原创 代理相关总结
代理模式通过引入代理对象来控制对目标对象的访问,增强功能,并解决了多个设计问题。根据不同的需求,可以选择静态代理、动态代理或 CGLIB 代理来实现。动态代理和 CGLIB 代理通常更灵活,适合在框架中使用。
2024-12-05 17:31:23
353
原创 Mockito 框架
是 Mockito 框架中的一个核心类,用于创建和配置 mock 对象。Mockito 是一个流行的 Java mocking 框架,用于在单元测试中创建模拟对象,以便于隔离被测试的代码(SUT)与其依赖项之间的交互。
2024-12-05 16:22:13
282
原创 一个死锁日志
RECORD LOCKS space id 1588 page no 58 n bits 696 index idx_pinof tabledbName_info.user_extend trx id 7641DF368 lock_mode X waiting:说明事务2正在等待一个排他锁(lock_mode X),以便对表user_extend的非主键索引idx_pin进行操作。mysql tables in use 1, locked 1:说明事务1正在使用1张表,并且已经锁定了1张表。
2024-11-25 16:52:22
921
原创 let声明
let声明用于声明可重新赋值的块级作用域局部变量,并且可以选择将其初始化为一个值。要声明的变量的名称。必须是合法的 JavaScript或。可选变量的初始值。可以是任意合法的表达式。默认值为undefined。用let声明的变量的作用域是最靠近并包含letlet相较于letlet声明的作用域是块或函数。let声明的变量只能在执行到声明所在的位置之后才能被访问(参见因此,let声明通常被视为是。let声明在脚本的顶级作用域上声明变量时不会在上创建属性。let声明的变量不能被同一个作用域中的任何其他声明。
2024-11-19 16:08:31
756
原创 mysql出现主备延迟之后,怎么处理
MySQL 的主备延迟通常指的是主库(Master)与备库(Slave)之间的数据同步延迟。出现这种情况可能会导致备库的数据落后于主库,从而影响数据的可用性和一致性。
2024-11-18 16:26:05
520
spring mvc 依赖包
2014-04-12
axis2_1.6.2 eclipse插件
2014-03-13
Flex4权威指南 清晰中文版
2012-04-28
葵花宝典 jsp
2011-11-04
java 葵花宝典
2011-11-04
精通Servlet.doc
2011-11-04
基于JSP的简单BBS
2010-08-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人