zoukankan      html  css  js  c++  java
  • 《Java编程思想》读书笔记-第一个Java程序

    积少成多,欢迎大家关注我的微信公众号,共同探讨Java相关技术

    今天的重点是:编写源代码、编译、运行、查看成果。除此之外,还需要搭建起与前面学习的知识的联系。

    写本文时依据的系统环境是Windows10哦!请悉知!

    步步为营

    • 源代码
    • 关于代码的解释
    • 编译
    • 运行
    • 总结

    源代码

    今天我们编写自己的第一个Java程序。它主要的功能是向控制台输出一个”Hello World!”和一个随机数以及传入的参数args数组的长度。嗯,所有demo的开端,”Hello World!”。代码如下:

    import java.util.Random;
    
    public class MyFirstDemo {
        public static void main(String [] args) {
            System.out.println("Hello World!");
            System.out.println(new Random().nextInt());
            System.out.println(args.length);
        }
    }
    

    注意:请不要用Windows自带的记事本编辑,由于Windows的原因会导致程序无法运行

    建议下载名叫notepad++的编辑器。把上述代码键入后,保存,并把扩展名改为.java。在Windows中默认不会显示文件的扩展名,具体怎么设置显示扩展名,请参考:https://www.cnblogs.com/lurker-yaojiang/p/10376571.html

    注意:保存的文件名,一定要和类名一致。比如类名是MyFirstDemo,那么对应的文件名应该是MyFirstDemo.java,否则可是会报错的哟!

    关于代码的解释

    首先通过import引入了java.util包中的Random类,该类主要用于生成随机数。在Java中,默认java.lang包是自动导入的,因此包中的类我们可以直接使用。但是如果你要使用当前包以外的其他包中的类,比如你当前在com.baidu.service包中,想要用到com.baidu.dao包中的类,那你就要用import导入了。

    接下来用class关键字声明了一个名为MyFirstDemo(或者称作数据类型),并用public修饰符修饰,表示这个类在任何地方都可以被访问

    然后定义了一个名为main的方法,其被static修饰,返回类型为void,参数为一个String数组。我们前面讲到过static修饰的方法不依赖具体对象,可以直接通过类名调用。如果你希望你的程序能够独立运行,一个main方法是必须的,它作为整个程序的入口。且其名称只能为main,这是强制规定。

    这样就比较好理解了。在进入程序后,对象才会进行创建;所以作为程序入口的main方法,必然是不依赖于具体对象的,也就是说,用static进行修饰是必然的

    关于其字符串数组类型的参数,主要是用于接收从控制台输入的值的,稍后的演示中请关注第三个输出值的变化

    最后在方法体中输出了三个值,”Hello World!”,一个随机数,字符串数组参数args的长度。

    编译

    Java是编译型的语言,意味着Java源代码需要进行编译后才可以运行。通过编译器,Java源代码编译成JVM能够认识的字节码文件,这样JVM就能运行我们编写的代码了。这也是Java跨平台的原因,一切依靠JVM,所有的源码都要转成JVM能识别的字节码。所以在接下来你会看见,在我们运行编译之后,会生成一个.class文件。

    JVM(Java Virtual Machine),包含于JRE中的Java虚拟机,Java程序运行在这里

    闲话少说,我们开始动手吧!请进入你编写的源码文件所在的目录,按下shift键的同时,按下鼠标右键,选择在此处打开Shell窗口(也可能是打开PowerShell窗口)。如下:

    输入编译指令javac MyFirstDemo.java。有两个注意点,第一,用的指令是javac,意为java compile;第二,需要跟的是包含扩展名的文件名称,因为要指定要编译的具体文件。按下回车,开始编译,一般请开给你下,按下回车后不会抛出任何错误,如下:

    我们打开源文件所在目录,看看是否多了一个.class结尾的文件呢?没错,这就是字节码文件。

    可能出现的异常

    如果因为你的粗心,可能会造成编译过程出错,可能出现的错误如下:

    • 输入编译指令时,文件名称没有带扩展名,报的错误如下:

    • 文件名称和类名不等时,报的错误如下:

    运行

    编译完成后,我们离成功就剩最后一步了。接下来,我们继续在Shell(或PowerShell或CMD命令行)中按需键入指令。

    不带参数的运行

    键入指令java MyFirstDemo,结果如下:

    带参数的运行

    键入指令java MyFirstDemo -client,结果如下:

    注意看第三个输出的值哦!由于我们使用了一个参数,它变成1了哦

    需要注意的是,这个命令跟编译的命令也有不同点哦!可能刚开始会混淆,各位老铁一定要细心啊!这个指令,用的是java而不是javac,是运行的意思;另一方面,后面接的是类名,而不是带扩展名的文件名称哦!

    总结

    本文我们编写了一个能独立运行的简单的Java程序,也是我们的第一个Java程序。依靠最原始的方式,从编写源代码,然后编译,再运行!这一步你一定要亲手做,这样才能更深入的了解Java程序的运行。

    在实际的开发中,并不需要这么复杂!

    下一节,给大家介绍一款好用的开发集成工具。有了它,你的编程效率能够得到极大的提升。

  • 相关阅读:
    Delphi以及三方控件的源代码规模
    InitInheritedComponent的执行过程
    poj 3897 Maze Stretching 二分+A*搜索
    一些窗口API函数,比如SetForegroundWindow,SwitchToThisWindow
    终于懂了:WM_PAINT 与 WM_ERASEBKGND(三种情况:用户操作,UpdateWindow,InvalidateRect产生的效果并不相同),并且用Delphi代码验证 good
    窗口绘制有关的消息整理 WM_PAINT, WM_NCPAINT, WM_ERASEBKGND
    WM_PAINT与WM_ERASEBKGND(用户操作和API这两种情况产生消息的顺序有所不同)
    关于WM_ERASEBKGND和WM_PAINT的深刻理解
    offsetHeight在OnLoad中为0的现象
    TWinControl.WMNCPaint对非客户的绘制
  • 原文地址:https://www.cnblogs.com/lurker-yaojiang/p/10376588.html
Copyright © 2011-2022 走看看