目录
本篇博客主要介绍Java语言中的数据类型与运算符。
数据类型
1.首先我们介绍一下什么是变量
变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据.
类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性.
我们所讨论的 "变量" 主要和我们的 "内存" 这样的硬件设备密切相关.
2.变量的类型
在Java中变量分为整型变量、浮点型变量、字符型变量、字节类型变量、布尔类型变量和字符串类型变量。
注Java中String也就是字符串类型,它是一个类,也就是如下图的引用类型
3.整型变量:
①int
在Java中一个int占4个字节,与操作系统无关,不像c语言分32位,64位等~
基本语法格式:
int 变量名 = 初始值;
代码示例:
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a =
10;
-
System.out.println(a);
-
}
-
}
运行结果:
注:
1.int 表示变量的类型是一个整型
2.变量名是变量的标识后续都是通过这个名字来使用变量
3.Java 中 = 表示赋值(和数学不一样), 意思是给变量设置一个初始值
4. 初始化操作是可选的, 但是建议创建变量的时候都显式初始化
5. 最后不要忘记分号, 否则会编译失败
我们来测一下int的范围代码如下:
-
public
class TestDemo {
-
public static void main(String[] args) {
-
System.out.println(Integer.MAX_VALUE);
//int的最大值
-
System.out.println(Integer.MIN_VALUE);
//int的最小值
-
}
-
}
运行结果是
表示int是4个字节 4个字节的范围是[-2^31,2^31-1]
②long
long与int对变量命名规则类似,Java中long占8个字节。
long 变量名 = 初始值;//建议数字最后加上大写的L或者小写的l,便于区分。
-
public
class TestDemo {
-
public static void main(String[] args) {
-
long a =
10L;
-
System.out.println(a);
-
System.out.println(Long.MAX_VALUE);
//long的最大值
-
System.out.println(Long.MIN_VALUE);
//long的最小值
-
}
-
}
运行结果:
表明long 的范围是[-2^63,2^63-1]
③short
short占2个字节
short 变量名 = 初始值;
4.浮点型变量
①float
基本格式: 单精度浮点型float,占4个字节。
float 变量名 = 初始值;//建议初始值后加大写F或小写f表示这个数是一个单精度浮点型!
-
public
class TestDemo {
-
public static void main(String[] args) {
-
float a =
10L;
-
System.out.println(a);
-
}
-
}
运行结果:
②double
基本格式:双精度浮点型,占8个字节。
double 变量名 = 初始值;
-
public
class TestDemo {
-
public static void main(String[] args) {
-
double a =
12.5;
-
System.out.println(a);
-
}
-
}
运行结果:
5.字符型变量
char
char占2个字节!Java中字符都是用Unicode编码
char 变量名 = 初始值;
代码示例:
-
public
class TestDemo {
-
public static void main(String[] args) {
-
char a =
'A';
-
System.out.println(a);
-
}
-
}
运行结果:
6.字节型变量
byte
byte 变量名 =初始值;
7.布尔类型变量
boolean
boolean 变量名 = 初始值;
注:boolean只有false和true两个值!
Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法
8.字符串类型变量
String
串通常是用" "包含;
String 变量名 = 初始值;
-
public
class TestDemo {
-
public static void main(String[] args) {
-
String name =
"zhangsan";
-
System.out.println(name);
-
}
-
}
Java中可以实现两个字符串"相加",此相加并不是真正的相加,只是将字符串拼接到另一个字符串的后面。
-
public
class TestDemo {
-
public static void main(String[] args) {
-
String name1 =
"zhangsan";
-
String name2 =
"lisi";
-
System.out.println(name1+name2);
-
}
-
}
运算符
1.算术运算符 :+ - * / %
代码如下:
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a=
5;
-
int b=
2;
-
System.out.println(a+b);
//加法运算符结果是7
-
System.out.println(a-b);
//减法运算符结果是3
-
System.out.println(a*b);
//乘法运算符结果是10
-
System.out.println(a/b);
//除法运算符结果是2
-
System.out.println(a%b);
//求余运算符结果是1
-
}
-
}
注:0不能作为除数!
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a =
5;
-
int b =
0;
-
System.out.println(a/b);
-
}
-
}
会抛出0不能作为除数的异常!
2.增量运算符:+= -= *= /= %=
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a =
5;
-
a+=
1;
//等价于a=a+1;此时a=6;
-
System.out.println(a);
//6
-
a-=
1;
//等价于a=a-1;上次执行完a+=1时a已经变成了6,这时执行a-=1 a变成了5
-
System.out.println(a);
//5
-
a*=
2;
//等价于a=a*2 此时a=10;
-
System.out.println(a);
//10
-
a/=
2;
//等价于a=a/2;此时a=5;
-
System.out.println(a);
//5
-
a%=
2;
//等价于a=a%2;此时a=1
-
System.out.println(a);
//1
-
}
-
}
3.自增 自减运算符 前缀++ 后缀++ 前缀-- 后缀--
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a=
1;
-
int b=a++;
//等价于b=a a=a+1此时b=1 a=2;
-
System.out.println(b);
//1
-
System.out.println(a);
//2
-
b=++a;
//等价于a=a+1 b=a 此时a=3 b=3;
-
System.out.println(b);
//3
-
System.out.println(a);
//3
-
b=a--;
//等价于b=a a=a-1 此时b=3 a=2;
-
System.out.println(b);
//3
-
System.out.println(a);
//2
-
b=--a;
//等价于a=a-1 b=a 此时a=1 b=1
-
System.out.println(b);
//1
-
System.out.println(a);
//
-
}
-
}
4.逻辑运算符:&&(与) ||(或) !(非)
逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean 也就是说 只有2值 true 或 false
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a =
10;
-
int b =
5;
-
int c =
6;
-
System.out.println(a>b&&a>c);
//T
-
System.out.println(a>b||a>c);
//T
-
System.out.println(a!=b);
//T
-
System.out.println();
-
System.out.println(a<b&&a>c);
//F短路求值,&&运算符中一假为假!
-
System.out.println(a<b||a>c);
//T 或运算符中一真为真!
-
}
-
}
短路求值!
结论: 1. 对于 && , 如果左侧表达式值为 比特科技 false, 则表达式的整体的值一定是 false, 无需计算右侧表达式
2. 对于 ||, 如果左侧表达式值为 true, 则表达式的整体的值一定是 true, 无需计算右侧表达式.
5.位运算符
&(按位与) |(按位或) ~(按位取反) ^(按位异或)
位指二进制位
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a=
3;
-
int b=
4;
-
System.out.println(a&b);
//0
-
System.out.println(a|b);
//7
-
System.out.println(a^b);
//7
-
System.out.println(~a);
//-4
-
}
-
}
我们来看 a和b的二进制表示
以上4张图是为什么得到这个答案的分析过程。
6.移位运算符
>>(右移):最右位不要了,正数最左侧补0,负数补1
<<(左移):最左侧位不要了,最右侧补0
>>>(无符号右移):最右侧不要了,最左侧补0
注:>>运算符 相当于除以2 右移n位 相当于除以2的n次方
<<运算符 相当于 乘2 左移n位 相当于乘2的n次方
7.条件运算符
格式:
表达式1?表达式2:表达式3
比如:
-
public
class TestDemo {
-
public static void main(String[] args) {
-
int a =
10;
-
int b =
2;
-
int c=a>b?a:b;
-
System.out.println(c);
-
}
-
}
答案毫无疑问是10,这是在求2个数的较大值。也就是说表达式1成立执行表达式2,表达式1不成立执行表达式3!
感谢观看!!!
转载:https://blog.csdn.net/JixTlhh/article/details/115432167