java-变量与运算符

1、变量和类型
变量指的是程序运行时可以变化的量,相当于开辟一块内存空间来保存一些数据。类型则是对变量的种类进行了划分,不同的类型的变量具有不同的特性;我们讨论的“变量”主要和我们的“内存”这样的硬件设备密切相关。
1.1 整型变量(重点)
int
4个字节 范围: -21亿—+21亿
建议创建变量的时候都显示初始化!

int num=10;//定义一个整型的变量
System.out.println(num);
1
2
1.2 长整型变量
long
8个字节 范围:非常大
初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以.

long num=10L;//定义一个长整型的变量,也可以写10l
System.out.println(num);
1
2
1.3 双精度浮点型变量(重点)
double
8个字节 范围:非常大

double num=1.0;
System.out.println(num);
1
2
double num=1.1;
System.out.println(num*num);
//执行结果:1.2100000000000002
1
2
3
1.4 单精度浮点型变量
float
4个字节 范围:和double相比,表示的数字的范围和精度都更小,不推荐使用float,一般推荐使用double;1.1是一个double类型;1.1f或1.1F是一个float类型

float num=1.0f;//写做1.0F也可以
System.out.println(num);
1
2
1.5 字符类型变量
char
c语言中的char占1个字节,Java中的char占2个字节,Java中可以表示的字符种类更多(一个汉字可以于一个字母占一样的字节,c语言做不到)

char ch=‘A’;
1
1.6 字节类型变量
byte
1个字节 -128——+127
Java中的byte和c语言中的char占的字节一样,但一个是字节,一个是字符;字节类型和字符类型互不相干

byte value=0;
System.out.println(value);
1
2
1.7 短整型变量
short 2个字节 -32768——+32767
不要把short和char弄混淆,short就是表示整数,char是表示字符,字符和整数是两种不相干的类型。
short表示的范围较小,不推荐使用

short value=0;
System.out.println(value);
1
2
1.8 布尔类型变量
boolean
只有两种取值,true真,false假
和1和0没有任何关系,不能把整数和boolean混合使用。
boolean类型有些JVM的实现是占一个字节,有些是占一个比特位,这个没有明确的规定。
1.9 字符串类型变量(重点)
String
不再是基本类型了。而是一个‘类’
类就是用户自定制的类型(高配结构体)
String这个类不是我们自己写的,而是标准库自带的
String表示字符串:所谓的字符串,就是把很多字符放到一起:‘h’、”hehe“;使用” “表示字符串常量;
String中有的时候也会需要用到转义字符
为了表示某些特殊的字符,使用+:
如用”My name is \”guying\”“表示My name is “guying”

String name=“zhangsan”;
System.out.println(name);
1
2
//创建一个字符串:My name is “guying”
String name=”My name is \”guying\”“;
1
2
2、运算符
2.1算术运算符
2.1.1基本四则运算符:+ - * / %
规则比较简单,值得注意的是除法和求余运算符
(1)int/int结果还是int,需要用double来计算

int a=1;
int b=2;
System.out.println(a/b);
//执行结果为0
1
2
3
4
double a=1.0;
double b=2.0;
System.out.println(a/b);
//执行结果为0.5
1
2
3
4
(2)0不能做除数
(3)%表示取余,不仅可以对int求模,也可以对double求模。

System.out.println(11.5%2.0);
//运行结果为1.5
1
2
2.1.2增量赋值运算符:+= -= *= /= %=
2.1.3自增/自减运算符:++ –
注意⚠️:
1、如果不取自增运算的表达式的返回值, 则前置自增和后置自增没有区别.
2、如果取表达式的返回值, 则前置自增的返回值是自增之后的值, 后置自增的返回值是自增之前的值.
2.2关系运算符
主要有6个:== != < > <= >=
注意⚠️关系运算符的表达式返回值都是boolean类型
2.3逻辑运算符(重点)
主要有3个:&& || !
1、&&两个操作数都为 true, 结果为 true, 否则结果为 false.
2、||两个操作数都为 false, 结果为 false, 否则结果为true
3、!操作数为 true, 结果为 false; 操作数为 false, 结果为 true(这是个单目运算符, 只有一个操作数)
短路求值
1、对于逻辑与运算符&&来说,如果左侧表达式为false,整个表达式的值确定了一定是false,不需要对右侧表达式进行求值
2、对于逻辑或运算符||来说,如果左侧表达式为true,整个表达式的值确定了一定是true,不需要对右侧表达式进行求值

注意⚠️:
1、& 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算. 但是和 && 以及 || 相比, 它们不支持短路求值,不建议使用。

2、逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是boolean;
2.4位运算符
Java中对数据的操作的最小单位不是字节,而是二进制位。计算机本来就是按二进制来存储数据的,计算机的按位操作是非常高效的操作。

位运算符主要有4个:& | ~ ^
1、按位与:&:对应位都为1结果为1,否则为0

2、按位或:|:两个对应位都是0结果为0,否则为1

3、按位异或:^ :对应位相同为0,不同为1

4、按位取反:~:遇0变1,遇1变0

对于&和|来说,都是既可以表示逻辑运算,又可以表示按位运算,看操作数的类型:如果操作数的类型是boolean类型。此时就是逻辑运算,不支持短路求值;如果操作数的类型是整数类型,就是按位操作
(Byte/short/int/long),此时就是按位运算。
注意⚠️:
1、0x前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制数字对应 4 个二进 制位.
2、 0xf 表示 10 进制的 15, 也就是二进制的 1111
3、printf 能够格式化输出内容, %x 表示按照十六进制输出.
2.5移位运算符(了解)
移位运算有三种风格
1、左移运算<<:
最左侧(最高位)位不要了,最右侧位补0:左移一位相当于原数字*2;左移N位,相当于原数字乘以2的N次方。
2、算术右移运算>>:
最右侧位不要了,最左侧位(最高位)补符号位(正数补0,负数补1):右移一位,相当于原数字/2;右移N位,相当于与数字/2的N次方。
3、逻辑右移运算>>>:
最右侧位不要了,最左侧(最高位)补0
注意⚠️:
1、可以把一些乘除以2或者2的N次方的代码优化成移位运算;但实际工作中不需要这么写,编译器能够自动把乘除2的N次方优化成移位操作;这样的话代码的可读性也高,同时效率也没有影响。
2、移动负数位或者移位位数过大都没有意义.
2.6条件运算符
只有一个:
表达式1?表达式2:表达式3
也是Java中唯一一个三目运算符,是条件判断语句的简化写法

//求两个整数的最大值
int a=10;
int b=20;
int max=a>b?a:b;
1
2
3
4

当表达式1为true时,整个表达式的值是表达式2的值;
当表达式1为false时,整个表达式的值是表达式3的值
2.7Java注释
1、单行注释//
2、多行注释/* /
3、文档注释/* */
提高代码的可读性,让人读起来更容易一些
VS Code中快速注释代码。ctrl+/。command+/
IDEA也是一样

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值