2、数据类型跟运算符

数据类型跟运算符

1.标识符

1.1 以字母,下划线_ ,美元符$ 开头
1.2 可以是数字,字母,下划线_ ,美元符$ 的任意组合
1.3 区分大小写
1.4 不能是Java关键字

2.常量和变量

常量被 final 修饰,一般被final修饰的只能被初始化一次;变量名全大写,多个字母用_分割。

2.1常量:第一次赋值的时候就确定下来,以后的不可以改变值,用final修饰
	比如 final int a = 10;//如果再对a进行赋值操作就会编译错误
2.2变量:在内存中开辟一个空间,可以更改值
	int a = 10;
	a=20;
	//输出a的话,a为20

3.数据类型

3.1基本数据类型

四型八种

整型:byte , short , int , long

浮点型:float , double

布尔型:boolean

字符:char

取值范围的原理:
byte 1个字节 有8个二进制位
0000 0000 最高位为正负取值,0为正,1为负
取值范围为:-2^7~2^7-1  (-128~127)
每个二进制的最高位都为用来存储boolean的值,如果是0则表示正,1表示负

类型             	占用字节
byte				1
short				2
int 				4
long				8
float				4
double				8
boolean				//存的是二进制上的1位,0表示true,1表示false
char				2//比如说'a'参照unicode编码表的97号位,'A'==》65
给long 跟 float 赋值时
long 后面要加 L,
float 后面要加 f,
大小写都可以,一般建议大写,比较好区分

3.2引用数据类型

除开基本数据类型,其他的都是引用类型

比如:String interface 数组

4.运算符

4.1算术运算符

 + - * / %
 int a = 10;
 int b = a/3;
 //结果b为3  ==》 同类型的除法运算只能得到该类型,所以是int类型,没有小数点
 b=a/3.0;
 //结果为3.3333333 ==》 不同类型的除法运算,类型是由低位向高位看齐,也就是小的类型不用,用大的
// % 取模(求余数)
b = a%3; // 结果为1 ==》 10/3 余数为 1 ;

4.2赋值运算符

 = 为赋值符号,不跟数学那样是等于号
 == 为等于号
 扩展运算符 +=,-=,*=,/=,%=
 int a = 10;
 a+=10;
 //结果为20 ==》 a=  a + 10;

4.3 关系运算符

< , > , >= , <= , == ,!=
运算的结果为Boolean类型

4.4逻辑运算符

// && || ! 
//&& 短路与 遇false则false 只要左边为false 右边就被短路了,右边就不参与运算了
int a = 10;
int b = 5;
System.out.println(a>9 && b>10);//结果为false
// || 短路或 遇true则true 只要左边为true 右边就被短路了,右边就不参与运算了
System.out.println(a>9 || b>10);//结果为true
// ! 非 就是对结果取反,结果为false,!false就是为true
System.out.println(!(a>9);//a为10,大于9,结果为false

4.5位运算符

& | ^ >> << 
//  >>
int a = 8 ;
//问怎样使a=a/2的运算速率最快
System.out.println(a>>1);
//a先转换成二进制的 0000 1000
// >> 1 要从有效位向右移多少位,1表示1位
//a>>1  ==》变成 0000 0100 
//显示的时候在变成10进制输出
//结果位 4 

// & 
int a = 127 & 97 ;
//127 0111 1111
//97  0110 0001
//结果 0110 0001
// & 对应位上都是1的就为1,对应位上有0都为0


// |
int a = 127 | 97;
//127 0111 1111
//97  0110 0001
//结果 0111 1111
// | 对应位上有1的都为1

// ^ 异或
//127 0111 1111
//97  0110 0001
//结果 0001 1110
// ^ 相同为0,相异为1

4.6条件运算符

也称三元运算符
int a =10;
int b =5;
格式: a>b?a:b;
a>b如果为true,则取冒号左边的值,为false取右边的值

5.数据类型转换

5.1自动类型转换

从小的类型转换成大的类型
// int a = 10;
// long b = a;
从精确度低的转换成高的
//int a = 10;
// float f = a;

5.2强制类型转换

想要从大的数据类型转换成小的类型时
比如 long a = 10L;
int b = a;此时会报错,因为不能从大的类型转成小的类型,想要转换必须强制转换才可以 ==》int b = (int)a;
想要从精确度转换成整型也时要的
比如 float f  = 10f;
int a = (int)f;//这样做会丢失小数点后面的

//特例
整型一般默认时int类型,小数默认是double类型

6.Scanner类

在java.util包下
Scanner sc = new Scanner(System.in);//创建键盘输入的对象
sc.nextInt();//在键盘录入一个int类型的值,不是则报错
sc.next();//遇到空格就结束,不会再打印空格后面的内容,得到String类型
sc.nextLine();//遇到回车结束,比如上一个留下来的回车会执行的,得到String类型
posted @ 2022-03-17 19:56  站着说话不腰疼  阅读(115)  评论(0)    收藏  举报