目录
一.注释
二.关键字
三.字面量
四.变量和标识符
五.键盘录入
六.运算符
1.单行注释://注释信息
2.多行注释:/* 注释信息*/
3.文档注释:/** 注释信息*/
注:文档注释暂时用不上
关键字: 被Java赋予了特定涵义的英文单词。
1.关键字的字母全部小写。
2.常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。
例如:class关键字表示定义一个类,后面跟随类名
字面量:告诉程序员数据在程序中的书写格式
执行:
public class hlt1 {
public static void main(String[] args) {
System.out.println(123);
}
}
注意:
null需要通过字符串形式打印出来
特殊字面量:
1.变量的声明:在使用变量之前,需要先声明它们。声明变量时需要指定变量的类型和名称。例如,int num; 声明了一个整数类型的变量名为 num。
2.变量的赋值:在声明变量后,可以通过赋值将具体的数据存储到变量中。例如,num = 10; 将整数值 10 赋给了变量 num。
3.变量的初始化:声明变量的同时也可以进行赋值操作,这称为变量的初始化。例如,int num = 10; 声明并初始化了一个整数类型的变量 num。
4.变量的命名规则:Java对变量命名有一些规则。变量名只能包含字母、数字、下划线和美元符号,并且不能以数字开头。此外,变量名是区分大小写的。
5.变量的作用域:变量的作用域指的是变量在程序中的可见范围。在Java中,变量可以具有不同的作用域,如方法内部、代码块内部或类的成员变量等。
6.数据类型:Java中的变量都有特定的数据类型,用于指定变量可以存储的数据范围和所占内存空间。常见的数据类型包括整数类型(如int、long)、浮点数类型(如float、double)、字符类型(char)和布尔类型(boolean)等。
注意:如果要定义long类型的变量,在数据值的后面需要加一个L作为后缀。
定义float类型变量的时候,数据值也需要加一个F作为后缀。
➢Java帮我们写好- -个类叫Scanner,这个类就可以接收键盘输入的数字。
演示如何使用Scanner类实现键盘录入:
import java.util.Scanner;
public class KeyboardInputExample {
public static void main(String[] args) {
// 创建Scanner对象
Scanner scanner = new Scanner(System.in);
// 提示用户输入信息
System.out.print("请输入您的姓名:");
// 使用Scanner的nextLine方法获取用户输入的一行文本
String name = scanner.nextLine();
// 提示用户输入年龄
System.out.print("请输入您的年龄:");
// 使用Scanner的nextInt方法获取用户输入的整数
int age = scanner.nextInt();
// 输出用户输入的信息
System.out.println("您的姓名是:" + name);
System.out.println("您的年龄是:" + age);
// 关闭Scanner对象
scanner.close();
}
}
在上面的示例中,我们通过创建Scanner对象并传入System.in参数来实现键盘录入。然后使用Scanner的nextLine方法获取用户输入的一行文本,使用nextInt方法获取用户输入的整数。最后,输出用户输入的信息。
注意:当使用Scanner类进行键盘录入时,需要确保输入的数据类型与所期望的数据类型相匹配,否则可能会出现异常。此外,在程序结束后,应该调用Scanner对象的close方法来关闭Scanner对象,释放资源。
运算符就是对常量或者变量进行操作的符号。比如: + - * /
用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。
比如:a + b 这个整体就是表达式。
而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。
/:1.整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。
2.小数直接参与运算,得到的结果有可能是不精确的。
System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335
%:取模、取余。
他做的也是除法运算,只不过获取的是余数而已。
System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
应用场景:
//可以利用取模来判断一个数是奇数还是偶数
System.out.println(15 % 2);//1 奇数
也叫自动类型提升。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。(就是小的给大的,可以直接给)
int i = 10;
double d = i; // 自动转换为 double 类型
System.out.println(d);//输出是10.0
* 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
* byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
byte b1 = 10;
byte b2 = 20;
??? result = b1 + b2;//int
问变量result是什么类型的?
因为b1和b2都是byte类型的。所以在参与计算的时候,变量b1和变量b2里面的值都会自动提升为int类型的。最终其实就是两个int类型的相加,最终结果也是int类型的。
取值范围从小到大的关系:
byte short int long float double
当一个大范围的数据类型被赋值给一个小范围的数据类型时,需要使用强制转换。强制转换可以通过将变量的类型放在括号中来实现。
double d = 10.5;
int i = (int) d; // 强制转换为 int 类型
System.out.println(i);
需要注意的是,强制转换可能会导致数据丢失(数据的精度丢失)或溢出,因此需要谨慎使用。
放在变量的前面,我们叫做先++。 比如:++a
放在变量的后面,我们叫做后++。 比如:a++
注意:不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。
int a = 10;
a++;//就是让变量a里面的值 + 1
System.out.println(a);//11
++a;//就是让变量a里面的值 + 1
System.out.println(a);//12
当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。(字符串只有+操作,没有其他操作)
当连续进行+操作时,从左到右逐个执行的。
1 + "abc" + 1
结果:"1abc1"
1 + 2 + "abc" + 2 + 1
结果:“3abc21”
注意:第一步:1 + 2 在这个过程中,没有字符串参与的,所以做的是加法运算,结果为3。
第二步:3 + "abc"。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc"。
第三步:"3abc" + 2。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc2"。
第四步:"3abc2" + 1。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串“3abc21”
String name = "hzttao";
System.out.println("我的名字是" + name);
结果: 我的名字是hzttao
当字符串跟变量相加的时候,实际上是跟变量里面的值进行拼接。
当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。
char c = 'a';
int result = c + 0;
System.out.println(result);//97
赋值运算符
public class OperatorDemo6 {
public static void main(String[] args) {
//1.最为简单的赋值运算符用法
int a = 10;//就是把10赋值给变量a
System.out.println(a);
//2.如果等号右边需要进行计算。
int b = 20;
int c = a + b;//先计算等号右边的,把计算的结果赋值给左边的变量
System.out.println(c);
//3.特殊的用法
a = a + 10;//先计算等号右边的,把计算的结果赋值给左边的变量
System.out.println(a);//20
}
}
+=、-=、*=、/=、%=
注意:扩展的赋值运算符中隐层还包含了一个强制转换。
以+=为例:a += b ,实际上相当于 a = (byte)(a + b);
关系运算符
注意:关系运算符最终的结果一定是布尔类型的。要么是true,要么是false
在写==的时候,千万不要写成=
逻辑运算符
&:逻辑与(而且)
两边都为真,结果才是真,只要有一个为假,那么结果就是假。
|:逻辑或(或者)
两边都为假,结果才是假,只要有一个为真,那么结果就是真。
^(异或)的使用
如果两边相同,结果为false,如果两边不同,结果为true
!(取反)的使用
是取反,也叫做非。
false取反就是true,true取反就是false(取反最多只用一个)
短路逻辑运算符
分类: && ||
&&:运算结果跟&是一模一样的,只不过具有短路效果。
||:运算结果跟|是一模一样的。只不过具有短路效果。
逻辑核心 :
当左边不能确定整个表达式的结果,右边才会执行。
当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。
例如:
1.用户名正确 & 密码正确
如果使用一个&,不管用户名是否正确都会去验证密码。
2.用户名正确 && 密码正确
如果用户名输入正确了,那么才会验证密码是否输入正确。 如果用户名输入错误了,那么就不会再去验证密码是否正确,最终的结果直接为false。从而提高了程序运行的效率。
三元运算符
又叫做:三元表达式或者问号冒号表达式。
格式:关系表达式 ? 表达式1 :表达式2 ;
计算规则:
计算关系表达式的值。
如果关系表达式的值为真,那么执行表达式1。
如果关系表达式的值为假,那么执行表达式2。
int a = 10;
int b = 20;
//格式:关系表达式 ? 表达式1 : 表达式2 ;
//注意点:
//三元运算符的最终结果一定要被使用。
//要么赋值给一个变量,要么直接输出。
int max = a > b ? a : b ;
在Java中涉及了很多的运算符,每一种运算符都有各自的优先级。但是这些优先级不需要记忆。
我们只要知道其中一点: 小括号优先于所有。