前言
新征程,进入java的学习。 给自己定下一个铁律: 学习,刷题。
一、java程序结构
下面先上一个最简单的java程序:
public class HelloWorld{
public static void main(String[] args){
System.out.println("hello");
}
}
接下来,我们分析一下java这个程序的结构。 首先,Java 区分大小写。 如果出现了大小写拼写错误(例如, 将 main 拼写成 Main),程序将无法运行。
又例如(String[] args)中的S要大写,我刚写这个程序就被没有大小写的细节搞到浪费了好多时间,请大家一定要注意。
关键字 public 称为访问修饰符, 这些修饰符用于控制程序的其他部分对这段代码的访问级別。
关键字 class 表明 Java 程序中的全部内容都包含在类中。
关键字 class 后面紧跟类名。
一个Java程序的结构由如下三个部分组成:
1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个 类。类的内容必须包含在花括号里面。 2.类:类中带有一个或多个方法。方法必须在类的内部声明。 3.方法:在方法的花括号中编写方法应该执行的语句。
【总结】 类存在于源文件里面;方法存在于类中;语句存在于方法中。
二、java程序的运行
1.运行过程
Java程序运行的流程如下图:
所有的Java源代码(以.java为扩展名),通过Java编译器javac变成字节码,也就是以.class为扩展名的文件。然后利用命令Java讲对应的字节码通过java虚拟机(JVM)解释为特定操作系统,如Windows,Linux等能理解的机器码,最终Java程序得以运行。
2.JVM是什么?
JVM就是Java虚拟机。
我们可以理解为在机器和编译程序之间加入了一层抽象的虚拟机器,这个虚拟机器在任何平台都提供给编译一个共同的接口。
编译程序只需要面向虚拟机,生成虚拟机能够理解的代码,然后由解释器来将虚拟机代码转换成特定的系统代码执行。
下面解释两个东西:
JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。 JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
那么JRE JDK JVM的三者关系如何? 如图:
三、常量与变量
1. 计算机工作原理
说到计算机原理,就不得不提一个人——冯·诺依曼。被称为计算机之父。
著名的冯·诺伊曼设计思想如下: 1、计算机由运算器、控制器、存储器、输入设备、输出设备组成。五大部件通过系统总线连接。
【解释】 当输入设备向总线输入指令时,CPU获取该指令并处理。当CPU处理指令时,CPU调用内存储器的数据以便进行控制和计算,最后将计算结果发送给输出设备或外存储器。
当内存储器中的数据需要从外存储器中读取时,外存储器将数据送往总线,在CPU的控制下,内存储器再将该数据进行存储。
2、计算机内部采用二进制表示指令和数据
3、将编好的程序送入内存储器中,让程序来指挥计算机自动逐条取出指令和执行指令。其核心是“存储程序和程序控制”。
2.变量和类型
变量是利用声明的方式,将内存中的某个内存块保留下来以供程序使用,其内的值是可变的。
声明变量的作用
1、指定在内存中分配空间的大小 2、规定这个变量所能接受的运算
3.变量的命名规则
1、变量名可由任意顺序的大小写字母、数字、下划线(_)和美元符号($)(非常不建议使用)等组成 2、变量名不能以数字开头 3、变量名不能是Java中的保留关键字
4.变量的作用范围
作用范围有时也称为作用域 按作用范围划分,变量分为成员变量和局部变量
【成员变量】 在类中定义的变量为成员变量。它的作用范围是整个类。也就是说在这个类中都可以访问到定义的这个成员变量。
public class HelloWorld{
static int a=10;
public static void main(String[] args){
int num=10;
System.out.println("num");
}
}
【局部变量】 在一个函数(或称方法)或函数代码块仲定义的变量称为局部变量,局部变量在函数或代码块被执行时创建,在函数或代码块结束时被销毁。
public class HelloWorld{
static int a=10;
public static void main(String[] args){
int num=10;
System.out.println("num");
}
}
【注意】局部变量在进行取值操作前必须被初始化或赋值操作,否则会出现编译错误!
总结
数据类型那一部分的内容想了想,还是不要拆开来写博客,于是我打算在整一节学完之后,再给大家整理。这次就先整理这么多内容。
|