Java程序结构与常量变量难点解析
作者:波风张三
前言
新征程,进入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"); } }
【注意】局部变量在进行取值操作前必须被初始化或赋值操作,否则会出现编译错误!
总结
数据类型那一部分的内容想了想,还是不要拆开来写博客,于是我打算在整一节学完之后,再给大家整理。这次就先整理这么多内容。
到此这篇关于Java程序结构与常量变量难点解析的文章就介绍到这了,更多相关Java 程序结构内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!