Public class Welcome{
public static void main(string[] args){
//程序简单在控制台打印出Welcome to Java!
System.out.println("Welcome to Java!");
}
}
分析上面的一个简单程序它就是在控制台输出:Welcome to Java!
1,每个Java程序都至少要有一个类,每个类都有一个名字按照一般的习惯类名是以大写字母开头的,这里的类名是Welcome
2,主方法(main方法)为了要运行一个类则必须要有一个main方法,并且程序是从main方法开始执行的
方法是包含执行语句的结构体,在这里main方法中包含执行语句System.out.println(“Welcome to Java!”);
在Java当中每一条语句都是以;号作为结束标记的,所以一条语句可以分开写在多行上直到遇到了;之后这条语句才算是结束了。
3,保留字(关键字)对编译器是有特定含义的,因而是不可以在程序中用来指定为其它用途的,上面程序中的关键字有public,void,static
4,注释用来标注程序是干什么的、语句是来执行什么操作的等,它可以帮助程序来更好的理解程序及更好的相互之间沟通注释分为两种,//这是单行注释 /*这是多行注释*/
程序中的一对花括号把程序的一些组件组合起来,形成一个块block在Java当中每个块是以左括号{开始,以右括号}结束,每个类都有一个把这个类的数据和方法放在一起的类块以及方法会有一个把这个方法中的语句放在一起的方法块,而且注意块是可以嵌套的一个块可以放在另一个块的内部
Public class Welcome{
方法块 |
类块 |
System.out.println("Welcome to Java!");
}
}
注意左、右括号是配对的必须要同时存在,所以在输入了左括号后一定要输入一个右括号然后再向块中添加内容这样可以防止产生遗漏括号的错误
main方法为什么要这样声明?
因为Java虚拟机JVM在加载class的时候要调用main方法去执行类,这个时候JVM只知道类名,然而怎么才能去执行这个main方法呢?这个时候就明显的要main方法声明为一个static并且是JVM去调用因而要是public所以最后main是固定写为public static void main(string[] args)
注意Java程序中是区分大小写的,所以对于main就是main而不能写为Main
建立、编译、执行Java程序:
在执行程序之前,必须要创建程序并进行编译,这个过程是反复执行的,因为很有可能在编译过程中出现了错误了这个时候就要返回去进行编译并再次进行编译,这个时候我们修改的是程序的语法上的错误,如果程序存在逻辑上的错误则很有可能在程序执行的过程中出错或是得到一个不是预期的结果这时我们要返回去重新去修改源程序并进行编译然后重新执行
源代码(程序员开发)
Public class Welcome{ public static void main(string[] args){ System.out.println("Welcome to Java!"); } } |
字节码(由编器产生的,这是给JVM来读取来解释的)
…….. xxxxxxxxxx xxxxxx xxxxxxxxxxxxxx
|
在控制台输出结果Welcome to Java!
如果没有语法上的错误的话编译器会生成一个.class文件这是一个字节码文件,这里的字节码文件类似于机器指令,只是它是体系结构中立的,可以在任何带JVM的系统上运行,JVM就是一个可以解释字节码的程序针对不同平台的JVM它会把它们解释为相应平台的机器指令
JVM解释字节码文件的时候是一步一步解释而不是一次性全部解释为相应平台的机器指令因为这样会使执行的效率下降,它会把字节码中单独的一步翻译为机器语言来执行
注意在执行一个Java程序的时候JVM会先用一个称为类加载器class loader的程序把类的字节码加载到内存当中去,如果程序中使用其它的类,类加载器会在需要它们之前动态地加载,当加载完成类后,JVM使用一个称为字节码验证器 bytecode verifier的程序来验证字节码的合法性,这是为了保证字节码不会违反Java的安全规范。
import javax.swing.JOptionPane;
publicclass WelcomeInMessageDialogBox {
publicstaticvoid main(String[] args) {
JOptionPane.showMessageDialog(null, "Welcome to Java!");
}
}
上面这个程序把消息文本输出到了一个消息框当中而不是控制台,它使用了一个类JoptionPane
这是Java API中预定义的类,对于API中提供的类都放在相应的包中,所以在使用中一定要先这个类所在的包导入到源代码当中,也就是告诉编器要找相应的类的时候在这个包的位置去找
import javax.swing.JOptionPane;
当然如果在程序当中要使用的地方就用类的全名(包名.类名)则可以不用导入包
比如javax.swing.JOptionPane.showMessageDialog(null, "Welcome to Java!");
这样写的话可以不用导包,因为这里明确去找这人类的地方已明确指出,这里我们就要注意的就是关于类名一定是唯一的,因为不能让编译器找到两个相同的类这样编译器是无法知道你要使用的是那个类的!
关于showMessageDialog()方法有两个参数,第一个参类这里指定为null,第二个是指定的要显示的文本
另一个重载的方法有四个参数:
JoptionPane.showMessageDialog(null,x,y,JoptionPane.INFORMATION_MESSAGE);
这里的几个参数说明:第一个与两个参数的一致指定的是父组件,在这里可以取null
第二个指定要显示的消息文本
第三个是指定显示消息框的标题
第四个是一个常量INFORMATION_MESSAGE表示在消息息框的图标上显示一个警告图标