1.java编译器
Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),
然后在OS之上的Java解释器中解释执行。 也相当与 注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。
2.JVM-java虚拟机
.JVM:是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,
可以在上面执行java的字节码程序。 java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,
通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。
3.JVM执行程序的过程:
1.加载。class文件 2.管理并分配内存 3.执行垃圾收集 JRE(java运行时环境)由JVM构造的java程序的运行环境 编译时 运行时
结论: JAVA编译器(javac)把Java源代码编译成字节码(.class文件);
jvm:在运行期将class文件编译成及其码文件,供程序运行;
Java的入口:
public static void main(String[] args)
这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为规定的格式
对于里面的参数及修饰符
public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样java虚拟机就可以找main()方法,从而来运行javac程序
static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去
void:main()方法是不需要返回值的
main:约定俗成,规定的
String[] args:从控制台接收参数
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。
Java的六大特点:1.简单: 性对于c语言来说淡化了指针的概念,
2.面向对象: 更贴近人的思维;
3.分布式: 多台服务器工同处理一个服务;减轻服务器压力;
4.跨平台:在不同平台上运行,Java代码需要一个编译的过程,将.Java文件编译成.class文件,然后.class文件再在Java虚拟机上进行运行;
5.安全性:(内存回收机制)
1.GC垃圾回收机制;又叫轮询机制
2.延迟释放(滞后性) oc 中使用引用计数机制;
6.健壮性:体现在(异常处理机制), (容错性比较高)
java是语言 需要开发平台(Eclipse) , 运行平台( jvm 跨平台的只要安装就可以), 环境部署
1,开发环境;
1. JDK 开发工具包;
2. JRE 运行的jar 包(系统提供的类)
实际上是jar中.class文件
3. JVM java虚拟机 (最终翻译成操作系统的指令;)
三者之间的关系 (包含的关系)
JDK包含JRE 和JVM
JRE 包含 JVM
控制台编译Java代码指令
javac 把 .java 编译成.class文件
java 执行java 程序
javaDoc 制作API 文档
Mac 下创建Java环境;
1.讲新建件的文件夹后缀改成 .Java(如果没有后缀.点击放达 -系统偏好设置,然后在高级设置里面有个:显示所有文件扩展名;)
zhangjianhai:~ lanou$ cd /Users/lanou/Desktop/helloworld (cd+空格将含有文件的文件夹拖入终端’)
zhangjianhai:helloworld lanou$ javac helloworld.java (将.java转换成.class文件;)
zhangjianhai:helloworld lanou$ java helloworld ( 执行.class文件;)
Hello Java!!
zhangjianhai:helloworld lanou$
* 1.一个java文件可以有多个类(class)
* 但是只能有一个public修饰的类(公开的)
* 2.这个public修饰的类必须跟.java文件的文件名相同;
java 中的标示符 (也是系统已经使用的关键词)
* 类名 使用大驼峰 class后面的跟着的 首字母大写每个单词的首字母都要大写;
* 变量名 都是小驼峰书写方式;只有第一个首字母是小写的;后面单词大写;
* 标示符 只能以数字 )0—9 字母 (java严格区分大小写)下划线—— 美元$开头
* 变量名 标示符 取名的核心 简明知其意
public class HelloWorld {
public static void main(String[] args) {
System.out.println(0b11);
}
}