初识Java–part1
关键字: JDK,JRE,JVM三者作用以及三者联系,解释Java为什么一次编译到处执行,用windows下的powershell执行notepad中代码的流程及常见问题处理方法,冯诺依曼体系以及其与哈佛体系的区别
JDK (Java Development Kit)Java开发工具包 集成了JRE和其他一些开发的工具
JRE (Java Runtime Environment)Java运行时环境 包含JVM的标准实现和一些Java基本类库
JVM (Java Virtual Machine) Java虚拟机 是Java能够跨平台运行的核心
Q : Java为什么可以一次编译到处执行?
虽然不同操作系统的API(Application Programming Interface)不同,但是Java中引入了字节码的概念,而JVM只能识别字节码并将其解释到系统的API调用,针对不同的操作系统有不同的JVM实现,在不同平台上实现某功能,其代码和生成的字节码都是唯一的,不同操作系统的JVM实现上会映射到不同操作系统的API调用,这使得Java可以一次编译到处执行,也就是说并不是Java能够跨平台,而是它的JVM能够跨平台
public class hl { // public 公有的 是一个关键字, class 用来定义类(类是结构体的高配版), hl 跟在class后面,是类名,类名后面的{}内叫类体,会包含一些属性和方法
public static void main(String[] args){// static 静态的(Java中的main函数前都跟static),String[] args 定义字符串数组,c中定义数组都是 int arr[10] ,而Java中int [] arr,String 表示该数组为字符串类型
System.out.println("hello world");//"hello world"字符串,但是不存在像C语言中一样以\0结尾
}
}
在Windows Powershell(在代码所在文件夹中shift+左键打开)中执行结果
但是如果加了中文注释编译就会出现错误,如下图:
在Notepad++中编写Java代码加中文注释后会编译会提示乱码,如上图,因为notepad++上面注释默认是UTF-8(LINUX)编码,而运行Windows上解码默认是GBK(windows的编码)
所以编译时将指令javac 文件名.java 改为 javac -encoding UTF-8 文件名.java即可
-
javac之后会发现代码所在文件夹多了一个.class文件,一个class对应一个.class字节码文件(二进制文件)
-
类只有使用到才会被调用
-
java 里面求数组长度 数组名.length
-
java 文件名 后面如果加东西的话 这些东西就叫命令行参数,存储在数组中,遍历的时候会打印出来
public class hl {// public 公有的 是一个关键字
public static void main(String[] args){
for(int i = 0;i < args.length;i++) {
System.out.println(args[i]);
}
}
}
- import 的作用相当于c语言里面的include 引入头文件
- 冯诺依曼体系(指令和数据放在同一个存储器) 五部分组成 内存(M.M)控制器(CU)运算器(ALU) 输入设备 输出设备 CPU由控制器和运算器组成
- 哈佛结构 指令和数据分别放在两个存储器