注释
在Java里注释有三种:单行注释、多行注释、文档注释
单行注释: // 注释内容
注意:Java里关于单行注释有一个快捷键:ctrl + L
多行注释: /* 注释内容 */
文档注释: /** 注释内容 */
关键字
java中的关键字就是被赋予特殊含义的字
# 48个关键字
abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while
# 2个保留字(现在没用以后可能用到作为关键字)
goto、const
# 3个特殊直接量
true、false、null
标识符
标识符,我们自己定义的方法名或者变量名等等都叫标识符。
标识符的命名规则:
- 不可以数字开头
- 由字母、数字、下划线和$组成
- 不可以是关键字、保留字,但可以包含关键字与保留字
- 不可以包含空格
标识符的命名规范:
-
对于变量名、方法名等【小驼峰命名法】
- 如果是单个单词,全部小写
- 如果是多个单词,第一个单词全部小写,从第二个开始,每个单词的首字母大写
-
对于类名、接口名等【大驼峰命名法】
- 如果是单个单词,首字母大写
- 如果是多个单词,每个单词的首字母大写
-
对于包名
- 所有单词全部小写
-
对于常量名
- 所有单词全部大写,多个单词之间用下划线连接
变量
顾名思义,变量就是可以发生改变的量
# 格式:数据类型 变量名 = 变量值;
数据类型
在Java中,数据类型分为两大类:基本数据类型、引用数据类型。
基本数据类型有4类8种:
- 整型:byte、short、int、long
- 浮点型:float、double
- 布尔型:boolean
- 字符型:char
引用数据类型【列举常见的三种】:
- 类
- String
- 其他类
- 自定义类
- 数组
- 接口
常用变量示例:
// 整型变量【①:整型默认是int;②:声明long类型的数据时,需要在末尾加L或者l,以此表示这是long类型的数据】
byte b = 7;
short s = 7;
int i = 7;
long l = 7L;
// 浮点型【①:浮点型默认是double;②:声明float类型时,需要在末尾加上F或者f,以此表示这是float类型的数据】
float f = 5.20F;
double d = 5.20;
// 布尔型【布尔型的值只有两种:true 和 false】
boolean b = true;
boolean b = false;
// 字符型【字符型由一对单引号引起来,且里面有且只能有一个字符】
char c = 'a';
char c = '国';
// 字符串类型String【由一对双引号引起来,这是引用类型数据】
String s = "hello";
类型转换
类型转换分为两类:自动类型提升、强制类型转换
- 自动类型提升:小范围提升成大范围,低精度提升成高精度
例如: byte b = 7;int i = b;【这里的b赋值给i的过程发生了自动类型提升】
-
强制类型转换 -> 格式:目标类型 变量名 = (目标类型)变量值
// 注意:强制数据类型转换可能会由精度损失 int i = 1234; byte b = (byte)i;
输出与交互输入
输出
System.out.println(); // 换行输出
System.out.print(); // 不换行输出
示例:
public class exer {
public static void main(String[] args) {
int i = 7;
System.out.println(i);
System.out.print("=========");
System.out.println(7);
}
}
结果如下:
7
=========7
输入
import java.util.Scanner;//导入Scanner这个类
public class exer {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//固定写法
System.out.print("请输入一个整数:");
int i = scanner.nextInt();
System.out.println(i);
}
}
结果如下:
请输入一个整数:7
7
关于输入内容的类型:
byte b = scanner.nextByte(); // 接收byte类型的数据
short s = scanner.nextShort(); // 接收short类型的数据
int i = scanner.nextInt(); // 接收int类型的数据
long l = scanner.nextLong(); // 接收long类型的数据
float f = scanner.nextFloat(); // 接收float类型的数据
double d = scanner.nextDouble(); // 接收double类型的数据
boolean b = scanner.nextBoolean(); // 接收boolean类型的数据
String s = scanner.next() // 接收String类型的数据
输入内容的判断
与前面输入内容类型与之相对应,可以判断输入的是否是我们需要的而类型:scanner.hasNextXxx();
其余的判断可以仿照下面这样写:
import java.util.Scanner;
public class exer1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
if (scanner.hasNextInt()){
System.out.println(scanner.nextInt());
}else {
System.out.println("不是整数");
}
}
}
运算符
运算符分为:算术运算符、赋值运算符、逻辑运算符、位运算符、比较运算符、条件运算符。
算术运算符
运算符 | 解释与示例 | 结果 |
---|---|---|
+【数值运算】 | System.out.println(7+3); | 10 |
- | System.out.println(7-3); | 4 |
* | System.out.println(7*3); | 21 |
/ | System.out.println(7/3);【整除运算】 | 2 |
% | System.out.println(7%3);【取余运算】 | 1 |
++ | int i = 1; System.out.println(i++);【先运算,再自增1】 System.out.println(++i);【先自增1,再运算】 |
1 3 |
-- | int i = 3; System.out.println(i--); System.out.println(--i); |
3 1 |
+【字符串运算】 | System.out.println("hello" + 7);【拼接运算,只要有字符串参与运算,结果一定是字符串】 | hello7 |
赋值运算符
-
符号:=
- 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
- 支持
连续赋值
。
-
扩展赋值运算符【这类赋值运算符有强制类型转换的效果】: +=、 -=、*=、 /=、%=
赋值运算符 符号解释 +=
将符号 左边的值
和右边的值
进行相加
操作,最后将结果赋值给左边的变量
-=
将符号 左边的值
和右边的值
进行相减
操作,最后将结果赋值给左边的变量
*=
将符号 左边的值
和右边的值
进行相乘
操作,最后将结果赋值给左边的变量
/=
将符号 左边的值
和右边的值
进行相除
操作,最后将结果赋值给左边的变量
%=
将符号 左边的值
和右边的值
进行取余
操作,最后将结果赋值给左边的变量
逻辑运算符
a | b | a&b | a&&b | a|b | a||b | !a | a^b |
---|---|---|---|---|---|---|---|
true | true | true | true | true | true | false | false |
true | false | false | false | true | true | false | true |
false | true | false | false | true | true | true | true |
false | false | false | false | false | false | true | false |
注意事项:
-
! :表示"非"关系,当变量布尔值为true时,结果为false。当变量布尔值为false时,结果为true。
-
^ :当符号左右两边布尔值不同时,结果为true。当两边布尔值相同时,结果为false。【可以理解为异或】
-
逻辑运算符,操作的都是boolean类型的变量或常量,而且运算得结果也是boolean类型的值。
-
||与|的区别
-
相同点:如果符号左边是false,则二者都执行符号右边的操作
-
不同点:| : 如果符号左边是true,则继续执行符号右边的操作
|| :如果符号左边是true,则不再继续执行符号右边的操作
-
-
&&与&的区别:
-
相同点:如果符号左边是true,则二者都执行符号右边的操作
-
不同点:& : 如果符号左边是false,则继续执行符号右边的操作
&& :如果符号左边是false,则不再继续执行符号右边的操作
-
-
开发中如果涉及到&&、&、||、|,建议使用&&与||
比较运算符
运算符 | 运算 | 示例 | 结果 |
---|---|---|---|
== | 相等于 | 7==3 | false |
!= | 不等于 | 7!=3 | true |
< | 小于 | 7<3 | false |
> | 大于 | 7>3 | true |
<= | 小于等于 | 7<=3 | false |
>= | 大于等于 | 7>=3 | true |
instanceof | 检查是否是类的对象 | "hello" instanceof String | true |
位运算符
位运算是用二进制码进行运算,且是补码。原码各位取反之后成为反码,反码加1是补码。【正数三码相同】
运算符 | 运算 | 示例 |
---|---|---|
<< | 左移 | 3<<2 = 12 等价于 3 * 2 * 2 = 12 |
>> | 右移 | 3>>1 = 1 等价于 3 / 2 = 1 |
>>> | 无符号右移 | 3>>>1 = 1 等价于 3 / 2 = 1 |
& | 与运算 | 6&3 = 2 |
| | 或运算 | 6|3 = 7 |
^ | 异或运算 | 6^3 = 5 |
~ | 取反运算 | ~6 = -7 |
运算细节
<< | 空位补0,被移除的高位丢弃,空缺位补0 |
---|---|
>> | 被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,空缺位补1。 |
>>> | 被移位的二进制做高位无论是0还是1,空缺位都用0补。 |
& | 二进制进行&运算,只有1&1时结果是1,否则是0。 |
| | 二进制进行|运算,只有0|0时结果是1,否则是1。 |
^ | 相同二进制为进行^运算,结果是0,不同则1。 |
~ | 二进制的补码各位取反 |
条件运算符
格式:(条件表达式)? 表达式1:表达式2
【条件表达式为真则执行表达式1,否则执行表达式2】
标签:false,基础,System,运算符,println,Java,true,out
From: https://www.cnblogs.com/ajnq-fz/p/18672706