首页
学习
活动
专区
工具
TVP
发布

FREE SOLO

专栏成员
498
文章
729968
阅读量
37
订阅数
中级JAVA:JMM简介
JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存由缓存和堆栈两部分组成,缓存中保存的是主存中变量的拷贝,缓存可能并不总和主存同步,也就是缓存中变量的修改可能没有立刻写到主存中;堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈中的变量。
葆宁
2022-01-06
2690
对Hibernate二级缓存理解
缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
葆宁
2019-04-19
1.1K0
2019面试题:有没有使用过Redis? Redis是什么?
Redis是一个key-value的Nosql数据库,先存到内存中,会根据一定的策略持久化到磁盘,即使断电也不会丢失数据,支持的数据类型比较多。主要用来做缓存数据库的数据和web集群时当做中央缓存存放seesion。
葆宁
2019-04-19
9190
Redis的8大应用场景
Redis开创了一种新的数据存储思路。使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。
葆宁
2019-04-19
16.5K0
数据库优化之(创建索引、分表、读写分离、缓存)
索引(Index)是帮助DBMS高效获取数据的数据结构。 分类:普通索引/唯一索引/主键索引/全文索引。
葆宁
2019-04-19
1.4K0
谈谈MySQL优化方面的常用方法(最详细)
1.选取最适用的字段属性,可以的情况下,应该尽量把字段设置为NOT NULL 2.使用连接(JOIN)来代替子查询 3.使用联合来代替手动创建的临时表 4.增删改或者多条查询数据时使用事务操作 5.锁定表(代替事务的另一种方法) 6.使用外键(锁定表的方法可以维护数据的完整性,但它不能保证数据的关联性,应该使用外键) 7.可以优化SQL查询算法,提高查询速度 8.给数据量大的查询次数频繁而修改次数少的数据表添加索引,提升查询速度
葆宁
2019-04-19
2K0
为什么数组查询效率高于链表?
各级别的存储器速度差异非常大,CPU寄存器速度是内存速度的100倍! 这就是为什么CPU产商发明了CPU缓存。 而这个CPU缓存,就是数组和链表的区别的关键所在。
葆宁
2019-04-18
1.5K0
怎么保证 redis 和 db 中的数据一致
读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。
葆宁
2019-04-18
1.3K0
Java 有几种文件拷贝方式?哪一种最高效?
利用 java.io 类库,直接为源文件构建一个 FileInputStream 读取,然后再为目标文件构建一个FileOutputStream,完成写入工作。
葆宁
2019-04-18
8070
谈谈 Integer 的值缓存范围和对象大小
int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types,boolean、byte、short、char、int、float、double、long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例外。
葆宁
2019-04-18
2.4K0
强引用、软引用、弱引用、幻象引用有什么区别?
特点:我们平常典型编码Object obj = new Object()中的obj就是强引用。通过关键字new创建的对象所关联的引用就是强引用。 当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也不会靠随意回收具有强引用的“存活”对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为 null,就是可以被垃圾收集的了,具体回收时机还是要看垃圾收集策略。
葆宁
2019-04-18
5510
JMM简介
JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存由缓存和堆栈两部分组成,缓存中保存的是主存中变量的拷贝,缓存可能并不总和主存同步,也就是缓存中变量的修改可能没有立刻写到主存中;堆栈中保存的是线程的局部变量,线程之间无法相互直接访问堆栈中的变量。
葆宁
2019-04-18
1.2K0
如何监控和诊断JVM堆内和堆外内存使用?
可以使用综合性的图形化工具,如JConsole、 VisualVM(注意,从Oracle JDK 9开始, VisualVM已经不再包含在JDK安装包中)等。这些工具具体使用起来相对比较直观,直接连接到Java进程,然后就可以在图形化界面里掌握内存使用情况。 以JConsole为例,其内存页面可以显示常见的堆内存和各种堆外部分使用状态。
葆宁
2019-04-18
2K0
Java并发类库提供的线程池有哪几种? 分别有什么特点?
通常开发者都是利用 Executors 提供的通用线程池创建方法,去创建不同配置的线程池,主要区别在于不同的 ExecutorService 类型或者不同的初始参数。
葆宁
2019-04-18
1.1K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档