>如果经常重复使用具有自然语言频率的字符串,请不要对同一字符串使用新的对象实例.

private Map sharedStrings = new HashMap<>().

public void shareString(String s) {

String t = sharedStrings.get(s);

if (t == null) {

t = s;

sharedStrings.put(t, t);

}

return t;

}

>字符串编号可能太慢.

>将字符串列表打包在一个字符串中(用一些控制字符分隔),

并可能会压缩字符串(GZipOutputStream,GZipInputStream).

>调整哈希图具有足够的初始容量. (对不起,我声明很明显.)

>使用巨大的大String []自己分配所有ArrayList:

int count;

String[] allStrings = new String[999999];

Map map = new HashMap<>(9999);

void put(int key, List strings) {

int start = count;

for (String s : strings) {

allStrings[count] = s;

++count;

}

// high: start index, low: size

long listDescriptor = (((long)start) << 32) | (count - start);

map.put(key, listDescriptor);

}

>有些地图实现使用诸如int和long之类的原语;例如trove库(自己未使用过).

java 减少内存_java-减少应用程序内存占用相关推荐

  1. java 指定 内存_java 运行时指定内存大小

    java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M XXX.jar java  -Xms128M -Xmx512M ...

  2. java 数组 内存_Java 中数组的内存分配

    Java 中数组的内存分配 1.Java 程序在运行时,需要在内存中分配空间.为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据和内存管理方式. 2.数组基本概念 数组是 ...

  3. java 基本类型内存_java基本数据类型、内存分析、装包拆包

    2019-09-13   18:01:23 idea快捷键: file->settings->Keymap->搜索关键字 Increase Font Size   增大字体    c ...

  4. android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications

    Android应用程序内存分析 原文链接:http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html ...

  5. java怎么安装_Java桌面应用程序篇:发展历史以及程序的应用

    java桌面应用印象 因为桌面程序运行在宿主机器上, 所以比如你运行java桌面程序,必然要安装java虚拟机, 也就是相当于在操作系统上再加一层抽象. 这与直接调用api的桌面程序效率相比,或多或少 ...

  6. java 减少内存_java – 减少内存流失的方法

    背景 我有一个Spring批处理程序读取文件(我正在使用的示例文件大小为4 GB),对文件进行少量处理,然后将其写入Oracle数据库. 我的程序使用1个线程来读取文件,12个工作线程进行处理和数据库 ...

  7. java开发 职业技能_java编程开发程序员需要具备哪些职业技能

    随着互联网的不断发展,java编程开发可以说是目前学习人数和应用范围非常多的一种编程语言了,而今天我们就一起来了解一下,java编程开发程序员需要具备哪些职业技能. 1.数据结构和算法分析 数据结构和 ...

  8. java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园

    这个问题一直困扰我很长时间了,虽然工作了一段时间,但感觉连这个问题都解决不好的话,实在对不起自己.今天我终于抽出时间,好好网上找了下资料,然后写了个简单的记事本程序,感觉是我想要的结果.所以在这里把程 ...

  9. java的解释程序_JAVA改错和程序解释

    JAVA改错和程序解释 这是我看书打的,,但运行时有个错误....说符号找不到是什么原因..另外判断秒针,分针,时针位置是怎么算来的,,看不懂,,希望明白的解释下 import java.awt.*; ...

最新文章

  1. 快手百度 4.34 亿美元投资知乎;腾讯回应“push团队全部被开”;Android Q Beta 6 发布!...
  2. mysql多实例脚本
  3. WebRTC / Jitsi / 多人视频通讯常用架构 Mesh / MCU / SFU
  4. 获得最新纪录 sql
  5. C++实现拓扑排序(vector模拟邻接表存储,优先队列实现)
  6. Java中的基本数据类型转换(自动、强制、提升)
  7. 前端经常遇到的跨域问题几种解决方案
  8. [转载]如何破解Excel VBA密码
  9. CentOS的 ifconfig/mail/traceroute命令不存在
  10. android 取消多个闹钟,如何在android中取消闹钟
  11. 【原】115网盘下载地址解析工具(暂停更新)
  12. c++ pdflib 中文乱码解决思路
  13. 【Android界面实现】Starting an Activity(Activity生命周期金字塔模型)
  14. 痞子衡嵌入式:IAR环境下无法直接下载调试i.MXRT分散链接工程的解决方案(宏文件.mac+双Flashloader)...
  15. Access 一些内部函数(Access 帮助里) .
  16. Android开发 设置手机壁纸
  17. 计算机技术交流群QQ:69706169,电脑维护故障排除,网络,通信,交换,电子等欢迎加入!...
  18. IT 资产管理及其重要性
  19. 旅游线路模糊查询功能
  20. .net core linux服务器部署

热门文章

  1. 项目管理学习总结(14)——优秀技术Leader应该具备什么哪些方面的能力
  2. Java Web学习总结(3)——Servlet详解
  3. Java基础学习总结(42)——Log4j 2快速入门及Log4j 2 + Slf4j 的配置和使用
  4. Java中的String.hashCode()方法可能有问题?
  5. 面试宝典系列-什么是心跳包机制
  6. shell编程基础:逻辑运算
  7. 如何展开Linux Memory Management学习?
  8. 诺基亚发布最新研究报告:多角度分析5G服务的投资回报
  9. UVA - 10129 Play on Words(欧拉回路+并查集)
  10. windows多线程--原子操作