【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出
1 注释
注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序。注释虽然写在程序中,但是并不参与程序的执行,javac.exe程序在将.java文件编译成.class文件时将不再保留注释。
注释的三种格式:
- 单行注释:// 注释内容
- 多行注释:/* 注释内容 */
- 文档注释:/** 注释内容 */
IDEA中相关的快捷键:
- 对选中的代码行进行单行注释,默认为光标所在代码行进行单行注释:Ctrl + /
- 对选中的代码行进行多行注释,默认在光标处添加一个多行注释:Ctrl + Shift + /
上述快捷键按单数次是加注释,双数次是解开注释。
2 数据类型
Java是一种强类型语言,这就意味着必须为每一个变量声明一种类型。数据类型分为基本数据类型和引用数据类型,基本数据类型又分为4类8种。
2.1 基本数据类型
2.1.1 整型
类型 | 占用字节数 |
取值范围 |
byte | 1 | -128 ~ 127 |
short | 2 | -32768 ~ 32767 |
int | 4 | -2147483648 ~ 2147483648 |
long | 8 | -9223372036854775808 ~ 9223372036854775808 |
整型数默认为int型,所以在变量初始化的时候,长整型数值要有一个后缀L或者l表示该数值是长整型,eg:4000000L即是一个长整型数值。
在Java中不同进制整型数据的书写格式不同,二进制以0B或者0b开头,八进制以0开头,十六进制以0X或者0x开头,eg:97的二进制写法0B01100001、八进制写法0141、十六进制写法0x61
2.2.2 浮点类型
类型 | 占用字节数 | 精度 |
float | 4 | 6 ~ 7位有效数字 |
double | 8 | 15位有效数字 |
浮点型数据默认为double型,所以在变量初始化的时候,单精度数值要有一个后缀F或者f表示该数值是单精度的,eg:99.99F。
浮点类型用于表示有小数部分的数值,double的精度大概是float的两倍,所以称float为单精度数double为双精度数。实际上,只有很少的情况适合使用float类型,eg:需要一个单精度的库,或者存储的数据量很大的时候。
2.3.3 字符型
类型 | 占用字节数 | 取值范围 |
char | 2 | 0 ~ 65535 |
char型的数据使用时都要用单引号括起来,eg:'A'。除了常见的char型数据,还有一些特殊的转义字符,比如:\b表示退格、\t表示键盘的tab键、\n表示换行操作、\r表示键盘的enter键、\u加4个十六进制数表示一个Unicode编码值、\'表示一个单引号、\"表示一个双引号、\\表示反转义
2.4.4 布尔类型
类型 | 占用字节数 | 取值范围 |
boolean | 1 | true 、 false |
boolean型只有两个取值范围用于判断逻辑条件,那就是true和false。整型值和boolean值之间不能进行相互转换。在C或者其他一些程序语言中,非0的值表示true即真,0表示false即假,但是在Java中boolean只有true和false两种取值表示真假。
2.2 类型转换
2.2.1 自动类型转换
类型范围小的变量可以直接赋值给类型范围大的变量,char转换成int是将其对应的ASCII码赋给int型变量。实线箭头表示无损失转换,虚线箭头的转换可能伴随有精度损失,不管是什么箭头都具有传递性,即不管通过几个箭头能指向的地方都可以进行自动类型转换。
2.2.2 表达式中的自动类型转换
在表达式(用一个二元运算符连接两个值)中,小范围的变量会自动转换成较大范围的类型进行计算。
😏表达式的最终结果由表达式中的最高类型决定,比如说int + long = long、long + float = float……
😣byte、short、char都是直接转换成int进行运算,也就是说byte + byte = int、short + short = int……
2.2.3 强制类型转换(cast)
类型范围小的变量不可以直接赋值给类型范围大的变量,除非使用强制类型转换,否则会报错。强制类型转换的格式如下:
大数据类型 变量1 = (小数据类型) 变量2或者是数据;
🤐如果在强制转换的过程中,数值大小超过小数据类型的取值范围的话,结果将会被截断成两个完全不同的值,eg:(byte)1500 = -36,原理如下:
🥱浮点型强转为整型,直接丢掉小数部分,只保留整数部分,而并不是结果四舍五入。
3 变量与常量
变量就是一个用来存储数据的内存区域,且里面存储的数据可以发生改变,常量就是存储的数据不能发生改变的变量。
变量统一使用 lowerCamelCase 风格,也就是常说的驼峰命名中的小驼峰,eg:femaleNum。
常量名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长,eg:MAX_STOCK_COUNT。
3.1 变量的声明与赋值
声明并初始化一个变量
数据类型 变量名 = 初始值;
当然在还没想好一个变量的初始值大小的时候,可以先声明变量再对变量进行赋值操作。在Java中,变量的声明要尽可能的靠近变量的第一次使用或者赋值的地方。
数据类型 变量名;
变量名 = 变量值;
Java中允许一次声明多个变量,但是不提倡这么使用,逐一声明更能提高程序的可读性
数据类型 变量名,变量名,变量名……;
变量使用的注意事项:
- 变量必须先声明才能使用
- 变量声明后只能存储声明时的数据类型,其他不行
- 变量的有效范围是从定义的位置开始到“}”截止,在同一个范围内定义的变量命名不能相同。
- 定义变量的时候可以没有初始值,但是使用时变量必须是已经初始化过的,也就是说使用时的变量必须是有值的
3.2 常量
常量在main方法的外部定义,因此在同一个类的其他地方中也可以使用这个常量,如果这个常量还被声明为public的话,其他类的方法也能使用它。
常量的声明并初始化一般采用下列格式:
public static final 数据类型 常量名 = 初始值;
4 关键字、标识符
关键字是Java中自己保留的一些单词,作为特殊功能使用,比如数据类型的int、short、long、byte、double……一些特殊含义的单词class、const、if、for、else……保留字有很多,但是不需要刻意去记,随着学习的深入就可以自己总结一堆的关键字。
标识符就是有一些字符、符号组合起来的名称,用于给类、方法、变量等起名的规则。标识符规则如下:
- Java变量命名只能使用字母、数字、下划线(_)、美元符号($)组成。
- 变量名不能以数字开头,而且使用$开头虽然没错但是不推荐使用。
- 变量名不可以和java关键字一样,但是可以包含关键字。
- 区分大小写(大小写不同代表不同的标识符)
计算机中的数据存储形式:
数字变量在计算机中的存储形式:二进制
字符变量在计算机中存储的形式:ASCII码
图片、音视频在计算机中的存储:二进制文件
5 运算符
5.1 算术运算符
符号 | 作用 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除(在Java中两个整数相处的结果还是整数) |
% | 求余数(又叫取模运算) |
“+”符号不止可以作加法运算符,在一定条件下还可以作字符串的连接符号,当“+”两边都是数值的时候就是加起来得到一个值,“+”两边无法运算的时候就连接字符串。其运算如下:
5.2 自增自减运算符
自增自减运算符是对变量而言的一种运算符,其他像字面量和常量就不能使用自增自减运算符。自增符号就是++,自减符号就是-- ,并且符号放在变量左右的位置不同其运算结果也会不同。符号在变量左面表示先加减1再用,符号在变量右面表示先用再加减1
5.3 赋值运算符
赋值运算符默认包含了一步强制转换,并不会像普通的表达式一样运算结果由最大的类型决定。
算式 | 等价 |
a = b | a = b |
a += b | a = (a的数据类型)a + b |
a -= b | a = (a的数据类型)a - b |
a *= b | a = (a的数据类型)a * b |
a /= b | a = (a的数据类型)a / b |
a %= b | a = (a的数据类型)a % b |
5.4 条件运算符
条件运算符是对数据进行条件判断的符号,最终会返回一个比较的布尔值结果也就是true或者false
符号 | 说明 |
== | 判断是否左右相等 |
!= | 判断是否左右不相等 |
> | 判断是否左大于右 |
>= | 判断是否左大于等于右 |
< | 判断是否左小于右 |
<= | 判断是否左小于等于右 |
5.5 位运算符
5.5.1 逻辑运算符
符号 | 名称 | 说明 |
& | 逻辑与(并且) | 全真为真,有假则假 |
| | 逻辑或(或者) | 全假为假,有真则真 |
! | 逻辑非 | 取反操作,非真为假,非假为真 |
^ | 逻辑异或 | 相同为假,不同为真 |
除以上逻辑运算符外,还有两种短路逻辑运算符&&(短路与)和||(短路或),它们俩的运算结果和逻辑与、逻辑或的结果一样,区别在于:逻辑与、逻辑或无论左边是true还是false都要执行右边的表达式,短路与左边为false不执行右边,短路或左边是true不执行右边。
5.5.2 移位运算符
移位运算符在进行运算之前都要转换成二进制形式,移位操作是对二进制数的操作。
符号 | 说明 |
>> | 向右移相应位数,低位舍去,高位补符号位 |
<< | 向左移相应位数,高位舍去,低位补0 |
>>> | 向右移相应位数,低位舍去,高位补0 |
⚠ 移位运算符的右操作数需要完成模32运算(除非左操作数是long型,long型进行模64运算),eg:1 >> 35 <==> 1 >> 3
5.6 三元运算符
三元运算符是?:,其使用格式如下:
数据类型 变量名 = 条件表达式 ? 值1 : 值2;
条件表达式的结果为true时变量赋值为值1,反之变量的值为值2
5.7 运算符优先级
6 键入值、输出值
6.1 键入
无论是键入值还是输出值都需要使用到System类,但是由于System和String等类在java.lang包下,所以不需要导包,Java默认导入。
鼠标键入值需要三到四个步骤
导包:import java.util.Scanner;
创建扫描器对象:
Scaaner sc = new Scanner(System.in);
输出提醒语句:
System.out.println("提醒语句");
等待用户输入数据:
数据类型 变量名= sc.扫描方法;
扫描方法有很多种,具体使用哪一个由前面定义变量的数据类型决定,常用的有接收整型nextInt() 、接收键入的一行字符串nextLine()、接收键入字符串以空格为分界的一个单词next()、接收单精度数值nextFolat()、接收双精度数值nextDouble()……
6.2 格式化输出
从前面我们就可以知道,Java的输出要比输入简单得多,仅需一句System.out.println();就可以完成输出,但是如何进行格式化输出就有点困难了,加下来介绍一种格式化输出的方法:使用静态的String.format方法进行格式化,可以输出也可以用字符串变量接收不输出。由于Java中使用其对小数进行保留位数的操作最多,故下面主要介绍保留小数的用法(保留两位小数)当然在格式不错的情况下保留的位数是可以改变的
上一篇:
下一篇:
- 点赞
- 收藏
- 关注作者
评论(0)