Java程序不是在内存中运行的吗?

 public static void write(){
	String text="abcdefg";
	 		ByteArrayInputStream bais=new ByteArrayInputStream(text.getBytes());
	         int n=bais.read();
	         while(n!=-1){
	         	System.out.print((char)n);
	         	n=bais.read();
	         }
	         try {
	        	 if(bais!=null){
				bais.close();
	        	 }
			} catch (IOException e) {
				e.printStackTrace();
			}
   }

我的疑惑如下:

     整个Java代码不都是在内存中运行的吗?那个整个Java程序不就是内存的一部分?为什么还会有内存流(用来传递程序和内存之间的数据)这一说?

       请大神解释一下,在此谢过啦!

     注:和什么堆内存、栈内存等没有关系,真的是不理解内存与程序的关系。

qq_阳光下的海风_0
浏览 1472回答 1
1回答

阿旭_

内存(数据断电消失:内存条、cpucatch……),外存(数据断电不消失:外存器、U盘、硬盘、光盘)显示器要显示内容,通常需要先把展示的数据从外存(比如硬盘)读到内存中去,仅仅读是不够的,还要有一定的逻辑去计算显示的数据,负责计算的是cpu。简言之,玩游戏也好、打开eclipse也好,只要是运行的,都只能在内存中运行(断电就消失了)。所以在打开Eclipse编写代码的时候建议要经常Ctrl+S(保存正在编写的代码到磁盘/硬盘中去)。这样电脑突然断电了,再打开ecipse也能看到相应编辑的文件。==============一个应用程序通常称做一个进程,进程也是在内存中的,内存要拿外存(磁盘的数据时)这个过程称做 内存与外存的交互。在java里叫做IO文件流读写操作。IO流读写(内存流读:比如向D盘中打开一个名为abc.txt的文件,并将内容读到内存中去)、IO流写(内存流写:比如向硬盘D盘保存一个名为abc.txt的文件,并在这个文件中写数据"哈哈哈哈"并保存)。整个过程D盘的abc.txt这个文件是不会因为突然断电而消失的,当你再打开电脑去D盘找,依然能看到abc.txt文件。但这个操作过程确是由java中的InputStream相关类文件实现的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java