在一切开始以前,咱们须要先搭建好咱们的 开发环境 (从前文得知 Java 程序的运行须要 JVM,编写 Java 代码须要 IDE),或者在您彻底准备好以前能够 暂时使用 在线版本的 Java 环境来运行前面一些内容涉及的简单代码:https://c.runoob.com/compile/10php
这三者的关系是一层层的嵌套关系:JDK > JRE > JVMhtml
JDK 包含了 Java 的编译器、调试器等一系列开发工具,因此做为开发人员咱们须要安装 JDK,而某一些只须要运行编译好的 Java 程序的服务器则能够只安装 JRE 便可 (极少数状况,一般仍是安装 JDK)。
Java 程序必须运行在 JVM 之上,因此咱们第一件事情就是安装 JDK。咱们选择最新的 JDK 14 进行安装:java
选择合适本身电脑平台的 JDK 进行下载安装便可:git
第一步程序员
在 Windows 安装以后须要额外 配置环境变量,首先【右键个人电脑】 → 选择【属性(R)】 → 打开【高级系统设置】:github
第二步shell
在【高级】标签下选择【环境变量】,并对环境变量【path】进行编辑操做:数据库
第三步编程
新建环境变量,而后把刚才安装 jdk 的安装路径复制进去,路径截止到
bin
目录:数组
第四步
快捷键【Win + R】输入【cmd】调出 dos 窗口,输入【java -version】进行验证:
第一步
打开苹果 dos 窗口,先确认本身使用的
shell
是zsh
仍是bash
,在命令行中输入echo $SHELL
:
- 若是输出
/bin/bash
则为bash
;- 若是输出结果为
/bin/zsh
则为zsh
。第二步
根据上面不一样的结果 修改
shell
配置文件,若为bash
,则打开~/.bash_profile
,若为zsh
则打开~/.zshrc
,在响应的文件末尾添加如下内容,并保存:
export JAVA_HOME=$(/usr/libexec/java_home)
第三步
在
~/
目录,命令行执行source
命令:一样若是是bash
,则执行source .bash_profile
,而若是是zsh
,则执行source .zshrc
,让刚才的修改生效。第四步
命令行执行
java -version
检查是否配置成功:
随着 Java 的发展,SUN 公司给 Java 分出了三个不一样版本:
毫无疑问,Java SE 是 Java 平台的核心,而 Java EE 是进一步学习 Web 应用所必须的。
Java 源代码本质上其实就是普通的文本文件,因此理论上来讲任何能够编辑文本文件的编辑器均可以做为咱们的 Java 代码编辑工具。好比:Windows 记事本、Mac OS X 下的文本编辑、Linux 下的 vi 等。
可是这些简单工具没有「语法的高亮提示」、「自动完成」等功能,这些功能的缺失会 大大下降代码的编写效率。
而后输入如下内容并保存:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
HelloWorld.java
文件名不容许出现空格,以及要保证和第一行 class
后跟着的字符串 HelloWorld
保持一致;将 Java 源程序编写并保存到文件以后,还须要进行编译才能运行。编译 Java 源程序使用的是 JDK 中的 javac
命令,例如编译上节的 HelloWorld.java,完整命令以下:
javac HelloWorld.java
该命令会让 Java 编译器读取 JavaWorld.java 文件的源代码,并把它编译成符合 Java 虚拟机规范的字节码文件 (.class
文件)。
想要运行字节码文件也须要使用 JDK 中的 java
命令,例如运行上面生成的 .class
文件,完整命令以下:
java HelloWorld
具体效果以下:
尽管可以使用文本编辑器来编写咱们的 Java 程序,但效率着实不敢恭维,因此咱们通常使用更加先进的 集成开发工具 (俗称 IDE,Integrated Development Environment)。
不只仅包含更加智能的代码编辑器、编译器、调试器,还有友好的用户界面以及各式各样帮助咱们提高效率的插件。
对于效率这方面,下面咱们就几个方面简单感觉一下。
不只仅是基础的关键字的提醒,IDEA 会基于当前的上下文 (也就是基于位于当前代码上下的代码进行分析),更加智能的进行过滤和提醒:
咱们老是会犯一些低级错误,好比一不留神打错一个字母,可能找了很久都找不到错误所在,IDEA 的纠错能力也许能够帮到你,看一个例子:
若是你写的代码过于复杂,或者有更好的方式来替代你写的代码,那么 IDEA 会给你一个提示,告诉你还能够有更好的方式。以下图:
好比你看我从头写一个 HelloWorld
程序:
这应该比一个一个字符敲快多了吧...(小声bb:文章末尾有教程哦)
来一个总结:
打开【IDEA】新建一个空白的 Java 项目:
右键在【scr】目录新建一个空白的【HelloIDEA】的 Java Class 文件:
而后接下来像我这样操做,来编写一个【HelloIDEA】的 Java 程序:
psvm
:是 public static void main
的缩写;sout
:是 System.out
的缩写;怕有些同窗迷惑,点击左边的绿三角会弹出以下的信息,点击第一个选项就可以运行啦:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
咱们来看看刚才咱们写的 Hello World
程序。
第一行:public class HelloWorld {
public
:称为 访问修饰符 (access modifier),用来控制程序的其余部分对这一段代码的访问级别 (这里暂时理解为公用的,以后会更加详细地介绍);class
:代表 Java 程序中的所有内容都包含在类中 (以后会花不少功夫来讲明类,这里能够仅仅把类理解为程序逻辑的一个容器,程序逻辑定义了应用软件的行为)。HelloWorld
:关键字 class
后面紧跟的是类名,它除了必须跟文件名保持一致外,还应该遵循 Java 类名的命名规范 —— 类名以大写字母开头。若是名字由多个单词组成,每一个单词的第一个字母须要大写。
类名命名规范:
- Bad:
hello
、Good123
、Note_Book
、_World
- Good:
Hello
、Tester
、NoteBook
在编程中,某个东西的名称就被称为 标识符,例如上述的类名 HelloWorld
。在 Java 中定义标识符存在如下几种规则:
标识符命名示范:
- Bad:
Lady Luck
(坏:标识符内不容许有空格)、x/y
(错误:标识符中不容许使用斜杠)、1stPrize
(错误:以数字开头)、abc
(坏:没有任何意义)、_name
(坏:不要以_
或$
开头)- Good:
userName
、StudentManager
、NoteBook
保留字就是像 class
这样有特殊含义的标识符,您只能将保留字用于其设定的专属用途 (如 class
除了定义类,您将不能用做其余任何目的)。
在 Java 中存在如下的保留字:(无需记忆,它们中的大部分都或多或少地出如今以后您的编码中.. IDEA 也会有智能的提示)
abstract class extends implements null strictfp true assert const false import package super try boolean continue final instanceof private switch void break default finally int protected synchronized volatile byte do float interface public this while case double for long return throw catch else goto native short throws char enum if new static transient
在类的第一个大括号和最后一个大括号之间描述了程序所作的一切:
public class ClassName { }
首先,每一个源代码文件必须有一个主类 (名字同文件名),在以后的文章中咱们会看到一个源代码文件可能会同时存在几个类的状况发生,暂时不考虑。
在上文程序的第三行:public static void main ( String[] args )
,展现了程序在何处开始运行,Java 虚拟机老是从指定类的 main
方法的代码开始执行,所以为了代码可以执行,在类的原文件中必须包含一个 main
方法。
对这一行稍微作一下解释:
public
:访问修饰符,用来描述该方法的访问权限级别,这里为全部人都能访问;static
:保留字,用来定义该方法是一个静态方法;void
:用来描述该方法没有任何的返回值;main
:方法名;(String[] args)
:描述了该方法所接收的参数;因此刚开始接触的程序结构大概看起来像是下面这样:
public class ClassName { public static void main(String[] args) { ...... } }
因为 Java 是大小写敏感 的,因此 main
这个单词不容许任何的修改。(Java 语言规范中规定 main 方法必须声明为 public)
大括号的使用风格曾经引起过许多无心义的争论,如下两种风格,哪种更好呢?:
public class ClassName { }public class ClassName { }没有答案,虽然对于 Java 编译器来讲空白符会被省略,这两种并没有差异,但做为开发者的咱们,选择 Java 惯用的风格 (第一种) 就行了...
考虑下面这一段代码,实际上就是上面的 HelloWorld
程序 main
方法中的语句:
{ System.out.println("Hello World!"); }
一对大括号表示 方法体 的开始与结束,在这个方法中只包含一条语句。跟大多数程序设计语言同样,能够把 Java 中的语句当作是语言中的一个句子。
在 Java 中,每一个句子必须用分号结束 (英文分号)。
特别须要说明,回车并非语句的结束标志,所以,若是须要能够将一条语句写在多行上。
在这里,咱们使用了 System.out
这个对象并调用了它的 println
方法 (点号 .
用于调用方法)。它的做用是在屏幕上输出指定的信息。例如,咱们想要输出 我没有三颗心脏
则能够这样调用:
System.out.println("我没有三颗心脏");
Java 使用方法的通用语法是:
object.method(parameters)
这一条语句的做用是在屏幕上输出 Hello World!
,这一部分由字符组成的序列 (其中不该该包含引号) 被称为 字符串。它能够包含任何有效字符,包括空格和标点符号。
方法 是根据语句构建的。程序一般包含许多方法。 咱们的示例程序仅包含一种方法 (main 方法)。固然咱们还调用了系统帮咱们写好的 System.out.println()
方法。
咱们能够试着仿照 main
方法来写一个本身的方法,假设咱们想要输出一段心理学三大巨头之一阿德勒的一段话:
public static void printAdlerOneQuote() { System.out.println( "太在乎别人的视线和评价,才会不断寻求别人的承认。" + "对承认的追求,才扼杀了自由。" + "因为不想被任何人讨厌,才选择了不自由的生活方式。" + "换言之,自由就是再也不寻求承认。" ); }
有几点须要说明:
abc
彷佛就有点儿不知所云了;正常的方法调用须要像上面提到的那样:object.method(parameters)
,但因为身处同一个类中,this.printAdlerOneQuote();
就能够简写成:printAdlerOneQuote();
。
完整的程序代码以下:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); printAdlerOneQuote(); } public static void printAdlerOneQuote() { System.out.println( "太在乎别人的视线和评价,才会不断寻求别人的承认。" + "对承认的追求,才扼杀了自由。" + "因为不想被任何人讨厌,才选择了不自由的生活方式。" + "换言之,自由就是再也不寻求承认。" ); } }
参考答案:(上面的完整代码演示)
在源文件中,字符串文字必须仅在一行上。如下内容不合法,将没法编译:
System.out.println("Hello " "World!");
您编写的代码不符合 Java 的语法规定,就会发生 语法错误。
在 Java 编译器将源代码文件编译成 .class
文件以前,会默认帮你作许多工做,检查语法就是其中一项。
例如,咱们在桌面上试着建立一个【HelloWorld.java】文件而后输入一段存在错误的代码 (您能够试着检查一下哪里出现了一处错误):
public Class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }
而后再当前目录执行 javac HelloWorld.java
尝试编译这个存在错误的 Java 源文件:
→ javac HelloWorld.java HelloWorld.java:1: 错误: 须要class, interface或enum public Class HelloWorld { ^ HelloWorld.java:3: 错误: 须要class, interface或enum public static void main(String[] args) { ^ HelloWorld.java:6: 错误: 须要class, interface或enum } ^ 3 个错误
Java 编译器提示咱们有三处错误,实际上咱们也确实粗心地把 class
错误的写成了 Class
。
编译器也未建立新的字节码文件 (.class
),由于在遇到错误时它将中止翻译。
仅仅由于程序经过编译而且成功运行并不意味着它是正确的。
例如,您的任务是建立一个在屏幕上输出 Hello Wrold!
,可是您却错误地写成了 Hello Bug!
,运行时没有按照预期执行,则就称该程序存在 Bug!
Bug 一词的原意是 “臭虫” 或 “虫子”。
第一个有记载的 Bug 是美国海军编程员、编译器的发明者格蕾斯·哈珀 (GraceHopper) 发现的。
1945
年 9
月 9
日,下午三点。哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。这还不是一个真正的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战尚未结束。哈珀的小组日以继夜地工做。机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,全部窗户都敞开散热。
忽然,马克二型死机了。技术人员试了不少办法,最后定位到第 70
号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她当心地用摄子将蛾子夹出来,用透明胶布帖到「事件记录本」中,并注明「第一个发现虫子的实例」。
今后之后,人们将计算机错误称为 Bug,与之相对应,人们将发现 Bug 并加以纠正的过程叫作 “Debug”,意即「捉虫子」或「杀虫子」。
- 以上内容引用自:http://www.cxyym.com/2014/11/...
来几个清奇的段子吧。
B 站自取:https://www.bilibili.com/video/BV1oJ411S7o4?from=search&seid=7940414495637079568
引用自知乎
@第七地区
的答案:
https://www.zhihu.com/questio...
引用自知乎
@哒柏
的答案:
https://www.zhihu.com/questio...
修改程序中的 Bug,要通过三个步骤:
提及来比较简单,在地球人 (程序员等同于外星人) 看起来,过程是这样的:
可是,对于程序员来讲,找一个 Bug 每每是这样的:
找到以后呢,解决这个 Bug 又是一个难题:
换个柱子什么的比较简单,还有更崩溃的!
- 以上内容引用自:http://www.accessoft.com/blog...
注释 是写程序的人留下的阅读笔记。
一般注释以两个字符 //
开头。Java 编译器将忽略那些字符以及在该行以后的全部字符。例如:
public class HelloWorld { // 程序入口 public static void main(String[] args) { // 输出 Hello World! System.out.println("Hello World!"); } }
这一段代码跟咱们最开始的 HelloWrold
程序彻底相同。大多数的程序编辑器 (例如 IDEA) 都足够聪明,能够识别注释并将其显示为可有可无的一些颜色:
与大多数程序设计语言同样,Java 中的注释也不会出如今可执行程序中。所以,能够在源程序中根据须要添加任意多的注释,而没必要担忧可执行代码会膨胀。
/** * 文档注释 * 能够注释多条内容 */ public static void main(String[] args) { // 这是单行注释 System.out.println("演示三种注释方式"); /* 这是多行注释 */ }
//
标识,只能注释一行内容;/*
和 */
之间,能注释多行内容,为了提升可阅读性,通常首行和尾行不写注释信息;/**
(两个 *
) 和 */
之间,也能注释多行内容,通常用在类、方法和变量上面,用来描述其做用 (这是 Java 的一种规范,以后会更多的见识到);注释的目的是: 尽可能帮助读者了解得和做者同样多。 —— 《编写可读代码的艺术》
如下节选自《阿里巴巴 Java 开发手册》对于注释的几点要求:
/**内容*/
格式,不得使用 //
方式 (上面的演示程序中就不符合规范,须要注意);//
注释。方法内部的多行注释,使用 /* */
并注意与代码对齐;【参考】 对于注释的要求:
对于以上的一些建议,我相信在您以后的编程之路上会愈加地体会深入。
参考答案:(上面有完整代码演示)
参考答案:(上面有完整代码演示)
参考答案:(上面有完整代码演示)
推荐理由: 这本书在知识体系完整充实的同时,又比《Thinking in Java》暴风式的知识洗礼来得轻松,新人入门书籍强烈推荐!
推荐理由: 编写可阅读的代码是程序员从始至终须要提高的能力,这本书完整呈体系的结构,和朴实充实的实例,让读者经过阅读就能在实践中真实地运用起来,推荐!
- 本文已收录至个人 Github 程序员成长系列 【More Than Java】,学习,不止 Code,欢迎 star:https://github.com/wmyskxz/MoreThanJava
- 我的公众号 :wmyskxz,我的独立域名博客:wmyskxz.com,坚持原创输出,下方扫码关注,2020,与您共同成长!
很是感谢各位人才能 看到这里,若是以为本篇文章写得不错,以为 「我没有三颗心脏」有点东西 的话,求点赞,求关注,求分享,求留言!
创做不易,各位的支持和承认,就是我创做的最大动力,咱们下篇文章见!