`
Tristan_S
  • 浏览: 378157 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

StringBuffer 所占JVM的内存大小

    博客分类:
  • JVM
JVM 
阅读更多
StringBuffer的最大大小
生成对账文件不采用StringBuffer, 担心其过大,导致内存溢出, 采用BufferedWriter的方式每行写入(不需要在循环中 flush)
当 StringBuffer 大小为12M时, JVM为64M
一般应用中JVM都设置成1024, 应该能支持 StringBuffer的大小为100M左右。
大于10M 的对账文件是没有什么意义的。 数据量太大了。
就算sb大于100M,也可以用
bw.write(sb.toString());
sb = sb.delete(0, sb.length())
的方式来重置sb
所以生成对账文件不需要用BufferedWriter的方式每行写入的方式
分享到:
评论

相关推荐

    JVM与性能优化知识点整理.pdf

    一、JVM内存结构 1. **堆内存**:Java对象的主要存储区域,分为新生代和老年代,新生代又细分为Eden区和两个Survivor区(From和To)。对象首先在Eden区创建,经过垃圾回收后存活的对象会转移到Survivor区,再经过多...

    JVM面试专题.zip

    - **JVM参数设置**:如-Xms、-Xmx设定堆内存大小,-XX:MaxHeapFreeRatio、-XX:MinHeapFreeRatio调整堆空闲比例。 - **GC调优**:选择合适的GC算法和参数,例如-XX:+UseConcMarkSweepGC启用CMS收集器。 - **类加载...

    内存溢出解决

    - **VisualVM**:集成了各种监控功能,能够查看JVM内存使用情况、线程快照、CPU使用率等。 - **JConsole**:提供了图形界面来监控远程和本地的应用程序,并且可以查看内存使用情况、线程状态、类加载情况等。 - **...

    JVM与性能优化知识点整理.zip

    在Java开发领域,JVM(Java虚拟机)是运行Java应用程序的关键组件,它负责解析、编译、执行Java代码,并管理内存。性能优化是提升应用效率的重要环节,尤其是在大规模并发和高负载场景下。以下是对JVM与性能优化相关...

    Java内存溢出

    C Heap空间是系统对C Heap没有限制的,因此C Heap发生问题时,Java进程所占内存会持续增长,直到占用所有可用系统内存。解决方法包括减少C Heap的使用,优化程序的内存使用等。 解决Java内存溢出的方法 1. 尽早...

    Java中String和StringBuffer的区别.doc

    栈主要用来存储基本类型的变量和对象引用,它的存取速度较快,但大小和生命周期在编译时就已经确定。而堆则是动态分配内存的地方,用于存储new关键字创建的对象。堆内存的分配和回收由Java的垃圾收集器(Garbage ...

    JVM与性能优化知识点整理.rar

    1. 内存调优:合理设置堆大小(Xms, Xmx)、新生代(NewSize, MaxNewSize)、老年代(OldSize, MaxOldSize)以及Survivor区比例,避免内存溢出或频繁GC。 2. 类加载优化:避免过多的类加载,尤其是大型项目中,过多...

    java内存管理的原理.docx

    例如,避免过多的小对象创建,使用StringBuffer替代StringBuilder以减少内存分配,以及合理地配置JVM参数,都能有效提升应用程序的性能。 总的来说,Java内存管理是一个复杂但重要的主题,深入理解其工作原理能够...

    第5讲 String、StringBuffer、StringBuilder有什么区别1

    3. **预估大小**:初始化`StringBuffer`或`StringBuilder`时,可以估算预期的字符串长度,以避免不必要的扩容操作。 理解这些字符串类的差异和使用场景,有助于编写出高效、健壮的Java代码。在编程实践中,合理选择...

    史上最全Java面试266题:算法+缓存+TCP+JVM+搜索+分布式+数据库.pdf

    这些面试问题涵盖了Java语言的基础、数据结构、网络、反射、并发、JVM内存管理、类加载器以及开源框架等多个方面,旨在全面评估候选人的Java技能和实际开发经验。准备这些题目有助于深入理解Java编程的各个方面,并...

    java内存管理[归类].pdf

    在较新的JVM版本中,永久代已被元空间替代,元空间位于本地内存,大小可调整。 5. **栈内存(Stack Memory)**:每个线程都有自己的程序计数器、虚拟机栈和本地方法栈。局部变量、方法参数和方法执行过程中的临时...

    java_性能调优.pdf

    了解JVM内存结构对于性能优化尤为重要,比如合理设置堆内存大小,避免内存泄漏等。 在Web开发方面,文档提及了JSP和Servlet的概念。JSP是Java Server Pages的缩写,是一种基于Java的Web页面开发技术。而Servlet是一...

    Java虚拟机全面了解.zip

    - **类装载器**:负责查找并加载类文件到JVM内存中,包括启动类装载器、扩展类装载器和应用程序类装载器。 - **运行时数据区**:包括堆、方法区、程序计数器、虚拟机栈和本地方法栈。 - **执行引擎**:解析并执行...

    java虚拟机调优大师

    - 类加载器:负责加载类文件到JVM内存中,分为启动类加载器、扩展类加载器和应用类加载器。 - 方法区:存储类的信息,如类名、常量、方法等。 - 堆内存:所有对象实例都在堆中分配内存,分为新生代、老年代和永久...

    2022最新Java面试题及答案总结

    JVM内存分为堆内存(Heap)、栈内存(Stack)、方法区(Method Area)、程序计数器(PC Register)和本地方法栈(Native Method Stack),每个部分都有特定的用途。 17. **多线程与并发**: 多线程是指程序中可以...

    java.lang.OutOfMemoryErrorJavaheapspace.pdf

    3. **设置的堆内存大小不足**:JVM启动时默认分配的堆内存可能不足以应对程序的需求。 4. **大量字符串连接操作**:Java中的字符串是不可变的,每次连接都会创建新的字符串对象,消耗堆内存。 5. **大量大数组**:...

    Java虚拟机的运行时优化

    Java中的内存管理主要依赖于GC,它自动回收不再使用的对象所占的内存。GC的优化包括选择合适的GC算法(如新生代、老年代GC),调整堆大小,以及设置新生代与老年代的比例,以减少停顿时间和提高整体效率。 3. **...

    阿里巴巴java电话面试整理.doc

    - `-Xms`:设置JVM初始堆内存大小,例如`-Xms1024m`表示初始堆内存为1GB。 - `-Xmx`:设置JVM最大堆内存大小,例如`-Xmx2048m`表示最大堆内存为2GB。 3. **垃圾收集算法**: 常见的垃圾收集算法有标记-清除、...

Global site tag (gtag.js) - Google Analytics