程序不过是几行代码的集合-阿里云开发者社区

开发者社区> 沉默王二> 正文

程序不过是几行代码的集合

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/83028778 1. 程序不过是几行代码的集合。
+关注继续查看
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/83028778

1.

程序不过是几行代码的集合。就像下面这样:

public class Test {

	public static void main(String[] args) {
		System.out.println("hello world");
	}

}

对于初学编程的人来说,“hello world”的程序总是绕不开的;学习Java编程自然不能例外。说实在话,我在大学一年级(当时十九岁)学习这寥寥几行代码时可费了老大的劲——我几乎用了将近一个月的时间才消化掉“hello world”这段程序(这可一点不假)。记得当时的老师非常“贴心”地要求我们学生必须在记事本上敲下这段代码,并且要在控制台的命令行上运行这段小程序,使其在屏幕上打印出“hello world”的字样。

简直难得要命啊!我差一点就要被这几行代码摧毁掉信心换其他专业了。但幸好,我坚持了下来,就目前来看,IT行业是一个前程似锦的行业,Java依然处在编程语言排行榜的领先位置;而我,可以凭借Java高级开发工程师的身份在日益艰难的生存环境中混口饭吃。认真的回忆一下,对于“hello world”这段程序,我有好几个不解的地方:

  • 为什么class前面要有public?
  • 为什么main方法要有参数String[] args?它好像压根没起作用啊。
  • 为什么main方法必须是static void

看到这几个问题,你是不是也迫切地想知道为什么?新文化运动领袖胡适先生曾说过这样一句话“人同畜生的分别,就在于这个‘为什么’上”,这话虽然听起来不那么含蓄,但不失为一种积极的态度。在学习和生活当中,多问一问“为什么”,对我们的成长是大有帮助的。我相信这一点,你也愿意举双手赞同。

那么现在,我来回答一下以上三个问题(题答得不好,请给我零分):

1)class(类)前面的public并不是必须的;一个Java文件中有且只能有一个public类,并且该类名(Test)必须与文件名(Test.java)保持一致。

2)main方法的参数是一个String数组,约定俗成的写法就是String[] args;尽管当前“hello world”程序中并没有用到args参数,但Java编译器要求主方法必须要这么着(就好像李白他爹给他起名“李白”,所以李白只能叫“李白”);如果想在程序中使用args参数,可以在运行Java程序的时候在命令行中键入。为了演示args参数的使用方法,我们把以上代码稍作调整(“hello world”后要紧跟一个空格,和args参数的第一个值):

public class Test {

	public static void main(String[] args) {
		System.out.println("hello world " + args[0]);
	}

}

改造后的“hello world”程序,在命令行的编译、运行命令如下:

在这里插入图片描述

3)static表示main方法为静态方法;静态方法可通过"类名.方法名"的方式来调用。这句话怎么理解呢?我们来看以下代码:

public class Test {
	static int i = 0;

	public static void main(String[] args) {
		System.out.println("hello world");
		i++;

		if (i < 5) {
			Test.main(args);

		}
	}
}

通常,方法内部调用方法自身(Test.main(args)就是"类名.方法名"的形式)会造成死循环,但我们使用了一个静态变量i来控制循环的次数,最多5次。

4)void表示main方法没有返回结果;既然main方法是主方法,作为程序的入口,自然是不需要返回结果的,否则返回结果给谁看呢?就好像你就是司令员,你显然不需要再向军长、师长汇报工作。

2.

看完以上内容,你是不是觉得信息量有点大?对于Java的初学者来说,我想大概会吧,毕竟我当初可花了一个月的时间才消化掉。如果你说你只花了5分钟就搞定了,我就真该怀疑自己是不是块干“程序猿”的料了(“老天爷啊,不公平啊,为什么我和别人的智力差距这么大呢?”)。

假如你是Java初学者,我不建议你使用记事本一个字母一个字母敲完这段程序并在命令行中运行。以前老师教我们那套背方法统统可以不要,明明有Eclipse这种为程序员减少复杂性的集成开发工具,为什么不用呢?

脑海中时常有“程序不过是几行代码的集合”这句话非常重要,有了这个信念,无论再庞大的项目都不需要怕了。因为不管这个项目的代码成千行,还是成万行,最终都可以拆分为几行代码,难道不是吗?

3.

在之前的很长一段时间,我都不确定是不是要继续写IT技术方面的文章了。因为看着那些大牛们都在知识变现,而我依然籍籍无名、默默无闻,内心十分的沮丧。后来,我把这种困惑告诉了安晓辉前辈,他给了我一个继续坚持下去的理由——当初写技术博客为了什么?不就是为了对自己总结和对他人有所帮助吗?

这就是我写作的初心啊!我怎么能怀着一种“功利”的心态去写文章呢?佛系写作也能满足我分享的欲望、写作的爱好啊!所以,我在23点22分的时候又打开了电脑,写下这篇文章…

在这里插入图片描述

PS:我几乎花了一天的时间来写一个Java程序,用来生成上面这张带有二维码、精美图片、正能量文字的海报。如果大家对这个小程序感兴趣的话,我就把源码贴到GitHub上。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10089 0
Fundebug前端JavaScript插件更新至1.7.1,拆分录屏代码,还原部分Script error.
摘要: BUG监控插件压缩至18K。 1.7.0拆分了录屏代码,BUG监控插件压缩至18K,另外我们还原了部分Script error,帮助用户更方便地Debug。请大家及时更新哈~ 拆分录屏代码 从1.7.0版本开始,我们拆分了录屏代码。
1349 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8478 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10885 0
汇编(三)段地址、偏移地址、内存单元、寄存器、CS、IP、代码段、debug、实验题
段地址、偏移地址、内存单元、寄存器、CS、IP、代码段、debug、实验题、汇编、汇编编程、win10怎么使用debug
4261 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13892 0
代码没有任何改动,为什么程序执行会有Bug?
工作中经常遇到开发不同的版本,如版本5.1、版本5.2,5.2版本是在5.1版本上的升级,会修改已有几个模块的功能或者新增功能。但对于其中一个模块M,没有做任何修改,奇怪的是,为什么5.2版本的模块M会有Bug?
430 0
使用Hudson和FindBugs进行持续集成和代码检查
最近在IBM developerWorks发表的一篇文章中谈到了如何使用开源工具将构建过程中的持续集成(Continuous Integration,CI)和代码检查这两项任务自动化。
809 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载