Java申请DirectBuffer

  1. /*-------JAVA直接操作内存-------------
  2. * 申请100m的直接内存,不会申请在java堆上面
  3. * 打开资源管理器可以看到内存占用会增加100m,但是java堆上的内存却没有增加!
  4. */
  5. ByteBuffer buffer = ByteBuffer.allocateDirect(100 * 1024 * 1024);
  6. System.out.println("------------------start----------------------");
  7. Thread.sleep(10 * 1000);
  8. // 清理刚刚申请的内存
  9. ((DirectBuffer)(buffer)).cleaner().clean();
  10. System.out.println("------------------end----------------------");

ByteBuffer的position,limit,capacity,flip操作之间的关系

以下面的代码为例

  1. /**
  2. * 描述:测试ByteBuffer的相关操作
  3. * position:写模式下当前写的位置,读模式下当前读的位置
  4. * limit:写模式下能写多少数据,读模式下能读多少数据
  5. * capacity:即byteBuffer的总大小,不区分读写
  6. * flip:将limit置为position,position置为0,一般用于写完之后开始进行读取
  7. */
  8. privatestaticvoid testByteBufferOperation() throws InterruptedException
  9. {
  10. ByteBuffer buffer = ByteBuffer.allocate(20);
  11. buffer.putInt(123); //java 1个int 4个字节
  12. //默认limit和capacity的值是相同的,第一次put之后,position移动到当前写的位置
  13. System.out.println("*************initial status***************");
  14. System.out.println("position:" + buffer.position() + "\nlimit:" + buffer.limit() + "\n"
  15. + "capacity:" + buffer.capacity());
  16. //flip之后,limit变为position,position置为0
  17. buffer.flip();
  18. System.out.println("*************after flip***************");
  19. System.out.println("position:" + buffer.position() + "\nlimit:" + buffer.limit() + "\n"
  20. + "capacity:" + buffer.capacity());
  21. //get之后,position移动1位,其他不变
  22. buffer.get();
  23. System.out.println("*************after first get***************");
  24. System.out.println("position:" + buffer.position() + "\nlimit:" + buffer.limit() + "\n"
  25. + "capacity:" + buffer.capacity());
  26. }

枚举实现单例模式

  1. /*
  2. * 枚举实现单例,一方面保证了线程安全,另一方面会“免费”得到了序列化的功能
  3. */
  4. publicenum ChildEnum {
  5. //枚举里面默认的实例
  6. INSTANCE;
  7. private Child childInstance;
  8. private ChildEnum()
  9. {
  10. childInstance = new Child();
  11. }
  12. public Child getInstance()
  13. {
  14. returnchildInstance;
  15. }
  16. }

Java语法细节 - 内存和枚举的更多相关文章

  1. JAVA语法细节(1)

    1.变量的作用域 变量的作用域从变量定义的位置开始,到变量所在的那对大括号结束.变量定义内存开辟一块空间用于该变量,变量到达作用域时,该变量从内存中消失. 2.变量的数据类型 变量基本数据类型:byt ...

  2. Java语法细节 - synchronized和volatile

    目录 synchronized关键字 关键字volatile synchronized关键字 synchronized关键字锁住方法和this的不同之处: public synchronized vo ...

  3. Java语法细节 - 可见性

    目录 JAVA访问和修饰符的关系一览表 JAVA访问和修饰符的关系一览表 Modifier Class Package Subclass World public Y Y Y Y protected ...

  4. Java语法细节(2)

    1.逻辑运算符 &和&&,|和||的区别 &&:和&的结果是一样的,但运算过程有区别 &&:只要左边结果为假,就不再执行右边的,结果为假 ...

  5. Java语法细节 - try_finally和set相关

    目录 try-catch-finally的关系 TreeSet和HashSet的实现原理和区别 BigDecimal中的一些坑 当BigDecimal在HashSet/HashMap和TreeSet/ ...

  6. java语法糖---枚举

    java语法糖---枚举   在JDK5.0中提供了大量的语法糖,例如:自动装箱拆箱.增强for循环.枚举.泛型等.所谓“语法糖”就是指提供更便利的语法供程序员使用,只是在编译器上做了手脚,却没有提供 ...

  7. java程序的内存分配

    java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的 ...

  8. Java语法知识总结

    一:java概述: 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: ...

  9. 【Java学习系列】第2课--Java语法及面向对象

    本文地址 分享提纲: 1. Java程序特点 1.1 基本语法 1.2 字符串 1.3 变量 1.4 Java数组 1.5 Java枚举 1.6 Java修饰符 1.7 Java编译制定在制定目录 2 ...

随机推荐

  1. PLSQL DEVELOPER编辑器的自动替换文件

    PLSQL DEVELOPER的编辑器的自动替换文件: s=Select * From w=Where ins=Insert Into sc=Select Count(*) From pb=Parti ...

  2. HDU - 1050

    wa了5遍?!! (1)前4遍,思路没简化,企图模拟整个过程,但是调用sort函数时由于没有把奇数的屋子和偶数的屋子统一,排序出了问题. 思路:遍历n段,每次只扫未被标记过的一段,ans++并且从该段 ...

  3. 2018-2019-2 20165325 《网络对抗技术》 Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165325 <网络对抗技术> Exp6 信息搜集与漏洞扫描 实验内容(概要) 1 各种搜索技巧的应用: 2 DNS IP注册信息的查询: 3 基本的扫描技术 ...

  4. L2-008 最长对称子串 (25 分) (模拟)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376 题目: 对给定的字符串,本题要求你输出 ...

  5. OSG开源教程(转)

    例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4)); 来指定要利用这些数据生成一个怎么样的形状. ...

  6. python笔记01-05

    作者:Vamei 出处:http://www.cnblogs.com/vamei https://blog.csdn.net/flyfrommath/article/details/77447587 ...

  7. pwnable.tw applestore

    存储结构 0x804B070链表头 struct _mycart_binlist { int *name; //ebp-0x20 int price; //ebp-0x1c struct _mycar ...

  8. 生成透视列之for xml path

    临时表#t原始数据: 实现如下格式,即根据Province分组,把每个组对应的City列以某种格式展示: 实现方法: select t.Province,(select city+',' From # ...

  9. [NOIP2017提高组]小凯的疑惑-扩展欧几里得

    #include<bits/stdc++.h> using namespace std; long long a,b,x,y,ans,tmp; inline void ex_gcd(lon ...

  10. HTTP协议详解(三)

    接着第二篇继续学习... 6 HTTP的几个重要概念 6.1连接:Connection 一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间. 在http1,request和reponse头中都 ...