Java之基本语法

一、语言概述

1. 整体语言概述

2. Java语言概述

2.1. 基础常识

软件:即一系列按照特定顺序组织的计算机数据和指令的集合,分为系统软件和应用软件。

  • 系统软件:windows , mac os , linux, unix, android, ios,....
  • 应用软件:word, ppt, 画图板,...

人机交互方式: 图形化界面 vs 命令行方式

应用程序 = 算法 + 数据结构

2.2. 计算机语言的发展迭代史

第一代:机器语言

第二代:汇编语言

第三代:高级语言

  • 面向过程:C,Pascal、Fortran
  • 面向对象:Java,JS,Python,Scala,...

Java语言版本迭代概述

1991年 Green项目,开发语言最初命名为Oak (橡树)

1994年,开发组意识到Oak 非常适合于互联网

1996年,发布JDK 1.0,约8.3万个网页应用Java技术来制作

1997年,发布JDK 1.1,JavaOne会议召开,创当时全球同类会议规模之最

1998年,发布JDK 1.2,同年发布企业平台J2EE

1999年,Java分成J2SE、J2EE和J2ME,JSP/Servlet技术诞生

2004年,发布里程碑式版本:JDK 1.5,为突出此版本的重要性,更名为JDK 5.0

2005年,J2SE -> JavaSE,J2EE -> JavaEE,J2ME -> JavaME

2009年,Oracle公司收购SUN,交易价格74亿美元

2011年,发布JDK 7.0

2014年,发布JDK 8.0,是继JDK 5.0以来变化最大的版本

2017年,发布JDK 9.0,最大限度实现模块化

2018年3月,发布JDK 10.0,版本号也称为18.3

2018年9月,发布JDK 11.0,版本号也称为18.9

2.3. Java语言应用的领域:
  • Java Web开发:后台开发

  • 大数据开发:数据挖掘

  • Android应用程序开发:客户端开发

2.4. Java语言的特点

① 面向对象性:

  • 两个要素:类、对象;
  • 三个特征:封装、继承、多态;

② 健壮性:

  • 去除了C语言中的指针
  • 自动的垃圾回收机制 -->仍然会出现内存溢出、内存泄漏

② 跨平台型:

write once,run anywhere(一次编译,到处运行),归功于JVM(Java编译器)

3. 开发环境搭建

3.1. JDK、JRE、JVM的关系

3.2. JDK的下载、安装

下载:官网,GitHub

安装:傻瓜式安装:JDK 、JRE

【注意】
安装软件的路径中不能包含中文、空格。

3.3. path环境变量的配置
3.3.1 为什么配置path环境变量?

path环境变量:windows操作系统执行命令时所要搜寻的路径

为什么要配置path:希望java的开发工具(javac.exejava.exe)在任何的文件路径下都可以执行成功。

3.3.2 如何配置?

4. 第一个Java程序

4.1. Hello World

4.1.1 编写:
创建一个java源文件:HelloWorld.java
class HelloChina{
   
	public static void main(String[] args){
   
		System.out.println("Hello,World!");
	}
}
4.1.2 编译:
javac HelloWorld.java
4.1.3 运行:
java HelloWord
4.2. 常见问题的解决

4.3. 总结第一个程序

① java程序编写-编译-运行的过程

  • 编写:我们将编写的 Java 代码保存在以 .java 结尾的源文件中
  • 编译:使用 javac.exe 命令编译我们的 Java 源文件。命令:javac 源文件名.java
  • 运行:使用 java.exe 命令解释运行我们的字节码文件。 命令:java 类名

② 在一个java源文件中可以声明多个 class 但是,只能最多有一个类声明为 public 的。而且要求声明为public的类的类名必须与源文件名相同。

③ 程序的入口是 main() 方法。格式是固定的。

④ 输出语句:

  • System.out.println():先输出数据,然后换行;
  • System.out.print():只输出数据;

⑤ 每一行执行语句都以 ; 结束。

⑥ 编译的过程:编译以后,会生成一个或多个字节码文件。字节码文件的文件名与java源文件中的类名相同。

5. 注释与API文档

5.1. 注释:Comment
  • 单行注释://注释内容

  • 多行注释:/* 注释内容 */

  • 文档注释:/** 注释内容 */

作用:

① 对所写的程序进行解释说明,增强可读性。方便自己,方便别人

② 调试所写的代码

特点:
① 单行注释和多行注释,注释了的内容不参与编译。换句话说,编译以后生成的 .class 结尾的字节码文件中不包含注释掉的信息
② 注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

③ 多行注释不可以嵌套使用

5.2. Java API 文档:
  • API: application programming interface。习惯上:将语言提供的类库,都称为API.
  • API文档:针对于提供的类库如何使用,给的一个说明书。类似于《新华字典》
5.3. 良好的编程风格

5.3.1 正确的注释和注释风格

  • 使用文档注释来注释整个类或整个方法
  • 如果注释方法中的某一个步骤,使用单行或多行注释。

5.3.2 正确的缩进和空白

  • 使用一次tab操作,实现缩进
  • 运算符两边习惯性各加一个空格。比如:2 + 4 * 5

5.3.3 块的风格

行尾风格(Java API源码选择的风格)

public class Test{
   
    public static void main (String args){
   
        System.out.print("Hello");
    }
}

次行风格

public class Test
{
   
    public static void main (String args)
    {
   
        System.out.print("Hello");
    }
}

5.3.4 命名风格:

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz(大驼峰式)
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz(小驼峰式)
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接: XXX_YYY_ZZZ

二、基本语法

1. 关键字与标识符

1.1. java关键字的使用

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

特点:关键字中所字母都为小写

关键字

1.2. 保留字:

现Java版本尚未使用,但以后版本可能会作为关键字使用。

具体哪些保留字:gotoconst

【注意】
命名标识符时要避免使用这些保留字

1.3. 标识符的使用

定义:凡是自己可以起名字的地方都叫标识符。

涉及到的结构:包名、类名、接口名、变量名、方法名、常量名

规则:(必须要遵守。否则,编译不通过)

  • 由26个英文字母大小写,0-9_$ 组成。
  • 数字不可以开头。
  • 不可以使用关键字和保留字,但能包含关键字和保留字。
  • Java中严格区分大小写,长度无限制。
  • 标识符不能包含空格。

规范:(可以不遵守,不影响编译和运行。但是要求大家遵守)

  • 包名:多单词组成时所有字母都小写:xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写: XxxYyyZzz(大驼峰式)
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写: xxxYyyZzz(小驼峰式)
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接: XXX_YYY_ZZZ

【注意】
在起名字时,为了提高阅读性,要尽量意义,“见名知意”。

1.介绍
软件中随处可见命名。我们给变量、函数、参数、类和包命名。我们给源代码及源代码所在目录命名。
这么多命名要做,不妨做好它。下文列出了取个好名字的几条简单规则。

2.名副其实,见名知意
变量名太随意,haha、list1、ok、theList 这些都没啥意义

3.避免误导
包含List、import、java等类名、关键字或特殊字;
字母o与数字0,字母l与数字1等
提防使用不同之处较小的名称。比如:XYZControllerForEfficientHandlingOfStrings与XYZControllerForEfficientStorageOfStrings

4.做有意义的区分
反面教材,变量名:a1、a2、a3
避免冗余,不要出现Variable、表字段中避免出现table、字符串避免出现nameString,直接name就行,知道是字符串类型
再比如:定义了两个类:Customer类和CustomerObject类,如何区分?
定义了三个方法:getActiveAccount()、getActiveAccounts()、getActiveAccountInfo(),如何区分?

5.使用读得出来的名称
不要使用自己拼凑出来的单词,比如:xsxm(学生姓名);genymdhms(生成日期,年、月、日、时、分、秒)
所谓的驼峰命名法,尽量使用完整的单词

6.使用可搜索的名称
一些常量,最好不直接使用数字,而指定一个变量名,这个变量名可以便于搜索到.
比如:找MAX_CLASSES_PER_STUDENT很容易,但想找数字7就麻烦了。

7.避免使用编码
7.1 匈牙利语标记法:即变量名表明该变量数据类型的小写字母开始。例如,szCmdLine的前缀sz表示“以零结束的字符串”。
7.2 成员前缀:避免使用前缀,但是Android中一个比较好的喜欢用m表示私有等,个人感觉比较好
7.3 接口和实现:作者不喜欢把接口使用I来开头,实现也希望只是在后面添加Imp

8.避免思维映射
比如传统上惯用单字母名称做循环计数器。所以就不要给一些非计数器的变量命名为:i、j、k等

9.类名
类名与对象名应该是名词与名词短语。如Customer、WikiPage、Account和AddressParser。避免使用Data或Info这样的类名。
不能使动词。比如:Manage、Process

10.方法名
方法名应当是动词或者动词短语。如postPayment、deletePage或save

11.别扮可爱
有的变量名叫haha、banana
别用eatMyShorts()表示abort()

12.每个概念对应一个词
项目中同时出现controllers与managers,为什么不统一使用其中一种?
对于那些会用到你代码的程序员,一以贯之的命名法简直就是天降福音。

13.别用双关语
有时可能使用add并不合适,比例insert、append。add表示完整的新添加的含义。     

14. 使用解决方案领域名称
看代码的都是程序员,所以尽量用那些计算机科学术语、算法名、模式名、数学术语,
依据问题所涉领域来命名不算是聪明的做法。

2.15 使用源自所涉问题领域的名称
如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称吧。
至少,负责维护代码的程序员就能去请教领域专家了。

2.16 添加有意义的语境
可以把相关的变量放到一个类中,使用这个类来表明语境。

2.17 不要添加没用的语境
名字中带有项目的缩写,这样完全没有必要。比如有一个名为“加油站豪华版”(Gas Station Deluxe)的项目,
在其中给每个类添加GSD前缀就不是什么好策略。

2.18 最后的话
取好名字最难的地方在于需要良好的描述技巧和共有文化背景。

2. 变量的使用

2.1. 变量的分类
2.1.1 按数据类型分类

详细说明:

① 整型:byte (1字节=8bit) \ short (2字节) \ int (4字节) \ long

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值