美籍匈牙利数学家冯·诺依曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。
输入设备:比如键盘,鼠标等,它把数据传输给存储器,并由控制器控制,
存储器:比如(主存)内存,(辅存)硬盘等,它从输入设备获取数据,与运算器交换数据,把数据给控制器和输出设备(先从内存读取,如果内存没有,再从硬盘获取)
输出设备:数据从存储器获得,并由控制器控制
CPU:
一定要记住数据流的走向
CPU读取数据时首先从内存中去读,如果内存中没有,再去辅助存储器(比如硬盘)读,把硬盘的读入到内存,然后才会被CPU读取到。
CPU运算后的结果,先存入内存,然后再存入硬盘。
保存数据是将内存的数据写入硬盘,只要硬盘不坏,数据就一直在硬盘里。
计算机软件可以使计算机按照事先约定好的顺序完成特定功能
计算机软件按运行层级可以划分为系统软件和应用软件
Java特性:高可用,高性能,高并发
无需管理内存分配,指针等,更多时间专注业务开发
/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
不配置环境变量/etc/profile也能用,为啥?
java -version
java version “1.8.0_121”
Java™ SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot™ 64-Bit Server VM (build 25.121-b13, mixed mode)
public class Hello{ public static void main(String[] args){ System.out.print("Hello World!"); } }
javac Hello.java
java Hello Hello World!%
疑问?为啥有个%,没百度出来
Java这个语言很非凡。
一、你可以说它是编译型的。因为所有的Java代码都是要编译的,.java不经过编译就什么用都没有。
二、你可以说它是解释型的。因为java代码编译后不能直接运行,它是解释运行在JVM上的,所以它是解释运行的,那也就算是解释的了。
三、但是,现在的JVM为了效率,都有一些JIT优化。它又会把.class的二进制代码编译为本地的代码直接运行,所以,又是编译的。
像C、C++ 他们经过一次编译之后直接可以编译成操作系统了解的类型,可以直接执行的 所以他们是编译型的语言。没有经过第二次的处理 而Java不一样他首先由编译器编译成.class类型的文件,这个是java自己类型的文件 然后在通过虚拟机(JVM)从.class文件中读一行解释执行一行,所以他是解释型的语言,而由于java对于多种不同的操作系统有不同的JVM所以 Java实现了真正意义上的跨平台!