- (十六)Flink 状态管理
springk
Flink全景解析flink大数据实时数据实时数据处理状态管理flink状态管理
目录状态类型KeyedStateKeyedState分类状态有效期(TTL)过期数据的清理OperatorStateBroadcastState状态存储StateBackends分类设置StateBackendRocksDBStateBackend详解在Flink架构体系中,状态(State)计算是其重要的特性之一。状态用来保存中间计算结果或缓存数据。比如:当应用程序搜索某些事件模式时,状态将存储
- Rocksdb Tuning
MOONICK
数据库
Rocksdb配置选项尤其繁多,想要获得真正的高性能,需要进行详细的调优,这是项复杂的工作,需要在实践中积累经验:https://www.jianshu.com/p/8e0018b6a8b6https://cloud.tencent.com/developer/article/2329992调优RocksDB通常就是在三个amplification之间做取舍:Writeamplification-
- 翻译 Basic Operations Compaction Filter
i_need_job
原文地址:https://github.com/facebook/rocksdb/wiki/Compaction-Filter(有道)RocksDBprovidesawaytodeleteormodifykey/valuepairsbasedoncustomlogicinbackground.Itishandyforimplementingcustomgarbagecollection,liker
- Flink大状态和Checkpoint调优
orange大数据技术探索者
#flink迁移flink大数据
文章迁移,待整理2.状态和Checkpoint调优2.1大状态调优我们生产大多数会使用fsState,memState程序挂了状态就丢了,应该没人会在生产使用,但是涉及到一些大状态,fsState效率很低,这时候会选择rocksDbState1.RocksDb为什么效率高基于LSMTree实现,类似Hbase的读写方式,state.backend.local-recovery:true写数据内存即
- SpanDB: A Fast, Cost-Effective LSM-tree Based KV Store on Hybrid Storage——论文泛读
妙BOOK言
论文阅读论文阅读KV存储lsm-tree
FAST2021Paper论文阅读笔记整理问题键值(KV)存储支持许多关键的应用和服务。它们在内存中执行快速处理,但通常受到I/O性能的限制。最近出现的高速NVMeSSD推动了新KV系统设计,以利用其低延迟和高带宽。挑战当前基于LSM树的KV存储未能充分发挥NVMeSSD的全部潜力。例如,在OptaneP4800X上部署RocksDB,相对于SATASSD,对于50%写入的工作负载,吞吐量仅提高了
- MatrixOne---MatrixKV产品体验
☞ ♚ ☜
docker容器java
MatrixKvMatrixKV是一个简单的分布式强一致KV存储系统,采用Pebble作为底层的存储引擎,MatrixCube作为分布式组件,以及自定义了最简单的读写请求接口。用户可以非常简单的在任意一个节点发起读写数据的请求,也可以从任意一个节点读到需要的数据。如果对TiDB架构比较熟悉的同学可以把MatrixKV等同于一个TiKV+PD,而MatrixKV其中使用的RocksDB换成了Pebb
- ledger-rocksdb
浪迹天涯1188
RocksDBisahighperformancembeddeddatabaseforkey-valuedata。https://crates.io/crates/rocksdb
- 【图文详解】一文全面彻底搞懂HBase、LevelDB、RocksDB等NoSQL背后的存储原理:LSM-tree 日志结构合并树
禅与计算机程序设计艺术
LSM树广泛用于数据存储,例如RocksDB、ApacheAsterixDB、Bigtable、HBase、LevelDB、ApacheAccumulo、SQLite4、Tarantool、WiredTiger、ApacheCassandra、InfluxDB和ScyllaDB等。在这篇文章中,我们将深入探讨LogStructuredMergeTree,又名LSM树:许多高度可扩展的NoSQL分布
- 翻译 BlobDB
i_need_job
网址:https://github.com/facebook/rocksdb/wiki/BlobDBBlobDBisessentiallyRocksDBforlarge-valueusecases.Thebasicidea,whichwasproposedintheWiscKeypaper,iskey-valueseparation:bystoringlargevaluesindedicatedb
- RocksDB是如何实现存算分离的
archimekai
微服务分布式架构
核心参考文献:Dong,S.,P,S.S.,Pan,S.,Ananthabhotla,A.,Ekambaram,D.,Sharma,A.,Dayal,S.,Parikh,N.V.,Jin,Y.,Kim,A.,Patil,S.,Zhuang,J.,Dunster,S.,Mahajan,A.,Chelluri,A.,Datye,C.,Santana,L.V.,Garg,N.,&Gawde,O.(202
- Flink问题解决及性能调优-【Flink rocksDB读写state大对象导致背压问题调优】
PONY LEE
Flink问题解决及性能调优flink大数据
RocksDB是Flink中用于持久化状态的默认后端,它提供了高性能和可靠的状态存储。然而,当处理大型状态并频繁读写时,可能会导致背压问题,因为RocksDB需要从磁盘读取和写入数据,而这可能成为瓶颈。遇到的问题Flink开发中遇到读写state大对象的问题,FlinkwebUI火焰图表现如下:从图上看,瓶颈卡在序列化与反序列化,结合业务逻辑代码,业务涉及state大对象的读写,并且是ValueS
- flink通过状态快照实现容错
m0_66520412
flink大数据
状态后端#Flink管理的键控状态是一种分片的键/值存储,以及每个键/值存储的工作副本键控状态的项保留在负责该键的TaskManager的本地某个位置。算子state也是需要它的计算机的本地状态。Flink管理的这种状态存储在状态后端中。有两种状态后端的实现可用——一种基于RocksDB,一种嵌入式键/值存储,可保持其工作状态disk,以及另一个基于堆的状态后端,该后端将其工作状态保存在Java堆
- Flink问题解决及性能调优-【Flink根据不同场景状态后端使用调优】
PONY LEE
Flink问题解决及性能调优flink大数据
Flink实时groupby聚合场景操作时,由于使用的是rocksdb状态后端,发现CPU的高负载卡在rocksdb的读写上,导致上游算子背压特别大。通过调优使用hashmap状态后端代替rocksdb状态后端,使吞吐量有了质的飞跃(20倍的性能提升),并分析整理。实例代码--SETtable.exec.state.ttl=86400s;--24hour,默认:0msSETtable.exec.s
- Flink State backend状态后端
小枫@码
Flinkflink大数据
概述Flink在v1.12到v1.14的改进当中,其状态后端也发生了变化。老版本的状态后端有三个,分别是MemoryStateBackend、FsStateBackend、RocksDBStateBackend,在flink1.14中,这些状态已经被废弃了,新版本的状态后端是HashMapStateBackend、EmbeddedRocksDBStateBackend。1、检查点有状态流应用中的检
- Flink 源码:TM 端恢复及创建 KeyedState 的流程
longLiveData
本文仅为笔者平日学习记录之用,侵删原文:https://mp.weixin.qq.com/s/eaALnpd_qHQg6fxI12fQjg本文会详细分析TM端恢复及创建KeyedState的流程,恢复过程会分析RocksDB和Fs两种StateBackend的恢复流程,创建流程会介绍Checkpoint处恢复的State如何与代码中创建的State关联起来。一、RocksDBKeyedStateB
- ADOC: Automatically Harmonizing Dataflow Between Components in Log-Structured Key-Value Sto...——论文泛读
妙BOOK言
论文阅读论文阅读lsm-tree
FAST2023Paper论文阅读笔记整理问题基于Log-StructureMerge-tree(LSM-tree)的键值(KV)系统被广泛部署。LSM-KV系统普遍存在的问题是写入停顿,指的是在大量写入压力下突然性能下降。先前的研究将写入停顿归因于资源短缺或调度问题。图1显示了RocksDB在各种存储设备上运行写密集型工作负载的结果。写停顿是普遍的,发生在所有类型的设备上,但触发条件不同;写停顿
- Flink TaskManager 内存管理机制介绍与调优总结
腾讯云大数据
flinkjvmjava
作者:董伟柯,腾讯CSIG高级工程师概要Flink的新版内存管理机制,要追溯到2020年初发布的Flink1.10版本。当时Flink社区为了实现三大目标:流和批模式下内存管理的统一,即同一套内存配置既可用于流作业也可用于批作业管控好RocksDB等外部组件的内存,避免在容器环境下用量不受控导致被KILL消除不同部署模式下配置参数的歧义,消除cut-off等参数语义模糊的问题提出了两个设计提案FL
- TaskExecutor统一内存配置(FLink FLIP-49翻译)
LS_ice
flink
文章目录目的:(1)解决流、批配置差异大(2)解决Streaming方式RocksDB配置复杂(3)去掉复杂、不确定、难以理解的配置公共接口修改建议统一流处理和批处理内存管理内存使用场景及特点统一显式和隐式内存申请将托管的堆上内存池和堆外内存池分离MemoryPools和配置方式框架堆内存(FrameworkHeapMemory)用户堆内存(TaskHeapMemory)用户堆外内存(TaskOf
- 翻译 RocksDB Overview
i_need_job
网址https://github.com/facebook/rocksdb/wiki/RocksDB-Overview有道RocksDBOverviewhttps://github.com/facebook/rocksdb.wiki.git1.IntroductionRocksDBstartedatFacebookasastorageengineforserverworkloadsonvariou
- Flink实例:状态管理State 过期时间TTL
大数据供成屎
flink大数据java
1State过期时间TTL使用flink进行实时计算中,会遇到一些状态数不断累积,导致状态量越来越大的情形。例如,作业中定义了超长的时间窗口,或者在动态表上应用了无限范围的GROUPBY语句,以及执行了没有时间窗口限制的双流JOIN等等操作。对于这些情况,经常导致堆内存出现OOM,或者堆外内存(RocksDB)用量持续增长导致超出容器的配额上限,造成作业的频繁崩溃。从Flink1.6版本开始引入了
- flink双流ioin的大状态如何解决和调优
暴走的贼宇
flinkjava大数据
Flink中的双流ioin操作(双流连接)通常涉及大状态的处理,这可能导致一些性能和状态管理的挑战。以下是解决和调优Flink中双流ioin大状态的一些建议:解决方案:增大任务管理器的堆内存:对于处理大状态的任务,增加Flink任务管理器的堆内存可以提供更多的内存空间来存储状态,减缓状态溢出的可能性。使用RocksDB状态后端:将Flink配置为使用RocksDB作为状态后端,RocksDB可以更
- 翻译 Terminology
i_need_job
原文网址:https://github.com/facebook/rocksdb/wiki/TerminologyNOTEforfutureedits:Pleasemaintainentriesinalphabeticalorder2PC(Two-phasecommit)Thepessimistictransactionscouldcommitintwophases:firstPrepareand
- 常见技术选型
独处人
MQRocketMQ,RabbitMQ,Kafka,ActiveMQNoSQLRedis,Memcache分布式计算Blink,Storm,SparkDB关系型TiDB,MySQL,MongoDB,CassandraKVLevelDB,Rocksdb,PalDB文件BerkeleyDB,MapDB,ChronicleQueue,SQLite,RSocket时序型Influxdb,HiTSDB,Op
- 数据库Database
StoneLiu999
dbsqlDatabase
文章目录关系型数据库数据库对比SQLite示例代码SQL语言运算符非关系型数据库键值对数据库文档型数据库RocksDB示例代码数据库(Database)是用于存储和管理数据的系统。它提供了一种结构化的方式来组织、存储、检索和更新数据,以满足不同应用程序的需求。数据库可以分为两类:关系型数据库和非关系型数据库。关系型数据库(RelationalDatabase):关系型数据库使用表格(表)来组织数据
- kafka 增量快照的使用
pekingK
kafka
增量快照RocksDB支持增量快照。不同于产生一个包含所有数据的全量备份,增量快照中只包含自上一次快照完成之后被修改的记录,因此可以显著减少快照完成的耗时。一个增量快照是基于(通常多个)前序快照构建的。由于RocksDB内部存在compaction机制对sst文件进行合并,Flink的增量快照也会定期重新设立起点(rebase),因此增量链条不会一直增长,旧快照包含的文件也会逐渐过期并被自动清理。
- RocksDB系列十四:Partitioned Index Filters
薛少佳
随着DB/mem使用越来越多,filter/indexblock的内存空间变得不可忽视。虽然cache_index_and_filter_blocks配置只允许filter/indexblock数据的一部分cache在blockcache中,但是还是会因为数据量的庞大影响RocksDB的性能。占据了过多的blockcache空间,这些空间本来可以用于缓存data当访问cachemiss时需要l
- flink的三个state backend的选择
gegeyanxin
flink大数据
flink的三个状态MemoryStateBackend默认,小状态,本地调试使用FsStateBackend大状态,长窗口,高可用场景RocksDBStateBackend超大状态,长窗口,高可用场景,可增量checkpoint
- 【flink配置系列】FLink配置大全
BigDataMLApplication
flinkflink大数据
FLink配置文章目录FLink配置配置基本设置常见设置选项主机和端口容错可重试的清理检查点和状态后端高可用性内存配置杂项选项安全性SSL与外部系统进行身份验证资源编排框架YARNKubernetesStateBackendsRocksDBStateBackendMetricsRocksDB本地指标历史服务器配置所有配置都在conf/flink-conf.yaml中完成,这个文件应该是一个扁平的Y
- Rocksdb参数调优指南
xiannvlei
数据库
本指南的目的是提供你足够的信息用于根据自己的工作负载和系统配置调优RocksDB。RocksDB非常灵活,这有好也有坏。你可以真多很多工作场景和存储技术进行调优。在Facebook,我们使用相同的代码跑内存工作压力,闪盘设备和机械硬盘。然而,灵活性不总是对用户友好的。我们引入了大量的调优参数,让人疑惑不解。我们希望这个指南会帮助你压榨你的系统的最后一滴性能并且完全利用你的资源。我们假设你有一定的基
- Rocksdb sst_dump工具的安装和使用
Mint6
rocksdbrocksdbsstsst_dumpkey-valuekv
macos系统安装#安装$brewinstallrocksdb#使用命令$rocksdb_ldb$rocksdb_sst_dumplinux系统安装找到rocksdb仓库:Releases·facebook/rocksdb·GitHub找到对应版本的二进制,比如:https://github.com/facebook/rocksdb/archive/refs/tags/v6.10.1.tar.gz
- [黑洞与暗粒子]没有光的世界
comsci
无论是相对论还是其它现代物理学,都显然有个缺陷,那就是必须有光才能够计算
但是,我相信,在我们的世界和宇宙平面中,肯定存在没有光的世界....
那么,在没有光的世界,光子和其它粒子的规律无法被应用和考察,那么以光速为核心的
&nbs
- jQuery Lazy Load 图片延迟加载
aijuans
jquery
基于 jQuery 的图片延迟加载插件,在用户滚动页面到图片之后才进行加载。
对于有较多的图片的网页,使用图片延迟加载,能有效的提高页面加载速度。
版本:
jQuery v1.4.4+
jQuery Lazy Load v1.7.2
注意事项:
需要真正实现图片延迟加载,必须将真实图片地址写在 data-original 属性中。若 src
- 使用Jodd的优点
Kai_Ge
jodd
1. 简化和统一 controller ,抛弃 extends SimpleFormController ,统一使用 implements Controller 的方式。
2. 简化 JSP 页面的 bind, 不需要一个字段一个字段的绑定。
3. 对 bean 没有任何要求,可以使用任意的 bean 做为 formBean。
使用方法简介
- jpa Query转hibernate Query
120153216
Hibernate
public List<Map> getMapList(String hql,
Map map) {
org.hibernate.Query jpaQuery = entityManager.createQuery(hql);
if (null != map) {
for (String parameter : map.keySet()) {
jp
- Django_Python3添加MySQL/MariaDB支持
2002wmj
mariaDB
现状
首先,
[email protected] 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。 MySQL官方的方案
首先据MySQL文档[3]说,自从MySQL
- 在SQLSERVER中查找消耗IO最多的SQL
357029540
SQL Server
返回做IO数目最多的50条语句以及它们的执行计划。
select top 50
(total_logical_reads/execution_count) as avg_logical_reads,
(total_logical_writes/execution_count) as avg_logical_writes,
(tot
- spring UnChecked 异常 官方定义!
7454103
spring
如果你接触过spring的 事物管理!那么你必须明白 spring的 非捕获异常! 即 unchecked 异常! 因为 spring 默认这类异常事物自动回滚!!
public static boolean isCheckedException(Throwable ex)
{
return !(ex instanceof RuntimeExcep
- mongoDB 入门指南、示例
adminjun
javamongodb操作
一、准备工作
1、 下载mongoDB
下载地址:http://www.mongodb.org/downloads
选择合适你的版本
相关文档:http://www.mongodb.org/display/DOCS/Tutorial
2、 安装mongoDB
A、 不解压模式:
将下载下来的mongoDB-xxx.zip打开,找到bin目录,运行mongod.exe就可以启动服务,默
- CUDA 5 Release Candidate Now Available
aijuans
CUDA
The CUDA 5 Release Candidate is now available at http://developer.nvidia.com/<wbr></wbr>cuda/cuda-pre-production. Now applicable to a broader set of algorithms, CUDA 5 has advanced fe
- Essential Studio for WinRT网格控件测评
Axiba
JavaScripthtml5
Essential Studio for WinRT界面控件包含了商业平板应用程序开发中所需的所有控件,如市场上运行速度最快的grid 和chart、地图、RDL报表查看器、丰富的文本查看器及图表等等。同时,该控件还包含了一组独特的库,用于从WinRT应用程序中生成Excel、Word以及PDF格式的文件。此文将对其另外一个强大的控件——网格控件进行专门的测评详述。
网格控件功能
1、
- java 获取windows系统安装的证书或证书链
bewithme
windows
有时需要获取windows系统安装的证书或证书链,比如说你要通过证书来创建java的密钥库 。
有关证书链的解释可以查看此处 。
public static void main(String[] args) {
SunMSCAPI providerMSCAPI = new SunMSCAPI();
S
- NoSQL数据库之Redis数据库管理(set类型和zset类型)
bijian1013
redis数据库NoSQL
4.sets类型
Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能。
sadd:向名称为key的set中添加元
- 异常捕获何时用Exception,何时用Throwable
bingyingao
用Exception的情况
try {
//可能发生空指针、数组溢出等异常
} catch (Exception e) {
 
- 【Kafka四】Kakfa伪分布式安装
bit1129
kafka
在http://bit1129.iteye.com/blog/2174791一文中,实现了单Kafka服务器的安装,在Kafka中,每个Kafka服务器称为一个broker。本文简单介绍下,在单机环境下Kafka的伪分布式安装和测试验证 1. 安装步骤
Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不
- Project Euler
bookjovi
haskell
Project Euler是个数学问题求解网站,网站设计的很有意思,有很多problem,在未提交正确答案前不能查看problem的overview,也不能查看关于problem的discussion thread,只能看到现在problem已经被多少人解决了,人数越多往往代表问题越容易。
看看problem 1吧:
Add all the natural num
- Java-Collections Framework学习与总结-ArrayDeque
BrokenDreams
Collections
表、栈和队列是三种基本的数据结构,前面总结的ArrayList和LinkedList可以作为任意一种数据结构来使用,当然由于实现方式的不同,操作的效率也会不同。
这篇要看一下java.util.ArrayDeque。从命名上看
- 读《研磨设计模式》-代码笔记-装饰模式-Decorator
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.Fi
- Maven学习(一)
chenyu19891124
Maven私服
学习一门技术和工具总得花费一段时间,5月底6月初自己学习了一些工具,maven+Hudson+nexus的搭建,对于maven以前只是听说,顺便再自己的电脑上搭建了一个maven环境,但是完全不了解maven这一强大的构建工具,还有ant也是一个构建工具,但ant就没有maven那么的简单方便,其实简单点说maven是一个运用命令行就能完成构建,测试,打包,发布一系列功
- [原创]JWFD工作流引擎设计----节点匹配搜索算法(用于初步解决条件异步汇聚问题) 补充
comsci
算法工作PHP搜索引擎嵌入式
本文主要介绍在JWFD工作流引擎设计中遇到的一个实际问题的解决方案,请参考我的博文"带条件选择的并行汇聚路由问题"中图例A2描述的情况(http://comsci.iteye.com/blog/339756),我现在把我对图例A2的一个解决方案公布出来,请大家多指点
节点匹配搜索算法(用于解决标准对称流程图条件汇聚点运行控制参数的算法)
需要解决的问题:已知分支
- Linux中用shell获取昨天、明天或多天前的日期
daizj
linuxshell上几年昨天获取上几个月
在Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年
# 获取昨天
date -d 'yesterday' # 或 date -d 'last day'
# 获取明天
date -d 'tomorrow' # 或 date -d 'next day'
# 获取上个月
date -d 'last month'
#
- 我所理解的云计算
dongwei_6688
云计算
在刚开始接触到一个概念时,人们往往都会去探寻这个概念的含义,以达到对其有一个感性的认知,在Wikipedia上关于“云计算”是这么定义的,它说:
Cloud computing is a phrase used to describe a variety of computing co
- YII CMenu配置
dcj3sjt126com
yii
Adding id and class names to CMenu
We use the id and htmlOptions to accomplish this. Watch.
//in your view
$this->widget('zii.widgets.CMenu', array(
'id'=>'myMenu',
'items'=>$this-&g
- 设计模式之静态代理与动态代理
come_for_dream
设计模式
静态代理与动态代理
代理模式是java开发中用到的相对比较多的设计模式,其中的思想就是主业务和相关业务分离。所谓的代理设计就是指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。比如我们在进行删除操作的时候需要检验一下用户是否登陆,我们可以删除看成主业务,而把检验用户是否登陆看成其相关业务
- 【转】理解Javascript 系列
gcc2ge
JavaScript
理解Javascript_13_执行模型详解
摘要: 在《理解Javascript_12_执行模型浅析》一文中,我们初步的了解了执行上下文与作用域的概念,那么这一篇将深入分析执行上下文的构建过程,了解执行上下文、函数对象、作用域三者之间的关系。函数执行环境简单的代码:当调用say方法时,第一步是创建其执行环境,在创建执行环境的过程中,会按照定义的先后顺序完成一系列操作:1.首先会创建一个
- Subsets II
hcx2013
set
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not conta
- Spring4.1新特性——Spring缓存框架增强
jinnianshilongnian
spring4
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- shell嵌套expect执行命令
liyonghui160com
一直都想把expect的操作写到bash脚本里,这样就不用我再写两个脚本来执行了,搞了一下午终于有点小成就,给大家看看吧.
系统:centos 5.x
1.先安装expect
yum -y install expect
2.脚本内容:
cat auto_svn.sh
#!/bin/bash
- Linux实用命令整理
pda158
linux
0. 基本命令 linux 基本命令整理
1. 压缩 解压 tar -zcvf a.tar.gz a #把a压缩成a.tar.gz tar -zxvf a.tar.gz #把a.tar.gz解压成a
2. vim小结 2.1 vim替换 :m,ns/word_1/word_2/gc  
- 独立开发人员通向成功的29个小贴士
shoothao
独立开发
概述:本文收集了关于独立开发人员通向成功需要注意的一些东西,对于具体的每个贴士的注解有兴趣的朋友可以查看下面标注的原文地址。
明白你从事独立开发的原因和目的。
保持坚持制定计划的好习惯。
万事开头难,第一份订单是关键。
培养多元化业务技能。
提供卓越的服务和品质。
谨小慎微。
营销是必备技能。
学会组织,有条理的工作才是最有效率的。
“独立
- JAVA中堆栈和内存分配原理
uule
java
1、栈、堆
1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制.2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中。)3. 堆:存放所有new出来的对象。4. 静态域:存放静态成员(static定义的)5. 常量池:存放字符串常量和基本类型常量(public static f