Java基础学习笔记
变量、数据类型、常量、Scanner 类、运算符
变量
定义
定义:变量就是一个存储数据的空间,相当于一个容器。Java会给每个变量分配一个内存地址(这个地址对人类来说不易理解),所以我们就要给变量一个能让我们看得懂的名字,然后你就可以通过这个名字来操作变量中的数据。
命名规则
(1)有字母、数字、下划线_、美元符号组成;
(2)不能使用数字开头,不建议使用美元符号$开头;
(3)不能使用java关键字(有48个左右);
(4)变量名要做到见名知意;
(5)变量名是多个英文单词时,要使用小驼峰命名法(例如:studentNmae);
(6)java严格区分大小写。
数据类型
基本数据类型
数值类型
整形数据
1、byte:占用1字节(-128~127)
2、short:占用2字节
3、int:占用4字节
4、long:占用8字节
浮点型
1、float:4字节
2、double:8字节
非数值类型
字符型
1、char :2字节。(单个元素,用单引号包裹。)
//在Java中无论汉子还是英文都是用Unicode码表示,它占用了两个字节,然而英文字母来源于8位的ASCII码,以至于Unicode只使用低8位就可以满足了。
char ch1 = 'A'; //这里的ch1只占一个字节
char ch2 = '李';//这里的ch2占用了两个字节
2、String:使用双引号,不属于基本数据类型
String str = "abc";//占用的是最少3个字节
布尔类型
1、boolean:只有两个值(true、false)
boolean bool1 = true;
boolean bool2 = false;
引用数据类型
数组
类
接口
变量的声明和使用
1、第一种方式:先声明变量,再赋值,最后使用
声明变量------>数据类型 变量名;
赋值------->变量名 = 数值;
2、第二种方法:声明并赋值
数据类型 变量名 = 数值;
int a;//声明变量
a = 10;//赋值
system.out.println(a);//使用
int b = 20;//声明并赋值
system.out.print(b);//使用
数据类型的转换
1、自动转换(小范围数据复制给大范围数据)
byte a = 10;
int b = a;//自动转换
2、强制类型转换(大范围数据赋值给小范围数据)
**注意:**在强制类型转换的时候,容易造成数据精度丢失。
int a = 20;
byte b = (byte)a;
double c = 2.2;
float d = (float)c;
常量
定义
常量是在程序运行的整个过程中保持不变的量。
常量的优点
比较安全,不能被修改。
使用规则
1、常量名通常用大写字母;
2、不同字符间使用下划线隔开;
3、只能被赋值一次,通常定义就对其初始化。
final int NUMBER = 20;//常量名大写
final String STUDENT_NAME = "李往";//两个英文单词要用下划线加以区分
Scanner的使用
作用
用作为接收键盘输入的值。
使用方法
1、第一步:导包
import java.util.Scanner;
2、第二步:创建对象
Scanner input = new Scanner(System.in);
3、获取数据
int a = input.nextInt();
double b = input.nextDouble();
String c = input.nextt();
运算符
基本的算术运算符
赋值运算符:=
变量名 = 表达式;
int age = 20;
基本的算术运算:+、-、*、/、%、++、–
int a = 10;
int b = 20;
int c1 = a+b;
int c2 = a-b;
int c3 = a*b;
int c4 = a/b;
int c5 = a%b;//取余运算符,例如:9%2=1
int c6 = a++;//此时的c6=10,但是计算完这步的时候a=11(先赋值后递增)
int c7 = ++a;//此时的c7=12,a=12(先递增后赋值)
int c8 = a--;//此时的c8=10,
int c9 = --a;//此时的c9=9;
复合运算符
复合运算符:+=、-=、*=、/=、%=
int a += 10; // 等价于:int a = a + 10;
int b -= 10; //等价于:int b = b - 10;
int c *= 10; //等价于: int b = b * 10;
int d /= 10; //等价于: int d = d / 10;
int e %= 10; //等价于: int e = e % 10;
关系运算符
运算符 | 含义 | 范例 | 结果 |
---|---|---|---|
== | 等于 | 5==6 | false |
!= | 不等于 | 5!=6 | true |
> | 大于 | 5>6 | false |
< | 小于 | 5<6 | true |
>= | 大于等于 | 5>=6 | false |
<= | 小于等于 | 5<=6 | true |
注意:
1、=为赋值运算符,==为等于运算符
2、关系表达式的结果为布尔值
3、>、<、>=、<=运算符的优先级高于 ==、!=
4、>、<、>=、<=运算符只支持数值类型的数据比较
逻辑运算符
运算符 | 含义 | 运算规则 |
---|---|---|
&& | 短路与 | 两个操作数都是true,返回结果才是true,一旦&&左边的表达式为false,则&&右边的表达式不会再进行判断执行了,直接返回 false |
& | 逻辑与、运算符与 | 在表示逻辑与的时候与&&的用法差不多,区别在于 无论&的左边是true或false都会对&的右边进行判断执行 |
11 | 短路或 | 两个操作数 的其中一个数为true,返回结果就是true,一旦‘或’的左边为true,右边则不用执行判断 |
1 | 逻辑或、运算符或 | 在表示逻辑或的时候与11的用法差不多,但是无论‘或’的左边是什么值都会去判断执行右边 |
! | 非 | 操作数为true,结果返回true;操作数为false,结果返回false |
注意:
1、如果第一个操作数已经能确定表达的值,第二个操作数就不必计算了;
2、优先级:!> && > ||
例如
public static void main(String[] args){
int a = 10;
int b = 20;
int c = 30;
System.out.println(a<b&&b<c);//控制台打印输出true
System.out.println(a>b&&b<c);//控制台打印输出false,且不会对b<c做出比较
System.out.println(b>a||a>c);//控制台打印输出true,且不会对a>c做比较
System.out.println(!(a>b));//控制台打印输出true
}
条件运算符(三元运算)
公式
条件 ? 表达式1 : 表达式2
条件为true,执行表达式1
条件为false,执行表达式2
例如:
int min;
min = 5<7?5:7;
System.out.println(min);//输出的是5
min = 7<10 ? 10:7
System.out.println(min);//输出的是7``
**三元运算符的嵌套**
```java
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入三个整数(分别以回车键隔开):");
int a = input.nextInt();
int b = input.nextInt();
int c = input.nextInt();
int max = a>b?(a>c?a:c):(b>c?b:c);//获取abc三个数中的最大数
int min = a<b?(a<c?a:c):(b<c?b:c);//获取abc三个数中的最小数
System.out.println("max="+max+" min="+min);
}
运算符总结(优先级)
1、单目运算符包括!、++、–,优先级别高
2、优先级别最低的是赋值运算符
3、可以通过()控制表达式的运算顺序,()优先级最高
4、从左向右结合的只有赋值运算符三目运算符和单目运算符
5、算术运算符>关系运算符>逻辑运算符