- 在多线程里购买订单业务应该考虑什么问题,应该怎么做这个业务
Su米苏
经验分享
在多线程环境下处理订单购买业务时,需要考虑以下几个关键问题,并采取相应的措施来确保业务的正确性和性能:1.线程安全问题:多个线程可能同时访问和修改共享资源(如库存、订单状态等),导致数据不一致或竞态条件。解决方案:使用锁机制(如synchronized、ReentrantLock)来保护共享资源。使用线程安全的数据结构(如ConcurrentHashMap、AtomicInteger)。尽量减少锁
- Java并发编程知识点
master-dragon
#Java并发编程java
按照顺序复习理解CPU&缓存基础Java内存模型&volatile&线程安全:原子性、可见性、顺序性线程基础,Thread&Object相关方法概念ThreadLocalCASAbstractQueuedSynchronizerReentrantLockCountDownLatch&CyclicBarrierSemaphoresynchronized&锁分类原子变量:AtomicIntegerLo
- 基于Qt5.14.2和mingw的Qt源码学习(五) — 事件循环之windows事件循环基础和控制台中的事件循环
coding-hwz
通过Qt源码学习C++和OOP#事件循环windowsc++
基于Qt5.14.2和mingw的Qt源码学习(五)—事件循环之windows事件循环基础和控制台中的事件循环一、QEvent1、Q_GADGET2、spontaneous()3、accept()和ignore()二、QEventLoop1、ProcessEventsFlags2、exec(1)QAtomicIntegera.loadAcquirestoreReleaseb.loadRelaxed
- 【JUC并发编程系列】深入理解Java并发机制:CAS算法与原子类在Java中的实践应用(二、CAS)
无理 Java
JUC并发编程系列javaJUC并发编程并发机制CAS后端面试
文章目录【JUC并发编程系列】深入理解Java并发机制:CAS算法与原子类在Java中的实践应用(二、CAS)1.同步之原子类(Atomic类)2.使用atomicInteger计数3.使用atomicInteger底层原理3.compareAndSet原理分析3.1手写AtomicInteger3.2手写Lock锁3.3CASaba的问题3.4AtomicMarkableReference4.C
- 设计模式一:单例模式
clean-mark
单例模式设计模式java
1、单例模式的实现方式/***1、饿汉模式*/publicclassSingleton1{privatestaticAtomicIntegercount=newAtomicInteger(0);privatestaticfinalSingleton1instance=newSingleton1();publicstaticSingleton1getInstance(){returninstance
- 并发编程-JUC-原子类
developer@liyong
Java多线程与并发JavaCASABA原子类
JUC整体概览原子类基本类型-使用原子的方式更新基本类型AtomicInteger:整形原子类AtomicLong:长整型原子类AtomicBoolean:布尔型原子类引用类型AtomicReference:引用类型原子类AtomicStampedReference:原子更新引用类型里的字段原子类AtomicMarkableReference:原子更新带有标记位的引用类型数组类型-使用原子的方式更
- Java多线程与高并发(二):线程安全性
java高并发
线程安全性当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在调用代码中不需要任何额外的同步,这个类都能表现出正确的行为,那么这个类就是线程安全的。原子性:同一时刻只能有一个线程对它操作可见性:一个线程对内存的修改能让其他线程观察到有序性:指令执行顺序,杂乱无序原子性Atomic包AtomicIntegerAtomicInteger中的incrementAndG
- 无锁类原理详解与使用,无锁算法详解,全是干货
纵然间
Javajava开发语言
目录编辑一、无锁类的原理详解1.1CAS1.2CPU指令二、无锁类的使用2.1AtomicInteger2.1.1概述2.1.2主要接口2.1.3主要接口实现2.2Unsafe2.2.1概述2.2.3主要接口2.3AtomicReference2.3.1概述2.3.2主要接口2.4AtomicStampedReference2.4.1概述2.4.2主要接口2.5AtomicIntegerArray
- 第二十三章、AtomicInteger源码分析—基于CAS的乐观锁实现
小母牛不生产奶
1.悲观锁与乐观锁cpu是时分复用的,也就是把cpu的时间片,分配给不同的thread/process轮流执行,时间片与时间片之间,需要进行cpu切换,也就是会发生进程的切换。切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据。当一个线程被挂起时,加入到阻塞队列,在一定的时间或条件下,在通过notify(),notifyAll()唤醒回来。在某个资源不可用的时候,就将cpu让出,
- java之CAS
tuffy维
javajava开发语言
1、CAS含义cas顾名思义是比较交换,实现了并发安全特性的原子性,是基于硬件平台的汇编指令,也就是说基于硬件实现的,通过比较预期的值是否和内存中值是否一致,如果一致则更新,如不一致则重新获取内存的值进行比较。和其他实现原子性的方式不一样的是此方式不需要加锁,大大提高了执行效率,解决了加锁释放锁导致的上下文切换的问题。2、AtomicInteger以AtomicInteger为例,此原子类是并发安
- java8 foreach的索引获取,对象集合去重
memgLIFE
java
1、foreachpublicstaticConsumerforEachWithIndex(BiConsumerbiConsumer){/*这里说明一下,我们每次传入forEach都是一个重新实例化的Consumer对象,在lambada表达式中我们无法对int进行++操作,我们模拟AtomicInteger对象,写个getAndIncrement方法,不能直接使用AtomicInteger哦*/
- 【并发编程】JUC原子操作类
五敷有你
并发编程springboot开发语言juc并发编程
个人主页:五敷有你系列专栏:并发编程⛺️稳重求进,晒太阳原子操作类原子基本数据类型原子数组原子引用类型原子更新字段类型原子基本数据类型AtomicBooleanAtomicIntegerAtomicLong以AtomicInteger为例方法如下:(见名知意)package并发;importjava.util.concurrent.atomic.AtomicInteger;publicclassT
- 售票员售票-阿里算法题(感觉我又被撸了)
慢一点,细一点
算法算法java多线程原子类
题目有1000张票(0~999),初始每张票售价500元,每卖掉一张剩余的每张票涨100元。有三个售票员同时售票,设计一个算法计算出每个售票员卖的票和赚的钱。1:售票员卖完一张可以立即卖第二张,第三张.....2:需要同时开始售票解题通过AtomicInteger来计算剩余的票,利用他的原子性,避免枷锁通过AtomicBoolean来设置何时开始卖,如果没有这个的话,三个线程先后启动,越先启动的线
- i++自增运算符的线程安全问题
你小汁完了
面试题java算法开发语言
Java中的i++操作在多线程环境下存在线程安全问题。原因是i++操作并非原子操作,它包含了读取、递增和写回三个步骤。当多个线程同时对同一个变量进行i++操作时,可能会导致竞态条件(RaceCondition),产生不确定的结果。要解决这个线程安全问题,可以使用java.util.concurrent.atomic.AtomicInteger类来代替普通的int类型。AtomicInteger是J
- POI read write and save
MyFreeIT
JDKjava前端服务器POI
通過xssf讀寫Excelimportjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.util.Iterator;importjava.util.concurrent.atomic.AtomicInteger;importorg.apache.poi.openxml4j.excepti
- 原子操作以及原子操作类AtomicInteger简介
Mcband
javajvm算法
前言问:什么是原子操作什么是原子操作,所谓原子操作,就是一个操作是不能打断的操作。确切的说应该是不备其他线程或者任务影响的操作。没错,原子操作就是你在家里的一次上厕所的操作>>进厕所,上锁,执行操作…身心愉悦,开锁,离开…在程序中的体现就是一个线程在执行某个任务占用某个资源在操作的时候,不会被其他的线程或者任务抢走资源,直到这个任务结束释放资源,其他的线程或者任务才能使用这个资源。嗯其实就是我们说
- Java AtomicInteger的用法
java欧阳丰
1、java.util.concurrent.atomic的包里有AtomicBoolean,AtomicInteger,AtomicLong,AtomicLongArray,AtomicReference等原子类的类,主要用于在高并发环境下的高效程序处理,来帮助我们简化同步处理.在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而
- 多线程情况下保证数据一致的方法
jarctique
java并发编程
importjava.util.Date;importjava.util.concurrent.atomic.AtomicInteger;importjava.util.concurrent.locks.Lock;importjava.util.concurrent.locks.ReentrantLock;publicclassloadNum{privatestaticintnum=0;1、使用s
- 线程池ThreadPoolExecutor中ctl是什么?
林犀居士
多线程java线程池多线程
线程池在java编程语言中的重要性就不言而喻了,对于线程池底层的实现可能大家的研究就没有那么深入了,下面针对线程池ThreadPoolExecutor中的最重要的一个成员变量ctl,来做一个介绍!ThreadPoolExecutor中ctl介绍先看一下注释,原文如下/***Themainpoolcontrolstate,ctl,isanatomicintegerpacking*twoconcept
- rocket mq 底层存储源码分析(2)-业务消息持久化
萝卜头4lbt
本章主要详细分析Rocketmq消息持久化底层源码实现。先讲解几个核心的业务抽象类MappedFile,该类为一个存储文件的直接内存映射业务抽象类,通过操作该类,可以把消息字节写入pagecache缓存区(commit),或者原子性的消息刷盘(flush)publicclassMappedFile{protectedfinalAtomicIntegerwrotePosition;protected
- 八、详解CAS无锁
每天都得进步
并发编程javajvm开发语言
目录CASABA问题AtomicStampedReferenceAtomicReferenceFieldUpdaterCAS底层原理LongAdder(无锁+分段)基本用法缓存行源码Unsafe原理手写AtomicInteger在之前的文章中,我们详细讲过了Synchronized三、详解Synchronized-CSDN博客和ReentrantLock五、详解ReentrantLock-CSDN
- 【面试八股文】每日一题:CAS四连问?
烟雨木子
大厂后端工程师面试面试java职场和发展
1.比较并交换/***Description**@
[email protected]*@version1.0*@date2019-04-129:57*1.什么是CAS?===>compareAndSet*比较并交换**/publicclassCASDemo{publicstaticvoidmain(String[]args){AtomicIntegeratomicInteger=newAt
- 【Java并发编程的艺术学习】第七,八章摘要
一日三餐384
java学习开发语言
原子更新基本类型类1.原子操作类:多线程下的操作是安全的,不需要自己加锁2.在原子类中不能用+-*/,而是采用这些方法AtomicBoolean:原子更新布尔型AtomicInteger:原子更新整形AtomicLong:原子更新长整型AtomicIntegerArray:原子更新整型数组里的元素AtomicLongArray:原子更新长整型数组里的元素AtomicReferenceArray:原
- Java并发之原子类型源码篇
欧克小奥
Java并发源码java并发原子类
☆*o(≧▽≦)o*☆嗨~我是小奥个人博客:小奥的博客CSDN:个人CSDNGithub:传送门面经分享(牛客主页):传送门文章作者技术和水平有限,如果文中出现错误,希望大家多多指正!如果觉得内容还不错,欢迎点赞收藏关注哟!❤️文章目录Java并发之原子类型源码篇一、Java原子类型1.1AtomicInteger①常用方法②使用③实现原理1.2AtomicIntegerArray①常用方法②使用
- [原子类AtomicInteger] 1.getAndAdd(x)实现添加任意值 getAndIncrement()实现i++ 2.compareAndSet实现比较操作
zfoo-framework
#java多线程java蓝桥杯开发语言
1)添加数值packageorg.example.testatomic;importjava.util.concurrent.TimeUnit;importjava.util.concurrent.atomic.AtomicInteger;publicclassMain{publicstaticvoidmain(String[]args)throwsInterruptedException{Ato
- Android:view的双击监听
陆杨丶
Androidandroidkotlinflutter
自定义OnMultiTouchListener抽象类实现OnTouchListener接口importandroid.os.Handler;importandroid.view.MotionEvent;importandroid.view.View;importjava.util.concurrent.atomic.AtomicInteger;publicabstractclassOnMultiT
- Java里面加锁的方式
甜瓜瓜哥
Javajava开发语言
Java里面加锁的方式synchronizedReentrantLock类ReadWriteLock接口AtomicInteger类总结synchronized使用synchronized关键字可以实现对代码块或方法的加锁。当一个线程获取到锁后,其他线程将被阻塞,直到该线程释放锁。示例代码如下:publicsynchronizedvoidsynchronizedMethod(){//代码块或方法体
- 《实战Java高并发程序设计》学习记录4
少寨主的互联网洞察
无锁无锁原理CASimage.pngCPU指令image.png这个CPU指令仅仅只是一条指令AtomicInteger看两个方法/***Atomicallysetsthevaluetothegivenupdatedvalue*ifthecurrentvalue{@code==}theexpectedvalue.**@paramexpecttheexpectedvalue*@paramupdate
- java 线程安全的int_int变量操作与线程安全
Excel小慢车
java线程安全的int
今天人人的笔试题目中有一个inti=0;i=i++;是否是线程安全的?如果不是说出在JVM中的执行步骤,以及使用JDK的什么类能够使线程安全些?JDk中的类是AtomicInteger,我答个Integer,哎,悲剧。AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。
- 原子类-入门介绍和分类说明、基本类型原子类
ZHOU_VIP
JUC并发编程与源码分析java
Atomic翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里Atomic是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。基本类型原子类AtomicInteger:整型原子类AtomicBoolean:布尔型原子类AtomicLong:长整型原子类基本类型原子类常用API简介publicfi
- [黑洞与暗粒子]没有光的世界
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