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
longfloat 赋值时
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 @   站着说话不腰疼  阅读(104)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示