Java基础的实际应用

↘锁芯ラ 提交于 2019-11-29 22:00:05

IO流

java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中。

   
字节流基类 Inputstream OutputStream
字节文件操作流 FileInputStream FileOutputStream
字节缓冲流(高效流) BufferedInputStream BufferedOutputStream

NIO

三大组件:chanel、buffer、selector

 ###FileChannel和buffer的简单使用 ​ RandomAccessFile accessFile = null; try {     accessFile = new RandomAccessFile("test.txt", "rw");     FileChannel channel = accessFile.getChannel();     ByteBuffer buffer = ByteBuffer.allocate(1024);     int bytesRead;     while ((bytesRead = channel.read(buffer)) != -1) {         buffer.flip();         while (buffer.hasRemaining()) {             System.out.print((char) buffer.get());         }         buffer.compact();     } } finally {     accessFile.close(); }

缓冲区(buffer)的使用

buffer:缓冲区,实际上是一个容器、连续数组。Channel提供从文件、网络读取数据的渠道,但是读写的数据都必须经过buffer。

可以把buffer简单地理解为一组基本数据类型的元素列表,它通过几个变量来保存这个数据的当前位置状态:capacity,position,limit,mark。

索引说明
capacity 缓冲区数组的总长度
position 下一个要操作的数据元素的位置
limit 缓冲区数组中不可操作的下一个元素的位置:limit<=capacity
mark 用于记录当前position的前一个位置或者默认是-1
作用相关方法
分配空间 ByteBuffer buffer = ByteBuffer.allocate(1024);
写入数据到buffer中 int bytesRead = channel.read(buffer)
判断buffer中有数据 boolean b=buffer.hasRemaining()
从Buffer中读取数据 buffer.get()
开始时 buffer.flip()
结束时 buffer.compact()

Arrays方法的巧用

  1. 将数组转换成List:List<String> list = Arrays.asList(arr.split(","));

  2. 数组根据ASCII码排序:Arrays.sort(arrayToSort, String.CASE_INSENSITIVE_ORDER);

Iterator的使用

 【---list---】 List<Integer> list = new ArrayList<>(); //遍历 while (iterator.hasNext()) {     System.out.print(iterator.next() + " "); } //删除 while (iterator.hasNext()) {     iterator.remove(); } ​ 【---map---】 Map<Integer, String> map = new HashMap<>(); Iterator<Integer> it = map.keySet().iterator(); while(it.hasNext()) {     Integer key = it.next();     System.out.println(key+"->"+map.get(key)); }

JVM相关

内存分配

java -jar -Xms128m -Xmx256m xx.war

命令解释
Xms 指设定程序启动时占用内存大小
Xmx 是指设定程序运行期间最大可占用的内存大小
Xss 指设定每个线程的堆栈大小

以上三个参数的设置都是默认以Byte为单位的,也可以在数字后面添加[k/K]或者[m/M]来表示KB或者MB。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!