数据类型
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
}