数据类型和运算符

文章目录

  • 注释
    • 常用的javadoc标记
  • 标识符和关键字
    • 分隔符
    • Java 9的标识符规则
    • Java 关键字
  • 数据类型分类
  • 基本数据类型
    • 整型
    • 字符型
    • 浮点型
    • 布尔型
  • 基本类型的类型转换
    • 自动类型转换
    • 强制类型转换
    • 表达式类型的自动提升
  • 直接量
  • 运算符
    • 运算符优先级

注释

  • 永远不要过于相信自己的理解能力!
  • 可读性第一,效率第二!
  • 代码即文档!

单行注释 ://
多行注释 :/**/
文档注释:如果编写Java源码时添加了合适的文档注释,然后通过JDK提供的javadoc工具可以直接将源码里的文档注释提取成一份系统的API文档。由于文档注释是用于生成API文档的,而API文档主要用于说明类、方法、成员变量的功能。因此,javadoc工具只 处理文档源文件在类、接口、方法、成员变量、构造器和内部类之前的注释 ,忽略其他地方的文档注释。而且javadoc工具默认只处理 以public或protected修饰的类、接口、方法、成员变量、构造器和内部类之前的文档注释

文档注释以斜线后跟两个星号(/**)开始,以星号后紧跟一个斜线(*/)结束,中间部分全是文档注释,会被提到API文档中。
Java 9的API文档已经支持HTML 5规范,因此为了得到完全兼容HTML 5的API文档,必须保证文档注释中的内容完全兼容HTML规范。
下面编写一个Javadoc Test 类,这个类里包含了对类、方法、成员变量的文档注释。

//JavadocTest.java
package lee;
/**
* Description:
* 网站:Javadoc Test
* Copyright(C),2019-,Liu
* This program is protected by copyright laws.
* Program Name:
* Date:
* @author : * @version 1.0 */
public class JavadocTest { /** *简单测试成员变量 */ protected String name; /** *主方法,程序入口 */ public static void main(String [] args) { System.out.println("Hello World!"); } }

再编写一个Test类,这个类里包含了对类、构造器、成员变量的文档注释。

//Test.java
package yeeku;
/**
* Description:
* 网站:Javadoc Test
* Copyright(C),2019-,Liu
* This program is protected by copyright laws.
* Program Name:
* Date:
* @author : * @version 1.0 */
public class Test { /** * 简单测试成员变量 */ public int age; /** * Test 类的测试构造器 */ public Test() { } }

执行命令生成文档注释:javadoc -encoding UTF-8 -d apidoc -windowtitle 测试 -doctitle 学习 javadoc 工具的测试 API 文档 -header 我的类 *Test.java
生成的文档注释截图如下:数据类型和运算符_第1张图片

常用的javadoc标记

  • @author :指定java程序的作者
  • @version:指定源文件的版本
  • @deprecated:不推荐使用的方法
  • @param :方法的参数说明信息
  • @return:方法的返回值说明信息
  • @see:“参见”,用于指定交叉参考的内容
  • @exception:抛出异常的类型
  • @throws:抛出的异常,和@exception同义
         需要指出的是,这些标记都是有位置限制的。上面这些标记可以出现在类或者接口文档注释中的有@see、@deprecated、@author、@version等;可以出现在方法或构造器文档注释中的有@see、@deprecated、@param、@return、@throws、@exception等;可以出现在成员变量的文档注释中的有@see、@deprecated等。
    注意: javadoc工具默认不会提取@author和@version信息,如果需要提取该信息,需要使用javadoc工具时指定-author和-version选项。

标识符和关键字

分隔符

  • 分号;,语句的分隔
  • 花括号{},一个代码块
  • 方括号[],用于访问数组元素,方括号内指定希望访问的数组元素的索引
  • 圆括号(),定义方法时包含形参,调用方法时传入实参,表达式中某个部分括成一个整体保证优先运算,强制类型转换的运算符
  • 空格 ,分隔一条语句的不同部分,包含空格符(Space)、制表符(Tab)和回车(Enter)等
  • 圆点 .,类/对象和它的成员(包括成员变量、方法和内部类)之间的分隔符,表明调用某个类或某个实例的指定成员。

Java 9的标识符规则

Java 9规定:不允许使用单独的下划线(_)作为标识符。

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

Java 关键字

java一共包含50个关键字,都是小写的

abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while

其中,goto和const是保留字,也就是可能在未来版本中使用;还有三个特殊的直接量(literal):true、false、null;这三个标识符也不能使用。

数据类型分类

Java语言是强类型(strongly typed)语言,强类型包括两方面的含义:①所有的变量必须先声明、后使用;②指定类型的变量只能接受类型与之匹配的值。
Java语言支持的类型分为两类:基本类型(Primitive Type)和引用类型(Reference Type)

基本数据类型

Java的基本数据类型分为两大类:boolean类型和数值类型。数值类型又可分为整数类型和浮点类型,字符类型可以被单独对待。

数据类型和运算符_第2张图片

整型

通常说的整型,实际上指如下4中类型

  • byte,在内存中占8位,表示范围 -27~27-1
  • short,在内存中占16位,表示范围 -215~215-1
  • int,在内存中占32位,表示范围 -231~231-1
  • long,在内存中占64位,表示范围 -263~263-1

字符型

字符型值必须用单引号括起来,Java使用16位的Unicode字符集作为编码方式
有三种表示方式:

  • 直接通过单个字符来指定字符型值
  • 通过转义字符来表示特殊型值
  • 直接使用Unicode值来表示字符型值,格式是‘、uXXXX’,其中XXXX代表一个十六进制的整数

浮点型

Java的浮点型有两种:float和double(默认),遵循IEEE754 标准,采用二进制数据的科学计数法表示的浮点数,对于float型数值,第一位是符号位,接下来8位表示指数,再接下来23位表示尾数;对于double型数值,第一位是符号位,接下来11位表示指数,再接下来52位表示尾数.
正无穷大:POSTIVE_INFINITY
负无穷大:NEGATIVE_INFINITY
非数:NaN,NaN不与任何数值相等,甚至和NaN都不相等

布尔型

布尔型只能是true和false

基本类型的类型转换

自动类型转换

Java 所有的数值型变量可以相互转换,如果系统支持把某种基本类型的值直接赋给另一种基本类型的变量,则这种方式呗称为自动类型转换。当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换:否则就需要强制转换。
自动类型转换图:
数据类型和运算符_第3张图片

强制类型转换

如果希望把上图箭头右边的类型转换成左边的类型,则必须进行强制类型转换,强制类型转换的语法格式是:(targetType(value))

表达式类型的自动提升

当一个算术表达式中包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。Java定义了如下的自动提升规则。

  • 所有的byte类型、short类型和char类型将被提升到int类型
  • 整个算术表达式的数据类型自动提升到与表达式中最高等级操作数同样的类型。操作数的等级排列如上图所示,位于箭头右边类型的等级高于箭头左边类型的等级。

直接量

直接量是指在程序中通过源代码给出的值,例如int a=5;这行代码中为a所分配的初始值5就是一个直接量
Java支持如下8种类型的直接量

  • int类型的直接量
  • long类型的直接量
  • float类型的直接量
  • double类型的直接量
  • boolean类型的直接量
  • char类型的直接量
  • String类型的直接量
  • null类型的直接量,这个类型只有一个值,即null

运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。Java语言使用运算符将一个或多个操作数连缀成执行性语句,可以实现特定功能。
可以分为以下几种:

  • 算术运算符

+,-,*,/,%,++,–

  • 赋值运算符

=

  • 比较运算符

,>,>=,<,<=,==,!=

  • 逻辑运算符,用于操作两个布尔型的变量或常量

&&(与),&(不短路与,作用与&& 相同),||(或),|(不短路或),!(非),^(异或)

  • 位运算符

&(与),|(或),~(非),^(按位异或),<<(左移),>>(右移),>>>(无符号右移运算符)

  • 类型相关运算符
  • 三目运算符

(expression)?if-true-statement:if -false-statement;

运算符优先级

运算符说明 Java运算符
分隔符 . [] () {} , ;
单目运算符 ++ – ~ !
强制类型转换运算符 (type)
乘法/除法/求余 * / %
加法/减法 + -
移位运算符 << >> >>>
关系运算符 < <= >= > instanceof
等价运算符 == !=
按位与 &
按位异或 ^
按位或 |
条件与 &&
条件或 ||
三目运算符 ?:
赋值 = += -= *= /= &= |= ^= %= <<= >>= >>>=

你可能感兴趣的:(Java学习总结)