全面剖析java 数据类型与运算符

网友投稿 273 2022-12-04

全面剖析java 数据类型与运算符

目录java的变量和类型基本数据类型——数值型整型浮点型字符型布尔型运算符运算符:|运算符:&运算符:^运算符:~运算符:>>运算符:<<运算符:>>>

java的数据类型与运算符

java的变量和类型

变量指的是程序运行是可变的量,其需要开辟内存空间用于储存一些数据

而类型是对变量的种类进行划分,不同的类型有不同的属性

基本数据类型——数值型

整型

byte

byte 变量名=初始值

byte类型表示一个整形不过只占1个字节;

其数据范围为[-128,127]

public static void main(String[] args) {

System.out.println(Byte.MAX_VALUE);

System.out.println(Byte.MIN_VALUE);

}

short

***short 变量名 = 初始值 ***

short表示变量的类型是一个整型

short的取值范围[-32768,32767]

public static void main(String[] args) {

System.out.println(Short.MIN_VALUE);

System.out.println(Short.MAX_VALUE);

}

int

语法:

***int 变量名 = 初始值 ***

int 表示变量的类型是一个整型

Java中,int类型占4个字节(每个字节占8个比特位)

其数据范围是 -2^31 -> 2^31-1 , 也就大概是 -21亿 到 +21亿

public static void main(String[] args) {

System.out.println(Integer.MAX_VALUE);

System.out.println(Integer.MIN_VALUE);

}

如果运算结果超过其数据范围,就会出现溢出情况

public static void main(String[] args) {

System.out.println(Integer.MAX_VALUE+1);

System.out.println(Integer.MIN_VALUE-1);

}

21亿这样的数字对于当前的大数据时代来说, 是很容易超出的. 针对这种情况, 我们就需要使用更大范围的数据类型来表示,因此 Java 中提供了 long 类型.

long

语法:

***long 变量名 = 初始值 ***

long 占8个字节其数据范围 [-2^63 ,2^63-1]

public static void main(String[] args) {

long a=10l;

System.out.println(a);

}

public static void main(String[] args) {

System.out.println(Long.MAX_VALUE);

System.out.println(Long.MIN_VALUE);

}

注意:

基本语法格式和创建 int 变量基本一致, 只是把类型修改成 long初始化设定的值为 10L , 表示一个长整型的数字. 10l 也可以.使用 10 初始化也可以, 10 的类型是 int, 10L 的类型是 long, 使用 10 L 或者 10 l 更好一些.

浮点型

double

语法:

double 变量名 = 初始值

public static void main(String[] args) {

double num = 1.0;

System.out.println(num);

}

注意:

在 Java 中, int 除以 int 的值仍然是 int(会直接舍弃小数部分).

public static void main(String[] args) {

int a = 1;

int b = 2;

System.out.println(a / b);

}

Java 中的 double 虽然也是 8 个字节, 但是浮点数的内存布局和整数差别很大, 不能单纯的用 2 ^ n 的形式表示数据范

围.

http://Java 的 double 类型的内存布局遵守 IEEE 754 标准(和C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 势

必会存在一定的精度误差.

public static void main(String[] args) {

double num = 1.1;

System.out.println(num * num);

}

float

语法:

float 变量名 = 初始值

public static void main(String[] args) {

float num = 1.0F;

System.out.println(num);

}

float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都

优先考虑 double, 不太推荐使用 float.

字符型

char

char 变量名 = 初始值

public static void main(String[] args){

char ch='呵';

System.out.println(ch);

}

注意:

Java 中使用 单引号 + 单个字母 的形式表示字符字面值.计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, 而 Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文.

布尔型

boolean

boolean 变量名 = 初始值

public static void main(String[] args) {

boolean bool=false;

System.out.println(bool);

}

注意:

boolean 类型的变量只有两种取值, true 表示真, false 表示假.

Java 的 boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.

boolean 类型有些 JVM 的实现是占 1 个字节, 有些是占 1 个比特位, 这个没有明确规定.

运算符

运算符:|

*** 如果两个二进制位都是 0, 则结果为 0, 否则结果为 1***

public static void main(String[] args) {

int a=1;

int b=2;

System.out.println(a|b);

}PugkwutsH

运算符:&

如果两个二进制位都是 1, 则结果为 1, 否则结果为 0.

public static void main(String[] args) {

int a=1;

int b=2;

System.out.println(a&b);

}

运算符:^

*** 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1.***

public static void main(String[] args) {

int a=1;

int b=2;

System.out.println(a^b);

}

运算符:http://~

如果该位为 0 则转为 1, 如果该位为 1 则转为 0

public static void main(String[] args) {

int a=1;

int b=~a;

System.out.println(b);

}

运算符:>>

最右侧位不要, 最左侧补符号位(正数补0, 负数补1)

public static void main(String[] args) {

int a=8;

System.out.println(a>>1);//向右位移1个

}

运算符:<<

最左侧位不要了, 最右侧补 0

public static void main(String[] args) {

int a=8;

System.out.println(a<<1);

}

运算符:>>>

最右侧位不要了, 最左侧补 0(无论他是否为负数)

public static void main(String[] args) {

int a=8;

System.out.println(a>>>1);

int b=-1;

System.out.println(b >>> 1);

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解析MapStruct转换javaBean时出现的诡异事件
下一篇:使用springmvc临时不使用视图解析器的自动添加前后缀
相关文章

 发表评论

暂时没有评论,来抢沙发吧~