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

 更新时间:2021年09月29日 11:24:00   作者:文墨轩  
这篇文章主要介绍了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 的形式表示数据范
围.
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);
    }

在这里插入图片描述

运算符:&

如果两个二进制位都是 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);
    }

在这里插入图片描述

运算符:~

如果该位为 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);
    }

在这里插入图片描述

到此这篇关于全面剖析java 数据类型与运算符的文章就介绍到这了,更多相关java 数据类型与运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 【MyBatis源码全面解析】MyBatis一二级缓存介绍

    【MyBatis源码全面解析】MyBatis一二级缓存介绍

    下面小编就为大家带来一篇【MyBatis源码全面解析】MyBatis一二级缓存介绍。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • SpringBoot中shiro过滤器的重写与配置详解

    SpringBoot中shiro过滤器的重写与配置详解

    在前后端分离跨域访问的项目中shiro进行权限拦截失效 (即使有正确权限的访问也会被拦截) 时造成302重定向错误等问题,为解决这个问题,就需要进行shiro过滤器的重写以及配置。本文详细介绍了解决方法,需要的可以参考一下
    2022-04-04
  • springboot @ComponentScan注解原理解析

    springboot @ComponentScan注解原理解析

    这篇文章主要介绍了springboot @ComponentScan注解原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Spring的自定义扩展标签NamespaceHandler解析

    Spring的自定义扩展标签NamespaceHandler解析

    这篇文章主要介绍了Spring的自定义扩展标签NamespaceHandler解析,在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直接基于Spring的标准Bean来配置,Spring提供了可扩展Schema的支持,这是一个不错的折中方案,需要的朋友可以参考下
    2023-12-12
  • 利用maven命令指定配置文件打包springboot项目

    利用maven命令指定配置文件打包springboot项目

    这篇文章主要介绍了利用maven命令指定配置文件打包springboot项目,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Java利用IO流实现简易的记事本功能

    Java利用IO流实现简易的记事本功能

    本文将利用Java中IO流编写一个模拟日记本的程序,通过在控制台输入指令,实现在本地新建文件,打开日记本和修改日记本等功能,感兴趣的可以了解一下
    2022-05-05
  • SpringBoot整合达梦数据库的教程详解

    SpringBoot整合达梦数据库的教程详解

    这篇文章主要给大家介绍了SpringBoot整合达梦数据库的详细教程,文章中有详细的图片介绍和代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • 解决Mac m1 电脑 idea 卡顿的问题

    解决Mac m1 电脑 idea 卡顿的问题

    这篇文章主要介绍了Mac m1 电脑 idea 卡顿的问题解决,文中给大家补充介绍了IDEA卡顿问题处理方法,需要的朋友可以参考下
    2023-03-03
  • Spring Cloud Gateway集成Sentinel流控详情

    Spring Cloud Gateway集成Sentinel流控详情

    这篇文章主要介绍了Spring Cloud Gateway集成Sentinel流控详情,Sentinel支持对Spring Cloud Gateway、Zuul等主流的API Gateway进行限流,需要的朋友可以参考一下
    2022-09-09
  • Java深入了解数据结构之哈希表篇

    Java深入了解数据结构之哈希表篇

    哈希表是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方,说起来可能感觉有点复杂,我想我举个例子你就会明白了,最典型的的例子就是字典
    2022-01-01

最新评论