java代码运行流程图 java编程运行

java运行的五个步骤?Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode)
2、字节码由java虚拟机解释运行 。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language) 。
下面通过以下这个java程序,来说明java程序从编译到最后运行的整个流程 。代码如下:
//MainApp.java
public class MainApp {
public static void main(String[] args) {
Animal animal = new Animal("Puppy");
animal.printName();
}
}
//Animal.java
public class Animal {
public String name;
public Animal(String name) {
this.name = name;
}
public void printName() {
System.out.println("Animal [" name "]");
}
}
第一步(编译): 创建完源文件之后 , 程序会先被编译为.class文件 。Java编译一个类时,如果这个类所依赖的类还没有被编译 , 编译器就会先编译这个被依赖的类 , 然后引用,否则直接引用,这个有点象make 。如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误 。
编译后的字节码文件格式主要分为两部分:常量池和方法字节码 。常量池记录的是代码出现过的所有token(类名 , 成员变量名等等)以及符号引用(方法引用 , 成员变量引用等等);方法字节码放的是类中各个方法的字节码 。下面是MainApp.class通过反汇编的结果,我们可以清楚看到.class文件的结构:
第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载2、类的执行 。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类 。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来 , 而且只加载一次 。
下面是程序运行的详细步骤:
在编译好java程序得到MainApp.class文件后,在命令行上敲java AppMain 。系统就会启动一个jvm进程,jvm进程从classpath路径中找到一个名为AppMain.class的二进制文件 , 将MainApp的类信息加载到运行时数据区的方法区内,这个过程叫做MainApp类的加载 。
然后JVM找到AppMain的主函数入口,开始执行main函数 。
main函数的第一条命令是Animalanimal = new Animal("Puppy");就是让JVM创建一个Animal对象,但是这时候方法区中没有Animal类的信息,所以JVM马上加载Animal类,把Animal类的类型信息放到方法区中 。
加载完Animal类之后,Java虚拟机做的第一件事情就是在堆区中为一个新的Animal实例分配内存, 然后调用构造函数初始化Animal实例,这个Animal实例持有着指向方法区的Animal类的类型信息(其中包含有方法表 , java动态绑定的底层实现)的引用 。
当使用animal.printName()的时候,JVM根据animal引用找到Animal对象,然后根据Animal对象持有的引用定位到方法区中Animal类的类型信息的方法表,获得printName()函数的字节码的地址 。
开始运行printName()函数 。
特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法都是采用静态绑定机制 。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到 。
intellij idea怎么写java程序1、选择“Create New Project”
2、选择Javajava代码运行流程图,然后点击Next
3、点击Next
4、填写项目名java代码运行流程图,然后点击Finish
5、在“src”目录上右击 , 选择“New”-“Java Class”
6、填写类名,然后点击OK
7、程序写完后点击绿色java代码运行流程图的箭头
8、选择第一项
9、完成 。程序的输出显示在屏幕下方
JAVA程序的流程图import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Drawing extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
// 实例化一个文本域
JTextField tf = new JTextField();
// 设置两个按钮
JButton b1 = new JButton("开始");
JButton b2 = new JButton("停止");
boolean isGo = false;
public Drawing() {
b1.setActionCommand("start");// 在开始按钮上设置一个动作监听 start
JPanel p = new JPanel();// 创建一个面板容器 , 用于放置组件
// 将两个按钮添加到可视化容器上面 , 用add方法
p.add(b1);
p.add(b2);
// 在两个按钮上增加监听的属性,自动调用下面的监听处理方法actionPerformed(ActionEvent
// e),如果要代码有更好的可读性,可用内部类实现动作
// 监听处理 。
b1.addActionListener(this);
b2.addActionListener(this);
// 将停止按钮设置为不可编辑(即不可按的状态)
b2.setEnabled(false);
// 将上面的文本域放在面板的北方 , 也就是上面(上北下南左西右东)
this.getContentPane().add(tf, "North");
// 将可视化容器pannel放在南边 , 也就是下面
this.getContentPane().add(p, "South");
// 设置用户在此窗体上发起"close"时默认执行的操作,参数EXIT_ON_CLOSE是使用
// System exit方法退出应用程序 。仅在应用程序中使用
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300, 200);// 设置面板大小,宽和高
this.setLocation(300, 300);// 设置面板刚开始的出现的位置
// 用指定名称创建一个新的定制光标对象,参数表示手状光标类型
Cursor cu = new Cursor(Cursor.HAND_CURSOR);
// 为指定的光标设置光标图像,即设置光标图像为上面所创建的手状光标类型
this.setCursor(cu);
// 将面板可视化设置为true , 即可视 , 如果为false , 即程序运行时面板会隐藏
this.setVisible(true);
// 设置面板的标题为欢迎
tf.setText("welcome to this program! ");
this.go();// 调用go方法
}
public void go() {
// 这里是死循环,也就是说用户不点击停止按钮的话他一直循环出现随机数,直到用户点
// 击停止按钮循环才能推出,具体流程在actionPerformed方法中控制 。
while (true) {
// 上面所定义的isGo的初始值为false,所以程序第一次到此会跳过
if (isGo == true) {
String s = "";
// 产生7个随机数
for (int j = 1; j = 7; j) {
// 每个随机数产生方式,这里定义灵活,可以自由定义随机数产生的方式
int i = (int) (Math.random() * 36)1;
// 如果产生的随机数小于10的话做处理:这里就牵扯到一个重要的概念,简单叙述一下:
if (i10) {
s = s" 0"i;
/*
* 当一个字符串与一个整型数项相加的意思是连接,上面的s = s" 0"
* i的意思是字符串s链接0再连接整型i值 , 而不会导致0和整型的i相加 ,
* 产生的效果为s0i,由于s为空字符串(上面定义过的),所以当i小于零时,在个位数前面加上0 , 比如产生的随机数i为7的话,显示效果为
* 07.
*/
} else {
// 如果产生的随机数比10打的话 , 那么加上空格显示,即数字和数字之间有个空格
s = s" "i;
}
// 以上循环循环七次,以保证能出现7个随机数
}
// 将产生的随机数全部显示在文本域上,用文本域对象tf调用它的
//设置文本的方法setText(String)实现 。
tf.setText(s);
}
try {
// 以下为线程延迟
Thread.sleep(10);
} catch (java.lang.InterruptedException e) {
e.printStackTrace();
}
}
}
// 以下是上面设置的事件监听的具体处理办法,即监听时间处理方法,自动调用
public void actionPerformed(ActionEvent e) {// 传入一个动作事件的参数e
// 设置字符串s来存储获得动作监听,上面的start
String s = e.getActionCommand();
/*
* 以下这个条件语句块的作用为:用户点击开始后(捕获start,用方法getActionCommand()),将命令触发设置为true , 从而执行上面的go方法中的循环体(因为循环体中要求isGo参数为true,而初始为false) 。
* 执行循环快产生随机数 , 并将开始按钮不可编辑化,而用户只可以使用停止按钮去停止 。如果用户按下停止时 , 也就是没有传入参数“start”的时候,
* 执行else语句块中的语句 , isGo设置为false,将不执行上面go中的循环语句块,从而停止产生随机数,并显示,并且把开始按钮设置为可用,而把
* 停止按钮设置为不可用,等待用户按下开始再去开始新一轮循环产生随机数 。
*/
// 如果捕获到start,也就是用户触发了动作监听器,那么下面处理
if (s.equals("start")) {
isGo = true; // 设置isGo为true
b1.setEnabled(false); // 将开始按钮设置为不可用
b2.setEnabled(true); // 将停止按钮设置为可用
} else {
isGo = false; // 将isGo设置为false,isGo为循环标志位
b2.setEnabled(false); // 设置停止按钮为不可用(注意看是b2,b2是停止按钮)
b1.setEnabled(true); // 设置开始按钮为可用
}
}
public static void main(String[] args) {
new Drawing();// 产生类的实例,执行方法
}
// 圣诞平安夜了,祝朋友开心快乐!
}
java代码怎样运行出来?步骤:
1、在cmd中切换到编写的代码所保存的目录下;
2、在cmd中输入javac然后点空格,再点击文件名和包括后缀名确定后,在存放编写代码的文件下会生成一个class的字节码文件;
3、在cmd中输入java然后点空格,输入第二步中生成的字节码的文件名,不需要后缀名,点击确定即可运行代码 。
代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系 。计算机代码称为源代码,是相对目标代码和可执行代码而言的 。源代码就是用汇编语言和高级语言写出来的地代码 , 目标代码是指源代码经过编译程序产生的能被cpu直接识别二进制代码 。
什么是java程序流程图?我是刚开始学java的,不知道是什么意思,希望各位能帮我解释一下 。其实就是程序设计java代码运行流程图的流程图java代码运行流程图,用于应用程序开发的蓝本java代码运行流程图,随便找个流程图看看就明白是什么意思java代码运行流程图了
说不太能说的明白java代码运行流程图 , 类似于棋谱一类的东西 , 上一步走什么,下一步走什么
;ct=201326592cl=2lm=-1fr=ala0fmq=pv=ic=0z=0se=1showtab=0fb=0width=height=face=0word=java 程序设计流程图s=0#width=height=z=0fb=0ic=0lm=-1face=0
在百度图片搜索
【java代码运行流程图 java编程运行】java代码运行流程图的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java编程运行、java代码运行流程图的信息别忘了在本站进行查找喔 。

    推荐阅读