Press "Enter" to skip to content

分类: 编程-JAVA

THINKING IN JAVA 学习笔记

初始化与清理 1.finalize(),System.gc()方法一旦垃圾回收期准备好释放对象占用的存储空间,将首先调用其finalize()方法,并且在下一次垃圾回收动作发生时,才会释放对象占用的存储空间。而System.gc()表面上是强制进行垃圾回收,但并不意味着System.gc()执行后,Java虚拟机就立即执行垃圾回收的动作。它的作用在于告诉虚拟机,程序员希望此时进行一次垃圾回收,而真…

Leave a Comment

深入理解JAVA虚拟机

Java内存区域与内存溢出异常 运行时数据区域 (1) 程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础…

Leave a Comment

JPA map JSON column to Java Object

我们在使用jpa的时候,可能某些字段希望存一些比如map的数据类型。 我您可以使用JPA转换器将您的实体映射到数据库。 只需在字段中添加与此类似的注释: 然后创建一个转换类(这会转换一个通用的Object,你可能会更具具体场景来定制化这个类): 这样,就可以使用此类将任何对象序列化为表中的json字段。 参考:https://stackoverflow.com/questions/25738569…

Leave a Comment

Spring Cloud启动应用时指定IP或忽略某张网卡配置

说明:分布式应用部署到服务上,由于服务器可能存在多张网卡,造成IP地址不准的问题。 解决方法: 1、直接添加忽略某张网卡的配置: spring.cloud.inetutils.ignored-interfaces[0]=eth0 # 忽略eth0, 支持正则表达式 正则: spring.cloud.inetutils.ignored-interfaces=eth.* 2、指定默认IP: sprin…

Leave a Comment

Spring Data JPA 手动释放当前数据库会话

公司一次项目事故,项目在正常测试时没有问题,在实际生产并发场景下发生了线程锁死的状况。 后来分析原因,项目中在数据库查询时使用了多线程的写法。项目使用Spring Data JPA, 配置了 spring.jpa.open-in-view: True 该配置是为了关联模型查询方便,但是导致查询结束,当前访问会话未结算的情况下,数据库不释放连接。 后续子线程会尝试继续申请数据库连接,进而导致这种写法…

Leave a Comment