当前位置: 首页 > news >正文

【JAVA】数据类型及变量

🎉欢迎大家收看,请多多支持🌹

🥰关注小哇,和我一起成长🚀个人主页🚀


 Java的数据类型

可以分为两类,基本数据类型引用数据类型

基本数据类型有4类8种,4类分别是整型 浮点型 字符型 布尔型,

8种是byte、short、int、long、double、char、boolean

8种基本数据类型
字节型byte内存占用1字节
短整型short2字节
整型int4字节
长整型long8字节
单精度浮点型float4字节
双精度浮点型double8字节
字符型char2字节
布尔型boolean无明确规定

在Java中数据类型大小固定,这与c中不同

整型

整型默认为int,int 的包装类型是Integer,int类型所能表示的数据范围:

//打印最大值和最小值

System.Out.println(Integer.MAX_VALUE);

System.Out.println(Integer.MIN_VALUE);

short、byte、long的包装类型都是将首字母大写,最大值都是 包装类型.MAX_VALUE,最小值都是 包装类型.MIN_VALUE。

long类型的数字后要加L或l,一般写大写L(与1区分)。

浮点型

浮点数的存储方式与在C语言中的存储方式相同。浮点型默认为double,单精度浮点数在后面加f或F。

字符型

char占两个字节,包装类型为Character。

与C语言中用ASCII码值来表示字符不同,Java中用Unicode表示字符。计算机中的字符本质仍是数字。

布尔型

只有两种取值,false表示假和true表示真,与C语言中不同的是,Java中不能用0表示假,非0表示真。包装类型为Boolean。

类型转换

分为自动类型转换(隐式)和强制类型转换(显式)。

自动类型转换的特点是:数据范围小的转为数据范围大的时会自动进行

int a = 10;
long b = 5L;
a=b;//编译报错,long的范围比int大,会丢失数据
b=a;//将int的a转换为long类型

强制类型转换特点:将范围大的类型赋给范围小的,可能有精度丢失

类型提升

类型不同的数据间进行运算时,类型小的数据会提升为类型大的数据

int和long之间:

int a = 3;

long b = 4;

int c = a + b;//编译报错,a+b时a提升为long类型,结果也为long类型,赋给int可能会丢失数据

long d = a + b;//编译成功

对于short, byte 这种比4个字节小的类型, 会先提升成4个字节的int , 再运算 :

byte a = 3;

byte b = 2;

byte c = a+b;//报错,int类型范围比byte大

字符串类型

java中用String类来定义字符串 ,可以用+来拼接两个字符串

String a = "Hello,";
String b = "welcome to my blog.";
System.out.println(a);
System.out.println(b);
System.out.println(a+b);

打印结果: 

 

int类型转换成String类型:

int a = 6;
//法一
String s1 = a+"";
//法二
String s2 = String.valueOf(s1);

这两种方法也适用于其它基本数据类型和它们的包装类型转换成String类型。

String类型转换成int:

String str = "100";
int b = Integer.parseInt(str);
System.out.println(b);//打印100
String str2 = "A";
int c = Integer.parseInt(str2,16);//第二个参数用于解析字符串的进制
System.out.println(c);//打印10

 


 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Android Navigation 组件原理和使用教程
  • 面试问题:React基本概念,和所遇到的CPU和IO问题
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • Java面试题--JVM大厂篇之深入解析JVM中的Serial GC:工作原理与代际区别
  • spdlog源码学习:std::unique_ptr订制删除器,guard用法,以及decltype
  • Python面试整理-Python中的函数定义和调用
  • Linux工具相关介绍
  • 网络通讯实验报告
  • jenkins 使用教程
  • 3226 使两个整数相等的位更改次数
  • 鸿蒙OpenHarmony Native API【HiLog】
  • PyQt5学习路线
  • 上海昇腾AI训练营笔记
  • mysql8和mysql5版本在使用mybatis框架时的注意事项
  • 主流大数据调度工具DolphinScheduler之数据采集
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【5+】跨webview多页面 触发事件(二)
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • Akka系列(七):Actor持久化之Akka persistence
  • es6
  • Laravel 实践之路: 数据库迁移与数据填充
  • learning koa2.x
  • php中curl和soap方式请求服务超时问题
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从PHP迁移至Golang - 基础篇
  • 前端
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​LeetCode解法汇总518. 零钱兑换 II
  • #include
  • $forceUpdate()函数
  • (bean配置类的注解开发)学习Spring的第十三天
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Forward) Music Player: From UI Proposal to Code
  • (Java数据结构)ArrayList
  • (Python第六天)文件处理
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (实战篇)如何缓存数据
  • (算法)前K大的和
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (自用)网络编程
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NetCore部署微服务(二)
  • .NET微信公众号开发-2.0创建自定义菜单
  • /usr/bin/env: node: No such file or directory
  • :class的用法及应用
  • @EnableConfigurationProperties注解使用
  • [20150629]简单的加密连接.txt
  • [20181219]script使用小技巧.txt
  • [ACP云计算]组件介绍