Java笔记 变量、数据类型、常量、Scanner 类、运算符

变量、数据类型、常量、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==6false
!=不等于5!=6true
>大于5>6false
<小于5<6true
>=大于等于5>=6false
<=小于等于5<=6true

注意:
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、算术运算符>关系运算符>逻辑运算符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值