首页 > 编程语言 >【java】数据类型

【java】数据类型

时间:2023-07-09 11:44:41浏览次数:30  
标签:类型转换 java 常量 int double 数据类型 byte

Java的数据类型分为两大类:

  • 基本数据类型:包括 整数浮点数字符布尔
  • 引用数据类型:包括数组接口枚举注解

 

image

 

image

 

自动类型转换

image

(1)当把存储范围小的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围大的变量时。

int i = 'A';//char自动升级为int,其实就是把字符的编码值赋值给i变量了
double d = 10;//int自动升级为double

byte b = 127; //右边的整数常量值必须在-128~127范围内
//byte bigB = 130;//错误,右边的整数常量值超过byte范围
long num = 1234567; //右边的整数常量值如果在int范围呢,编译和运行都可以通过,这里涉及到数据类型转换
long bigNum = 12345678912L;//右边的整数常量值如果超过int范围,必须加L,否则编译不通过

(2)当存储范围小的数据类型与存储范围大的数据类型一起混合运算时,会按照其中最大的类型运算。

int i = 1;
byte b = 1;
double d = 1.0;

double sum = i + b + d;//混合运算,升级为double

(3)当byte,short,char数据类型进行算术运算时,按照int类型处理。

byte b1 = 1;
byte b2 = 2;
byte b3 = b1 + b2;//编译报错,b1 + b2自动升级为int

char c1 = '0';
char c2 = 'A';
System.out.println(c1 + c2);//113 

 

强制类型转换

(1)当把存储范围大的值(常量值、变量的值、表达式计算的结果值)赋值给了存储范围小的变量时,需要强制类型转换,提示:有风险,可能会损失精度或溢出

int i = (int)3.14;//强制类型转换,损失精度

double d = 1.2;
int num = (int)d;//损失精度

int i = 200;
byte b = (byte)i;//溢出

(2)当某个值想要提升数据类型时,也可以使用强制类型转换

int i = 1;
int j = 2;
double shang = (double)i/j;

标签:类型转换,java,常量,int,double,数据类型,byte
From: https://www.cnblogs.com/abc-begin/p/17538504.html

相关文章

  • java日志框架
    发展简图历程:使用logback+slf4j进行日志框架处理,出自一人之手,衔接更好! logback官网手册(英文):https://logback.qos.ch/manual/index.htmllogback中文手册:http://www.logback.cn/博客中文手册:https://blog.csdn.net/qq_26462567/article/details/115757354 ......
  • 【java】源文件和类
    (1)源文件名是否必须与类名一致?public呢?如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为......
  • JavaScript 模块
    JavaScript模块 一般来讲,模块是一个独立的JavaScript文件 模块文件可以包含一个类定义、一组相关的类、一个实用函数库或者是一些待执行的代码 以模块的形式编写代码,任何符合模块编码形式JavaScript代码段,都可当做一个模块JavaScript中未定义支持模块的语言结构,所以......
  • CLR组件开发之 基于C++ dll 与C++/CLI dll与C#的数据类型对应关系
    ​  模块化组件化实现独立的功能模块是软件设计的良好习惯,一般用实现为DLL。普通的DLL对外提供接口是采用导出函数接口,如果接口数量不大,只是50个以内,这种方式很适合;如果对外接口有上百个,导出函数接口就完全破坏了软件模块化分层设计的理念,使用接口非常麻烦,此情形采用C++/CLI导......
  • Java扩展Nginx之一:你好,nginx-clojure
    欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos关于Nginx扩展以欣宸自己为例,对一个java程序员来说,nginx并不陌生,下图应该是最常见的使用场景了,反向代理:除了反向代理,nginx的模块化机制让nginx具备了更多丰富的特性,例......
  • Java版归并排序 演示代码(带注释)
    Code:importjava.util.Arrays;/***归并排序*/publicclassMergeSort{/***私有化*/privateMergeSort(){}/***归并排序的sort方法*@paramarr待排序数组*@param<E>可比较的元素*/publicstatic<Eex......
  • JAVA_DAY04
    第四天基本数据类型使用:基本数据类型变量名=数据值;inti=1;引用数据类型使用:1.导包:指明要使用类型存在的位置import包名.类名;(权限定名)package包信息的下面,class类型的上面2.定义引用数据类型的变量|引用引用数据类型变量名|引用名=new引......
  • 一个Bug,让我发现了Java界的.AJ(锥)
    目录 一、前言二、满脑子都是骚操作1.遇到问题2.发现问题3.排查问题三、如何正确使用Aspect的.aj类1.安装AspectJ2.AspectJ插件3.添加依赖aspectjrt.jar4.配置AspectJ编译器5.案例测试四、总结五、系列推荐 一、前言话我放这,踩过的坑越多......
  • 一个Bug,让我发现了Java界的.AJ(锥)
    目录一、前言二、满脑子都是骚操作1.遇到问题2.发现问题3.排查问题三、如何正确使用Aspect的.aj类1.安装AspectJ2.AspectJ插件3.添加依赖aspectjrt.jar4.配置AspectJ编译器5.案例测试四、总结五、系列推荐一、前言话我放这,踩过的坑越多头发越少!说来也是奇怪,只要是学......
  • Java中AQS的原理与实现
    目录1:什么是AQS?2:AQS都有那些用途?3:我们如何使用AQS4:AQS的实现原理5:对AQS的设计与实现的一些思考1:什么是AQS​ 随着计算机的算力越来越强大,各种各样的并行编程模型也随即踊跃而来,但当我们要在并行计算中使用共享资源的时候,就需要利用一种手段控制对共享资源的访问和修改来......