RHZ'S BLOG | 个人分享

  • 首页
  • 笔记
  • 小日常
  • 音乐
  • 读书
  • 软件分享
YOLO
  1. 首页
  2. 笔记
  3. Code
  4. 正文

Java的数据类型和运算符-(A)

2022年8月9日 311点热度 1人点赞 0条评论

Java语言是一门强类型语言,包含两方面的含义:① 所有的变量必须先声明、后使用;② 指定类型的变量只能接受类型与之匹配的值。

1. 注释

一个人写的代码,需要被整个团队的其他人所理解;而且,随着硬件设备的飞速发展,程序的可读性取代执行效率变成了第一考虑的要素

对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上

1.1 单行注释和多行注释

单行注释: 使用双斜线 // 即可

多行注释: “ /* ”和“ */ ”将程序中需要注释的内容包含起来,“ /* ”表示注释开始,而“ */ ”表示注释结束。

public class CommentTest
        {
            /*
            这里面的内容全部是多行注释
            Java语言真的很有趣
            */
            public static void main(String[] args)
            {
                  //这是一行简单的注释
                  System.out.println("Hello World!");
                  //System.out.println("这行代码被注释了,将不会被编译、执行!");
            }

1.2 文档注释

文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线(*/)作为结尾,中间部分全部都是文档注释,会被提取到API文档中。

更强大的注释形式:文档注释。如果编写Java源代码时添加了合适的文档注释,然后通过JDK提供的javadoc工具可以直接将源代码里的文档注释提取成一份系统的API文档

javadoc工具只处理文档源文件在类、接口、方法、Field、构造器和内部类之前的注释,忽略其他地方的文档注释。而且javadoc工具默认只处理以public或protected修饰的类、接口、方法、Field、构造器和内部类之前的文档注释

对于Java语言而言,API文档通常详细说明了每个类、每个方法的功能及用法等适用于团队合作时分工

JAVA API文档
Java的数据类型和运算符-(A)插图
下载JDK 的API文档

API是Java提供的基本编程接口,当使用Java语言进行编程时,不可能把所有的Java类、所有方法全部记下来,那么如果我们遇到一个不确定的地方时,必须通过API文档来查看某个类、某个方法的功能和用法。因此,掌握查看API文档是学习Java的一个最基本的技能。从未查过API文档,是一种很糟糕的情形。可以通过查阅API文档的String类来掌握String类的用法。

编写一个JavadocTest类,这个类里包含了对类、方法、Field的文档注释。

//JavadocTest.java
package R;
        /**
         * Description:
         * <br/>网站: <a href="https://www.rhzhz.cn">RHZ的博客</a>
         * <br/>Copyright (C), 2018-2022, RHZ
         * <br/>This program is protected by copyright laws.
         * <br/>Program Name:
         * <br/>Date:
         * @author rhz xhzzz@qq.com
         * @version 1.0
         */
        public class JavadocTest
        {
        /**
         * 简单测试Field
         */
        protected String name;
        /**
         * 主方法,程序的入口
         */
        public static void main(String[] args)
        {
              System.out.println("Hello World!");
        }
    }

编写一个Test类,这个类里包含了对类、构造器、Field的文档注释

//Test.java,<br/>部分请忽略
package hz;
        /**
         * Description:
         * <br/>网站: <a href="https://www.rhzhz.cn">RHZ的博客</a>
         * <br/>Copyright (C), 2018-2022, RHZ
         * <br/>This program is protected by copyright laws.
         * <br/>Program Name:
         * <br/>Date:
         * @author rhz xhzzz@qq.com
         * @version 1.0
         */
        public class Test
        {
            /**
              * 简单测试Field
              */
            public int age;
            /**
              * Test类的测试构造器
              */
            public Test()
            {
            }
        }

javadoc命令的基本用法如下:

javadoc选项Java源文件/包

javadoc命令可对源文件、包生成API文档,在上面的语法格式中,Java源文件可以支持通配符,例如,使用*.java来代表当前路径下所有的Java源文件

javadoc的常用选项:

  • -d :该选项指定一个路径,用于将生成的API文档放到指定目录下
  • -windowtitle :该选项指定一个字符串,用于设置API文档的浏览器窗口标题
  • -doctitle :该选项指定一个HTML格式的文本,用于指定概述页面的标题
    • 只有对处于多个包下的源文件来生成API文档时,才有概述页面
  • -header :该选项指定一个HTML格式的文本,包含每个页面的页眉
  • 其它:javadoc -help来查看javadoc命令的所有选项

在命令行窗口执行如下命令来为刚刚编写的两个Java程序生成API文档:

javadoc -d apidoc -windowtitle 测试 -doctitle 学习javadoc工具的测试API文档 -header 我的类 *Test.java
//不要出现不必要的空格导致jdk编译出错

如果我们希望javadoc工具生成更详细的文档信息,例如为方法参数、方法返回值等生成详细的说明信息,则可利用javadoc标记。常用的javadoc标记如下。如果我们希望javadoc工具生成更详细的文档信息,例如为方法参数、方法返回值等生成详细的说明信息,则可利用javadoc标记

常用的javadoc标记如下

  • @author:指定Java程序的作者
  • @version:指定源文件的版本
  • @deprecated:不推荐使用的方法
  • @param:方法的参数说明信息
  • @return:方法的返回值说明信息
  • @see:“参见”,用于指定交叉参考的内容
  • @exception:抛出异常的类型
  • @throws:抛出的异常,和exception同义

这些标记的使用是有位置限制的

下面的JavadocTagTest程序包含了一个hello方法,该方法的文档注释使用了@param和@return等文档标记

//JavadocTagTest.java
package hz;
        /**
         * Description:
         * <br/>网站: <a href="https://www.rhzhz.cn">RHZ的博客</a>
         * <br/>Copyright (C), 2018-2022, RHZ
         * <br/>This program is protected by copyright laws.
         * <br/>Program Name:
         * <br/>Date:
         * @author rhz xhzzz@qq.com
         * @version 1.0
         */
        public class JavadocTagTest
        {
            /**
              * 一个得到打招呼字符串的方法
              * @param name 该参数指定向谁打招呼
              * @return 返回打招呼的字符串
              */
            public String hello(String name)
            {
                  return name + ",你好!";
            }
        }

为了能提取到文档中的@author和@version等标记信息,在使用javadoc工具时增加-author和-version两个选项,即按如下格式来运行javadoc命令:

javadoc -d apidoc -windowtitle 测试 -doctitle 学习 
javadoc 工具的测试 API 文档 -header 我的类
-version -author Test*.java
Java的数据类型和运算符-(A)插图1
提取

API文档中的包注释并不是直接放在Java源文件中的,而是必须另外指定,通常通过一个标准的HTML文件来提供包注释,这个文件被称为包描述文件。包描述文件的文件名通常是package.html,并与该包下所有的Java源文件放在一起,javadoc工具会自动寻找对应的包描述文件,并提取该包描述文件中的元素里的内容,作为该包的描述信息。

Java的数据类型和运算符-(A)插图2
java jdk 11+

2.标识符和关键字

Java语言也和其他编程语言一样,使用标识符作为变量、对象的名字,也提供了系列的关键字用以实现特别的功能。

2.1 分隔符

Java语言里的分号(;)、花括号({})、方括号([])、圆括号(())、空格、圆点(.)都具有特殊的分隔作用,因此被统称为分隔符。

1.分号

Java语言采用分号(;)结尾,也作为语句的分隔而并非是回车

允许一行书写多个语句,每个语句之间以分号隔开即可

一个语句也可以跨多行,只要在最后结束的地方使用分号结束即可

int age = 25;String name = "RHZ"
String hello = "你好!" + 
  "java" ;

Java语句可以跨越多行书写,但一个字符串、变量名不能跨越多行。

//字符串不能跨越多行
String a = "ddddddd
    sxxxx";
//变量名不能跨越多行
String na
me = "RHZ";

为了可读性,尽量避免以上情况

2.花括号

花括号的作用就是定义一个代码块,一个代码块指的就是“{”和 “}”所包含的一段代码,代码块在逻辑上是一个整体。对Java语言而言,类定义部分必须放在一个代码块里,方法体部分也必须放在一个代码块里。除此之外,条件语句中的条件执行体和循环语句中的循环体通常也放在代码块里。

花括号一般是成对出现的,有一个“{”则必然有一个“}”,反之亦然。

3.方括号

用于访问数组元素,方括号通常紧跟数组变量名,而方括号里指定希望访问的数组元素的索引

//为a的数组的第4个元素赋值
a[3] = 3;

4.圆括号

圆括号是一个功能非常丰富的分隔符:定义方法时必须使用圆括号来包含所有的形参声明,调用方法时也必须使用圆括号来传入实参值;不仅如此,圆括号还可以将表达式中某个部分括成一个整体,保证这个部分优先计算;除此之外,圆括号还可以作为强制类型转换的运算符。

5.空格

Java语言使用空格分隔一条语句的不同部分,空格几乎可以出现在Java程序的任何地方,但不要使用空格把一个变量名隔开成两个,这将导致程序出错

Java语言中的空格包含空格符(Space)、制表符(Tab)和回车(Enter)等

6.圆点

圆点(.)通常用作类/对象和它的成员(包括成员变量、方法和内部类)之间的分隔符,表明调用某个类或某个实例的指定成员。


2.2 标识符规则

标识符就是用于给程序中变量、类、方法命名的符号。Java语言的标识符必须以字母、下画线(_)、美元符($)开头,后面可以跟任意数目的字母、数字、下画线(_)和美元符($)。此处的字母并不局限于26个英文字母,而且可以包含中文字符、日文字符等。

由于Java 11支持Unicode 10.0字符集,因此Java的标识符可以使用Unicode 10.0所能表示的多种语言的字符。Java语言是区分大小写的,因此abc和Abc是两个不同的标识符。

使用标识符时,需要注意如下规则:

  • 标识符可以由字母、数字、下画线(_)和美元符($)组成,其中数字不能打头。
  • 标识符不能是Java关键字和保留字,但可以包含关键字和保留字。
  • 标识符不能包含空格。
  • 标识符只能包含美元符($),不能包含@、#等其他特殊字符。

2.3 Java关键字

一些具有特殊用途的单词被称为关键字(keyword),当定义标识符时,不要让标识符和关键字相同,否则将引起错误。例如,下面代码将无法通过编译

//boolean是关键字,无法被定义标识符
int boolean

所有关键字都是小写的,TRUE、FALSE和NULL都不是Java关键字。

Java的数据类型和运算符-(A)插图3
java的51个关键字

在上面的51个关键字中,enum是从Java 5新增的关键字,用于定义一个枚举。goto和const这两个关键字被称为保留字(reserved word),Java现在还未使用这两个关键字,但可能在未来的Java版本中使用;Java语言的标识符不能使用三个特殊的直接量(literal):true、false和null;

Java 10开始引入的var并不是关键字,相当于一个可变的类型名(后面会详述),因此var依然可作为标识符。


3.3 数据类型分类

声明变量的语法非常简单,只要指定变量的类型和变量名即可,

type varName[ = 初始值];

变量相当于一个有名称的容器,该容器用于装各种不同类型的数据

Java语言支持的类型分为两类:基本类型(Primitive Type)和引用类型(Reference Type)

基本类型包括boolean类型和数值类型。数值类型有整数类型和浮点类型。整数类型包括byte、short、int、long、char,浮点类型包括float和double

char字符型实际上也是一种整数类型,相当于无符号整数类型

引用类型包括类、接口和数组类型,还有一种特殊的null类型。所谓引用数据类型就是对一个对象的引用,对象包括实例和数组两种。实际上,引用类型变量就是一个指针,只是Java语言里不再使用指针这个说法。

空类型(null type)就是null值的类型,这种类型没有名称。因为null类型没有名称,所以不可能声明一个null类型的变量或者转换到null类型。空引用(null)是null类型变量唯一的值。空引用(null)可以转换为任何引用类型。

在实际开发中,程序员可以忽略null类型,假定null只是引用类型的一个特殊直接量。

空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个null值赋给基本数据类型的变量

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年8月10日

RHZ

即使单枪匹马,我亦勇敢无畏

点赞
< 上一篇
下一篇 >

文章评论

取消回复
归档
  • 2023年2月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年8月
  • 2021年7月

COPYRIGHT © 2022 RHZ的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2022008933号-1