【java】内存流:java.io.ByteArrayInputStream、java.io.ByteArrayOutputStream、java.io.CharArrayReader、java.io.CharArrayWriter

 1 package 内存流;
 2
 3 import java.io.ByteArrayInputStream;
 4 import java.io.ByteArrayOutputStream;
 5 import java.io.IOException;
 6 import java.io.InputStream;
 7 import java.io.OutputStream;
 8
 9 public class Test {
10     public static void main(String[] args) throws IOException {
11         String str="Hello World!中国好国国国。";
12         InputStream in=new ByteArrayInputStream(str.getBytes());
13         OutputStream out=new ByteArrayOutputStream();
14         int tmp=0;
15         while((tmp=in.read())!=-1)
16             out.write(Character.toUpperCase(tmp));
17         System.out.println(out);//HELLO WORLD!中冠好冠冠冠。
18         //中文有乱码!!!
19         in.close();
20         out.close();
21     }
22 }

字节数组字节输入输出内存流

 1 package 内存流;
 2
 3 import java.io.CharArrayReader;
 4 import java.io.CharArrayWriter;
 5 import java.io.IOException;
 6 import java.io.Reader;
 7 import java.io.Writer;
 8
 9 public class Test {
10     public static void main(String[] args) throws IOException {
11         String str="Hello World!中国好国国国。";
12         Reader in=new CharArrayReader(str.toCharArray());
13         Writer out=new CharArrayWriter();
14         int tmp=0;
15         while((tmp=in.read())!=-1)
16             out.write(Character.toUpperCase(tmp));
17         System.out.println(out);//HELLO WORLD!中国好国国国。
18         //字符流处理中文无乱码!!!
19         in.close();
20         out.close();
21     }
22 }

字符数组字符输入输出内存流

时间: 2024-11-11 09:37:21

【java】内存流:java.io.ByteArrayInputStream、java.io.ByteArrayOutputStream、java.io.CharArrayReader、java.io.CharArrayWriter的相关文章

Java内存管理的9个小技巧

Java内存管理的9个小技巧很多人都说“Java完了,只等着衰亡吧!”,为什么呢?最简单的的例子就是Java做的系统时非常占内存!一听到这样的话,一定会有不少人站出来为Java辩护,并举出一堆的性能测试报告来证明这一点.其实从理论上来讲Java做的系统并不比其他语言开发出来的系统更占用内存,那么为什么却有这么多理由来证明它确实占内存呢?两个字,陋习. 1.别用new Boolean(). 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是通过Boolea

Java虚拟机12:Java内存模型

什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果.在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台上内存模型的差异,有可能导致程序在一套平台上并发完全正常,而在另外一套平台上并发访问却经常出错,因此在某些场景下就不许针对不同的平台来编写程序. Java内存模型即要定义得足够严谨,才能

Java虚拟机学习2:Java内存区域及对象

几个计算机的概念 为以后写文章考虑,也为巩固自己的知识和一些基本概念,这里要理清楚几个计算机中的概念. 1.计算机存储单位 从小到大依次为位Bit.字节Byte.千字节KB.兆M.千兆GB.TB,相邻单位之间都是1024倍,1024为2的10次方,即 1Byte = 8bit,1K = 1024Byte,1M = 1024K,1G = 1024M,1T = 1024G 2.计算机存储元件 寄存器:中央处理器CPU的一部分,是计算机中读写速度最快的存储元件,但是容量很少 内存:属于独立的一个部件,

全面理解Java内存模型(JMM)及volatile关键字(转)

原文地址:全面理解Java内存模型(JMM)及volatile关键字 关联文章: 深入理解Java类型信息(Class对象)与反射机制 深入理解Java枚举类型(enum) 深入理解Java注解类型(@Annotation) 深入理解Java类加载器(ClassLoader) 深入理解Java并发之synchronized实现原理 Java并发编程-无锁CAS与Unsafe类及其并发包Atomic 深入理解Java内存模型(JMM)及volatile关键字 剖析基于并发AQS的重入锁(Reetr

Java内存模型与volatile关键字浅析

volatile关键字在java并发编程中是经常被用到的,大多数朋友知道它的作用:被volatile修饰的共享变量对各个线程可见,volatile保证变量在各线程中的一致性,因而变量在运算中是线程安全的.但是经过深入研究发现,大致方向是对的 ,但是细节上不是这样. 首先,引出volatile的作用.情景:当线程A遇到某个条件时,希望线程B做某件事.像这样的场景应该是经常会遇到的吧,下面我们来看一段模拟代码: package com.jack.jvmstudy; public class Test

并发编程-(3)Java内存模型和volatile

目录 1.内存模型概念 2.多线程的特性 1.1.原子性 1.2.可见性 1.3.有序性 2.Java内存模型 2.1.JMM和JVM 2.2.Java内存模型(JMM) 2.2.1.案例 2.2.2.volatile作用 2.3.重排序 2.3.1.什么是重排序 2.3.2.重排序如何影响线程安全 2.4.总结 1.内存模型概念 我们都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入.由于程序运行过程中的临时数据是存放在主存(物理内存)当中的

java内存管理机制(一)-运行时数据区

前言 本打算花一篇文章来聊聊JVM内存管理机制,结果发现越扯越多,于是分了三遍文章(文章讲解JVM以Hotspot虚拟机为例,jdk版本为1.8),本文为其中第一篇.from java内存管理机制(一)-运行时数据区  1. java内存管理机制-运行时数据区 2. java内存管理机制-内存分配 3. java内存管理机制-垃圾回收 正文 C++与java之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙里的人却想出来…… 与C.C++程序员时刻要关注着内存的分配与释放

Java内存管理-掌握虚拟机类加载器(五)

勿在流沙筑高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 上一篇介绍虚拟机类加载机制,讲解了类加载机制中的三个阶段,分别是:加载.连接(验证.准备.解析).初始化 ,知道了类加载的机制.下面我们就要知道类到底是通过什么方式加载到内存中的,也就是本文要介绍的类加载器,类加载器就是加载类的信息到内存中. 本文地图 : 一.什么是类加载器(ClassLoader) 虚拟机设计团队把类加载阶段中的”通过一个类的全限定名来获取描述此类的二进制字节流“

Java内存模型——volatile关键字

最近工作中又用到了volatile关键字,一直以来就是单纯的使用,也没有仔细看过相关内容,这次借机会详细的整理了下有关volatile的资料,记录在案以备查阅. 首先我们来看一个小例子: 1 public class VolatileDemo1 { 2 private boolean flag = true; 3 4 public static void main(String[] args) throws InterruptedException { 5 VolatileDemo1 demo

十二、深入理解Java内存模型

深入理解Java内存模型 [1]CPU和缓存的一致性 ? 我们应该都知道,计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又免不了要和数据打交道.而计算机上面的数据,是存放在主存当中的,也就是计算机的物理内存啦. ? 刚开始,还相安无事的,但是随着CPU技术的发展,CPU的执行速度越来越快.而由于内存的技术并没有太大的变化,所以从内存中读取和写入数据的过程和CPU的执行速度比起来差距就会越来越大,这就导致CPU每次操作内存都要耗费很多等待时间. ? 所以,人们想出来了一个好的