文章目录

  • 3.1 注释
    • 3.1.1 注释分类
    • 3.1.2 javadoc
    • 3.1.3 包注释
  • 3.2 标识符和关键字
    • 3.2.1 分隔符。
    • 3.2.2 Java标识符规则
    • 3.2.3 Java关键字
  • 3.3 数据类型分类
  • 3.4 基本数据类型
    • 3.4.1 整数类型
    • 3.4.2 字符
    • 3.4.3 浮点型
    • 3.4.3 数值中使用下划线分隔
    • 3.4.5 布尔值
  • 3.5 基本类型转化
    • 3.5.3 表达式类型的自动提升
  • 3.6 直接量
    • 3.6.1 直接量
    • 3.6.2 直接量赋值
  • 3.7 运算符
    • 3.7.1 算术运算符
    • 3.7.2 赋值运算符
    • 3.7.3 位运算法
    • 3.7.4 扩展后的赋值运算法
    • 3.7.5 比较运算符
    • 3.7.6 逻辑运算符
    • 3.7.7 三目运算符
    • 3.7.8 运算符优先级

3.1 注释

3.1.1 注释分类

  1. 单行注释://
  2. 多行注释:/* */
  3. 文档注释:/** */
  4. 包注释:
    如果编写Java源代码时添加了合适的文档注释,通过JDK提供的javadoc工具就可以直接将源代码里的文档注释提取成一份系统的API文档。
    PS:API文档:开发一个大型软件时,需要定义成千上万的类,而且需要很多人参与开发,API文档会详细的说明每个类、每个方法的功能及用法。

3.1.2 javadoc

  1. javadoc只处理文档源文件在类、接口、方法、成员变量、构造器和内部类之前的注释,忽略其他地方的文档注释。
  2. javadoc默认只处理以public或protected修饰的类、接口、方法、成员变量、构造器和内部类之前的文档注释。
  3. javadoc命令的基本用法如下:
    javadoc 选项 Java源文件|包
  4. javadoc常用选项:
    -d :指定一个路径,用于将生成的API文档放到指定目录下。
    -windowtitle :指定一个字符串,用于设置API文档的浏览器窗口标题。
    -doctitle :指定一个HTML格式的文本,用于指定概述页面的标题。
    -header:指定一个HTML格式的文档,包含每个页面的页眉
    例如命令框运行:
    javadoc -d apidoc -windowtitle 测试 --doctitle 学习javadoc工具测试API文档 -header 我的类 *Test.java
  5. 如果希望javadoc工具生成更详细的文档信息,例如方法参数、方法返回值等、则可以利用javadoc标记,常见的标记如下。
    @author:指定java程序的作者
    @version:指定源文件的版本
    @deprecated:不推荐使用的方法
    @param:方法的参数说明信息。
    @return:方法的返回值说明信息
    @see:“参见”,用于指定交叉参考的内容
    @exception:抛出异常的类型
    @throws:抛出的异常,与exception同意。
    在使用javadoc工具时,在选项中加上-version,-author等。

3.1.3 包注释

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

3.2 标识符和关键字

3.2.1 分隔符。

分号:“;”、花括号:“{}”、方括号:“[]”、圆括号:“()”、空格、圆点:“.”。

3.2.2 Java标识符规则

  1. 区分大小写:
  2. 下划线必须与其他字符组合。
  3. 可以由字母、数字、下划线、美元符($)组成,数字不能开头。
  4. 不能使用(但可以包含)关键字和保留字
  5. 不能有空格
  6. 除了$外不能包含其他特殊字符。

3.2.3 Java关键字

3.3 数据类型分类

  1. Java是强类型语言:强类型语言的含义:(1)所有变量必须先声明再使用(2)指定类型的变量只能接受类型与之匹配的值。
  2. 强类型语言的优点:编译时可以更严格的语法检查,从而减少编程错误。
  3. 变量声明:type varName[=初始值]。
  4. 定义变量时可以指定初始值也可以不指定初始值。
  5. Java语言类型:基本数据类型和引用数据类型。
    空类型(null):是null类型变量唯一的值,可以转换为引用类型的任何类型(不能转化为基本类型)

3.4 基本数据类型

3.4.1 整数类型

  1. 一个字节=8位,一个N位的整数类型表示的范围为:
  2. 如果将一个较小的整数值赋给一个byte或short变量,系统会自动将这个整数值当成byte或short类型来处理。
  3. 如果一个巨大的整数值,Java不会自动把这个整数值当成long来处理,需要在整数值后面加上l或者L作为后缀,
  4. Java中整数数值有4中表示方式:十进制、二进制(ob)、八进制(O)、十六进制(OX)。
    PS:所有数字在计算机底层都是以二进制形式存在的;计算机以补码形式保存整数,补码的计算规则:
    原码:十进制转化为二进制;反码:原码按位取反。
    正数的补码与原码完全相同;负数的补码=反码+1;

3.4.2 字符

字符型通常用于表示单个字符,用“’”括起来。

3.4.3 浮点型

  1. float型:单精度浮点数,32位,1位是符号位,8位表示指数,23位表示尾数。
    double型:双精度浮点数,64位,1位是符号位,11位表示指数,52位表示尾数。
  2. 科学计数法:5.12*10²=5.12e2;只有浮点型数值才能使用科学计数法形式表示。
  3. Java还提供了3种特殊的浮点数值:正无穷大、负无穷大和非数。
    (1)所有正无穷大都是相等的,通过Double或者Float类的POSITIVE_INFINITY表示。
    (2)所有负无穷大都是相等的,通过Double或者Float类的NEGATIVE_INFINITY表示。
    (3)非数NaN不与任何数相等,甚至连NaN也不相等:通过Double或者Float的NaN表示。
    PS:只有浮点数除以0才能得到正无穷(负无穷),因为Java会默认将0(整数)当成0.0(浮点数)处理;整数除以0,则会抛出异常。

3.4.3 数值中使用下划线分隔

为防止数值位数特别多而导致眼睛“看花”,Java7引入了下划线,不管是整型数值还是浮点型数值,都可以自由地使用下划线分隔数值。

3.4.5 布尔值

布尔类型的值只能是true或false,不能是0或者1.

3.5 基本类型转化

  1. 主动类型转换和强制类型转化。
  2. 当一个表示范围小的数或变量直接赋给另一个表示范围大的变量时,系统可以自动转换,否则需要强制转换。
  3. 当把任何基本类型的值和字符串值进行拼接运算时,基本类型的值会自动转换成字符串类型。
    “+”不仅可以做加法运算,还可以进行拼接运算。
  4. 强制类型转换

    (1)一个浮点类型强转为整数时,Java会直接截断浮点数的小数部分。
    (2)把233强转为byte类型时,从变成-23,这是典型的溢出
    32位正数最高位为0,表示正数,233;截取后八位后,最高位为1,表示负数,-23.

3.5.3 表达式类型的自动提升

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

  1. 所有的byte类型、short类型和char类型,都被提升为int类型。
  2. 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数相同的类型,操作数等级如图3.10 所示。
    因此,表达式的类型将严格保持和表达式中最高等级操作数相同的类型。

3.6 直接量

3.6.1 直接量

  1. 直接量:在程序中通过源代码直接给出的值,如int a=5,5就是一个直接量。
  2. 直接量通常只有三种类型:基本类型、字符串类型、null类型,具体的类型为:int、long、float、double、Boolean、char、String、null。

3.6.2 直接量赋值

  1. 通常把直接量赋值给对应类型的变量。
  2. 直接量可以直接赋值给另一种类型的变量,这种赋值需要满足图3.10的自动类型转换,如果不符合,需要强制类型转换
  3. String类型的直接量只能赋给其他类型的变量;null类型的直接量可以直接赋给任何引用类型的变量,包括string类型;boolean类型的直接量只能赋给Boolean类型。
  4. 关于字符串直接量:当程序第一次使用某个字符串直接量时,Java会使用常量池来缓存该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,Java会直接使用常量池中的字符串直接量。
    (1)常量池:编译期被确定并被保存在已编译的“.class”文件中的一些数据。它包括类、方法、接口中的常量、字符串直接量。
    (2)string类型是一个典型的不可变量,String类型对象创建出来就不可能被改变,因此无需共享String对象会导致混乱。

3.7 运算符

Java运算法:算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、类型相关运算符。

3.7.1 算术运算符

7个:加:+;减:-;乘:*;除:/;求余:%;自加:++;自减:–

3.7.2 赋值运算符

赋值:=

3.7.3 位运算法

7个:按位与:&;按位或:|;按位非:~;按位异或:^;左移:<<;右移:>>;无符号右移:>>>。

  1. 对于低于int类型的操作数总是先自动类型转换成int类型后再移位。
  2. 对于int类型的整数移位a>>b,当b>32时,系统先用b对32求余,得到的结果才是真正移位的位数。
  3. 对于long类型的整数,移位a>>b,当b>64时,总是先用b对64求余,得到的结果才是真正移位的位数。

3.7.4 扩展后的赋值运算法

3.7.5 比较运算符

大于:>;大于等于:>=;小于:<;小于等于:<=;等于:=;不等于:!=;

3.7.6 逻辑运算符

与:&&;不短路与:&;或:||;不短路或:|;非:!;异或:^;
&与&&的区别:&总会计算前后两个操作数,而&&先计算左边的操作数,如果左边的操作数为false,则直接返回false,根本不会计算右边的值。

3.7.7 三目运算符

条件?A:B,如果条件符合执行A,否则执行B。

3.7.8 运算符优先级

疯狂java(三)-数据类型和运算符(疯狂java第4版)相关推荐

  1. 【Java】数据类型和运算符

    目录 一.八大基本数据类型 1.数值型(有符号) 2.字符型,默认值为"\u0000" 3.布尔型,默认值为false 二.引用数据类型: 三.计算机存储数据的基本单位 1.两种基 ...

  2. 对Java的数据类型和运算符的理解

    我知道千里之行始于足下,包含着对编程的兴趣,希望能够在这个平台上记录下我学习过程中的点点滴滴! Java的基本构造 标识符和关键字 标识符规则 标识符就是用于给程序中变量,类.方法命名的符号 1.标识 ...

  3. 面试题-java基本数据类型和运算符

    java八大基本数据类型 https://blog.csdn.net/tantion/article/details/82626006 注: https://blog.csdn.net/qq_2143 ...

  4. java基础数据类型和运算符

    类型转换 由于java是强类型语言,所以要进行有些运算的时候需要用到类型转换. 低 ---------------------------------------------------------- ...

  5. 《Java疯狂讲义》第3章(数据类型和运算符):博主李俊德的阅读笔记与知识拓展

    一.问题背景 博主在准备应聘的笔试.面试时,再次采用了多年以来的Java工具书<Java疯狂讲义>,并决定在每章详细复习后都要在博客中写下详细的阅读笔记. 二.阅读笔记与知识拓展--< ...

  6. java基础学习 --- 第二节 变量、数据类型和运算符

    java基础学习 - 第二节 变量.数据类型和运算符 一.变量 1.变量就是会发生改变的数据,程序运行时,这些数据以变量的形式被保存到计算机的内存中.如图 2.使用变量的步骤:     声明变量 - ...

  7. JAVA学习脚印2: 数据类型和运算符

    JAVA学习脚印2: 数据类型和运算符 本节将记录java中的数据类型和运算符. 1. java中的数据类型 java中变量的数据类型有两种:基本类型(primitive)和引用(reference) ...

  8. java异或运算结果数据类型_java中的数据类型和运算符的总结归类。

    首先学习java肯定先要了解java的发展史,以及java的特点,常见的dos命令,jdk的安装,如何开发java程序等等一下概念行的东西,这里面我都不一一说了. 今天这一章主要想总结一下java中的 ...

  9. double类型怎么取余_数据类型和运算符

    数据类型和运算符 1.进制 1.1文件存储单位 ​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . ​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...

  10. 操作数数据类型 char 对于 sum 运算符无效。_数据类型和运算符

    数据类型和运算符 1.进制 1.1文件存储单位 ​ 任何数据在计算机中都是以二进制的形式存在的,二进制早期由电信号开关演变而来 . ​ 一个电信号或者一个二进制位统称为Bit位,8个Bit位为一组组成 ...

最新文章

  1. dubbo provider异步_Dubbo支持什么协议?与SpringCould相比它为什么效率要高一些?
  2. Java虚拟机的功能
  3. 判断有向图g中顶点i到顶点j是否有路径_号称图的最短路径算法--Floyd算法
  4. 科大星云诗社动态20210427
  5. JavaScript / Electron / ipcMain,ipcRenderer
  6. 提升代码可读性的 10 个技巧
  7. jq阻止事件冒泡(点击子级不触发父级)的两种方法
  8. 基姆拉尔森计算公式(算任意日期是星期几)
  9. 时间序列-LSTM长期预测
  10. Python笔记_39_前端_HTML
  11. Spotlight搜索技巧
  12. MySQL:错误1153(08S01):得到的数据包大于“ max_allowed_pa​​cket”字节
  13. Centos中的storm集群环境搭建
  14. 动态壁纸给linux发行版添加活力背景
  15. 用python的turtle库画一个小猪佩奇
  16. 云计算系统测试之技术概念
  17. 《程序设计基础》 第五章 函数 6-10 空心的数字金字塔 (15 分)
  18. 一文读懂马云、马化腾、李彦宏、库克等互联网大佬们都在乌镇干了啥
  19. dos模拟器即时存档工具_dos模拟器安卓下载-DOS模拟器 安卓版v1.0.60-PC6安卓网
  20. hao123毒瘤太霸道了,必须这样除掉。

热门文章

  1. 简谈游戏场景灯光配置方案
  2. 2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 决赛 Writeup,5题
  3. 优秀员工内推机制设定方案
  4. 进入32位模式并导入c语言教程,《30天自制操作系统》读书笔记(3) 引入C语言
  5. 常用 sap 表 德语缩写 英汉注释
  6. 一篇男人必看的雄文(转载)
  7. 去除PDF文件水印方法
  8. 金融科技是助力粤港澳大湾区发展的新动能
  9. 打印沙漏------使用c和python实现
  10. 现代图论Ⅰ(图论概念)