- 浏览: 87592 次
- 性别:
- 来自: 西安
最新评论
-
xuhang1128:
good
Spring源码解析 BeanPostProcessor的实现 -
zhudaokun:
呵呵……好帖,收藏一下
Spring源码解析1 IOC容器的初始化
package com.io; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; public class LargeMappedFiles { /** * 内存映射文件允许我们创建和修改那些因为太大而不能放入内存的文件 */ static int length=0x8FFFFFF;//128MB public static void main(String[] args) throws IOException { //public abstract class MappedByteBufferextends ByteBuffer直接字节缓冲区,其内容是文件的内存映射区域。 //映射的字节缓冲区是通过 FileChannel.map 方法创建的。此类用特定于内存映射文件区域的操作扩展 ByteBuffer 类。 MappedByteBuffer out=new RandomAccessFile("test.dat","rw").getChannel(). map(FileChannel.MapMode.READ_WRITE,0,length); //必须指定映射文件的初始位置和映射区域的长度 for(int i=0;i<length;i++){ out.put((byte)'x'); } System.out.println("Finish writing"); for(int i=length/2;i<length/2+6;i++){ System.out.println((char)out.get(i)); } } }
package com.io; import java.io.*; import java.nio.IntBuffer; import java.nio.channels.FileChannel; public class MappedIO { /** * 测试内存映射文件的访问速度 */ private static int numofints=4000000; private static int numofubuffints=200000; private abstract static class Tester{ private String name; public Tester(String name){ this.name=name; } //runTest()被用做是一种模板方法,为匿名内部子类中定义的test()的各种实现创建了测试框架 public void runTest() { System.out.println(name+": "); long start=System.nanoTime(); try { test(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } long duration=System.nanoTime()-start; System.out.format("%.2f\n", duration/1.0e9); } public abstract void test() throws IOException; } private static Tester[] tests={ new Tester("Stream Writer"){ public void test()throws IOException{ DataOutputStream dos=new DataOutputStream( new BufferedOutputStream(new FileOutputStream( new File("temp.tmp")))); for(int i=0;i<numofints;i++){ dos.writeInt(i); } dos.close(); } },new Tester("Mapped Writer"){ public void test()throws IOException{ FileChannel fc=new RandomAccessFile("temp.tmp","rw").getChannel(); IntBuffer ib=fc.map(FileChannel.MapMode.READ_WRITE, 0, fc.size()).asIntBuffer();//将此通道的文件区域直接映射到内存中。 for(int i=0;i<numofints;i++){ ib.put(i); } fc.close(); } },new Tester("Stream Read"){ public void test()throws IOException{ DataInputStream dis=new DataInputStream( new BufferedInputStream(new FileInputStream( "temp.tmp"))); for(int i=0;i<numofints;i++){ dis.readInt(); } dis.close(); } }, new Tester("Mapped Read"){ public void test()throws IOException{ FileChannel fc=new FileInputStream(new File("temp.tmp")).getChannel(); IntBuffer ib=fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()).asIntBuffer(); while(ib.hasRemaining()){ ib.get(); } fc.close(); } }, new Tester("Stream Read/Write"){ public void test()throws IOException{ RandomAccessFile raf=new RandomAccessFile(new File("temp.tmp"),"rw"); raf.writeInt(1); for(int i=0;i<numofubuffints;i++){ raf.seek(raf.length()-4); raf.writeInt(raf.readInt()); } raf.close(); } }, new Tester("Mapped Read/Write"){ public void test()throws IOException{ FileChannel fc=new RandomAccessFile(new File("temp.tmp"),"rw").getChannel(); IntBuffer ib=fc.map(FileChannel.MapMode.READ_WRITE, 0, fc.size()).asIntBuffer(); ib.put(0); for(int i=1;i<numofubuffints;i++){ ib.put(ib.get(i-1)); } fc.close(); } } }; public static void main(String[] args) throws IOException { for(Tester test:tests){ test.runTest(); } /*测试结果如下:Stream Writer: 1.29 Mapped Writer: 0.07 Stream Read: 1.16 Mapped Read: 0.07 Stream Read/Write: 38.49 Mapped Read/Write: 0.01 */ } }
发表评论
-
MapReduce
2011-03-07 11:55 18661.什么是MapReduce? MapRedu ... -
java Web
2010-10-20 19:55 62response.sendRedirect(): Web服务 ... -
JDK动态代理
2010-10-05 14:12 2412注意在使用JDK提供的动态代理要求我们的目标对象必须实现接 ... -
java的反射机制
2010-10-05 11:16 1688反射:运行时类型 如果你不知道某个对象的确切类型,RTT ... -
如何判断两个类之间的差异
2010-08-16 09:35 1035代码实现 package net.mindview.util ... -
HashSet和散列码的研究
2010-08-10 19:13 1617散列表(Hash table,也叫 ... -
持有对象Arrays.asList异常解决办法
2010-08-08 17:50 1286添加一组元素 package com.day1; im ... -
java编程思想 IO13 源码 文件解压缩
2010-05-09 15:21 1607package com.io; import java.io ... -
java编程思想 IO12 源码 文件加锁
2010-05-09 12:37 1875package com.io; import java.io ... -
java编程思想 IO10 文件操作源码
2010-05-08 16:05 1247package com.dirlist; import ... -
java编程思想 IO9 文件操作源码
2010-05-06 22:00 1021缓冲器的详细应用: package com.dirlist; ... -
java编程思想 IO8 文件操作源码
2010-05-06 20:24 1013通道与缓冲器的探究 pa ... -
java编程思想 IO7 文件操作源码
2010-05-06 09:42 1395希望大家留言一起讨论 ... -
java编程思想 IO6 文件操作源码
2010-05-05 23:26 1672package com.dirlist; import ... -
java编程思想 IO5 文件操作源码
2010-05-05 11:24 1433package com.dirlist; import ... -
java编程思想 IO4源码
2010-05-03 17:24 837目录的检查及创建 package com.dirlist; ... -
java编程思想 IO3源码
2010-05-03 16:27 1216利用策略设计模式来进行目录的遍历和文件的过滤 package ... -
java编程思想 IO2源码
2010-05-03 15:32 1174package net.mindview.util; impo ... -
java静态内部类
2010-05-03 11:31 2066引用别人的博客 在一 ... -
java编程思想 IO1源码
2010-05-03 09:48 1337目录列表器与目录过滤器的运用 package com.dirl ...
相关推荐
7. **数据持久化**:ORM(对象关系映射)框架如Hibernate,通过源码我们可以学习如何将Java对象与数据库表进行映射,实现数据库操作。 8. **网络编程**:对于涉及网络通信的框架,如Netty,源码分析可以揭示TCP/IP...
《Java面向对象编程》是孙卫琴先生撰写的一本深入探讨Java编程的著作,尤其注重面向对象的思想和实践。这本书的配套PPT和源码,为读者提供了丰富的学习资源,帮助理解和掌握Java语言的核心概念。 PPT部分,通常包含...
1. **Java编程基础**:作为系统的基础,开发者需要熟悉Java语言的基本语法、面向对象编程思想,以及常用的Java集合框架如ArrayList、HashMap等。同时,对于多线程、异常处理、IO流等核心概念也需要有深入理解。 2. ...
- 书籍:《Thinking in Java》是经典的Java学习书籍,深入讲解了Java编程思想。 12. **开发工具和框架**: - Spring框架:Java企业级应用开发的主流框架,包括Spring Boot、Spring MVC等。 - Hibernate和MyBatis...
Java项目开源源码.zip是一个包含Java编程语言的开源项目源代码的压缩文件。这个压缩包可能是一个完整的软件项目,供开发者学习、参考或参与贡献。它涵盖了从设计、实现到测试的全过程,对于想要深入理解Java开发或者...
在这些源代码中,你可以深入了解Java语言的基本结构、语法和编程思想。下面,我们将深入探讨Java编程的一些核心知识点。 1. **Java基础语法**:Java是一种面向对象的编程语言,其基础语法包括数据类型(如整型、...
1. **Java基础**:项目的基石是扎实的Java语言基础,包括面向对象编程思想、类与对象、封装、继承、多态、接口等核心概念。此外,还需要掌握异常处理、集合框架(如ArrayList、LinkedList、HashMap等)以及IO流等...
《Android编程典型实例与项目开发源码》是吴亚峰编著的一本深入浅出的Android开发教程,书中涵盖了从基础到进阶的各种实例和项目。通过对这些源码的学习,开发者可以快速掌握Android应用程序设计的核心技能。以下是...
总结,Apache Commons IO 2.2源代码为我们提供了一个丰富的学习资源,通过深入研究,不仅可以提升对Java IO的理解,还能学习到优秀的编程技巧和设计思想。在Eclipse环境中导入源码,可以方便地进行调试和学习,...
通过阅读这些库的源码,开发者不仅可以提升自身的技术水平,还能学习到优秀的设计思想和编程实践。在实际项目中,这有助于编写出更高效、更稳定的代码。同时,源码研究也能帮助开发者解决遇到的问题,因为他们可以...
<title>Java编程思想 布鲁斯·艾克 <publisher>Addison-Wesley ``` 对应一个简单的`Book` Java类: ```java public class Book { private String title; private String author; private String publisher; ...
这些源码对于开发者来说是宝贵的教育资源,通过阅读和分析,可以深入了解Java语言的设计思想,学习如何利用新特性提高代码质量,同时也能掌握各个版本之间的差异。无论是初学者还是经验丰富的开发者,都能从中...
下面我们将深入探讨该项目涉及的Java编程知识点、设计思想以及可能的技术实现。 1. **Java基础**:项目的基础是扎实的Java语言能力,包括面向对象编程(OOP)概念,如类、对象、封装、继承、多态等。同时,项目中...
源码层面上,深入研究其设计思想和实现细节,可以提升编程技能和对 Java 核心概念的理解。 在实际开发中,选择合适的 Apache Commons 组件可以大大简化任务,提高代码质量。了解每个组件的特性和用途,结合项目需求...
Java语言基础总结 Java是一种广泛使用的面向对象的...Java语言基础的学习不仅仅是掌握语法,更重要的是理解面向对象的思想,并能够熟练运用设计模式来解决实际问题。不断实践和学习,才能真正掌握这门强大的编程语言。
Guava对Java集合框架进行了扩展,提供了一些高效且功能丰富的类,如Multiset(多集)、Multimap(多映射)、ImmutableList、ImmutableSet和ImmutableMap等。这些集合不仅线程安全,而且在处理特定场景时性能更优,...
JavaMindMap是一个开源项目,旨在帮助开发者通过思维导图的方式来理解和学习Java基础知识、框架以及源码。这个项目的核心思想是将复杂的编程...通过该项目,你可以深入了解Java编程的各个方面,提升自己的编程技能。
工资管理系统java源码 :warning: 该项目已被弃用 (有效的工作组织) (黑客,娱乐) (大重写,增量重构) (职业发展) (软件架构、模块化模式、Java) (软件架构、权衡、复杂性) (软件架构、cqrs、事件溯源)...
包括面向对象的编程思想(类、对象、继承、多态、封装)、异常处理、集合框架(List、Set、Map等)、IO流、多线程、反射等核心概念。 2. **Spring框架**:新奥家电连锁网络系统可能采用了Spring框架进行业务逻辑的...
- **Java编码惯例**:学习并遵循Java编程的最佳实践,如命名规则、代码结构等。 - **递归处理**:理解递归的概念,学会编写递归函数解决复杂问题。 - **常用算法**:了解并能够实现排序、查找等基本算法。 - **...