数据类型与运算符
前言
java和c++都属于强类型语言,定义一个变量时,必须指定这个变量的类型,这个变量在赋值过程中,只能赋值为相应类型的值
一、数据类型分类
二、8大基本类型
基本类型都是纯小写的英文单词(在Java中,单词的大小写是完全敏感的)
8大基本类型中,每个基本类型都有对应的类的类型(包装类)
只有int和char类型的包装类拼写比较特殊
数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Interger |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
1.数据类型
byte(1字节) < short(2字节) < int(4字节) < long(8字节)
1.1int类型
int:使用int关键字定义一个整形变量,int类型为4个字节(4byte),与操作系统和JVM版本无关
int a = 10;
此时声明了一个变量,他的类型为int(整形),并且初始化变量a的值
在Java中变量定义时可以不赋值,但是一般推荐定义变量时赋予初始化值(int a;);在方法中定义的变量—>局部变量,必须赋值后才能使用
1.2long类型
long类型的基本语法格式与int类型相似,需要注意的是,在定义了一个long类型的变量时,给其赋值的时候,需要在数值后面加上字母L(或小写的l)
long numl = 100l;
long num2 = 200L;
1.3short类型
1.占用两个字节,表示范围是(-32768—32767)
2.表示范围较小,不建议使用
1.4byte类型
1.字节类型只占用一个字节,表示范围较小(-128—127)
2.一般用在文件和网络传输中
1.5字符型(char)
在对字符型变量赋值时,需要使用’ ’
char num = 'b';
char num1 = '哈'
1.6布尔类型(boolean)
1.布尔类型的赋值只能为false或true。true表示真,false表示假
2.在c语言中我们使用0表示假,1表示真,但是在Java的boolean不存在,同时他不能和int类型互相转换
3.boolean类型在有些有些JVM实现时占用一个字节,有些时候占用一个比特位,没有明确规定。
1.7双精度浮点型变量(double)
在Java中,整形和整形相除仍然是整形,这就导致很多相除之后存在小数的,小数部分会自动舍弃
int a = 7;
int b = 2;
System.out.println(a/b);
//执行结果
3
如果想要精确值,就可以使用double类型进行运算
int a = 7;
int b = 2;
System.out.println(a/b);
//执行结果
3.5
double类型的浮点数精确到小数点后十二位
1.8单精度浮点型变量(float)
Java中默认小数类型都是double类型,如果要定义一个float类型的的小数,要在该小数后面加上F(大写小写都可以)
float num = 1.5l;
float num1 = 1.5L;
float类型的浮点数精确到小数点后六位
1.9字符串类型(String)(非基本类型)
把一些字符放在一起构成字符串。
String ret = "初始值";
String ret1 = "chushizhi";
1.在定义字符串类型时使用" ",String的首字母S要大写
2.String不是基本类型,是引用类型
3对于一些特定的不方便表示的字符需要进行转义
转义字符
常用的转义字符表:
例如:
//输出\"李四'\
String ret = "\\\"李四\"\\";
System.out.println(ret);
字符串的+操作(拼接操作)
String a = "helow";
String b = "world";
System.out.println(a + b);
//输出结果
helloworld
三.运算符
1·算术运算符
1.1基本四则运算符(+ 、 - 、*)
1.规则和普通四则运算相似,唯一的不同点就是int类型的 / 和 %
2.int / int时,结果还是int,需要使用double来计算。
3.在int类型中,/ 表示取整操作,%表示取余操作。
例如
int a = 123;
System.out.println(a/10);
System.out.println(a%10);
//运行结果
12
3
1.2增量赋值运算符(+= -= *= /= %=)
int a = 3;
a += 4;//a = a + 4
System.out.println(a);
//运算结果
7
1.3自增/自减运算符(++ --)
2·关系运算符
关系运算符返回的是布尔类型的值,即true或者false。
== , != , < , > , <= , >=
int a = 10;
int b = 20;
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(a<b);
System.out.println(a>b);
System.out.println(a<=b);
System.out.println(a>=b);
//运算结果
false
true
true
false
true
false
3.逻辑运算符
&& , || , !
逻辑运算符的操作数和返回值都是boolean。
3.1逻辑与&&、逻辑或||、逻辑非!
&&:两个操作数都为true时,结果为true,否则结果为false。
|| :两个操作数结果都为false时,结果为false,否则结果为true。
!:操作数为true时,结果为false,操作数为false时,结果为true。
4.位运算符
& , | ,~ , ^
Java中对数据的操作的最小单位不是字节,而是二进制位。
位操作表示按照二进制位运算,计算机中都是使用二进制来表示数据的(01构成的序列),按位运算就是按照二进制位的每一位依次进行运算。
4.1按位与&、按位或|、按位异或^
按位与:均为1时,输出为1
按位或:均为0时,输出为1
按位异或:相同为0,不同为1
4.2按位取反
如果该位为1则转化为0,如果该位为0则转化为1
结果把这个数取相反数再减一。
5.条件运算符(三目运算符)
条件运算符只有一个:
表达式1? 表达式2: 表达式3 ;
规则
当表达式1的值为true时,取表达式2,当表达式为false时,取表达式3
6.移位运算
移位运算按照二进制来运算
6.1左移(<<)
丢弃最左侧,在最右侧补0
6.2右移(>>)
丢弃最右侧,最左侧补(正数补0,负数补1)
6.3无符号右移(>>>)
在Java中没有无符号左移
丢弃最右侧,最左侧补0