Java 数据类型详解与类型转换技巧
Java 数据类型
Java
中的变量必须是指定的数据类型:
int myNum = 5; // 整数
float myFloatNum = 5.99f; // 浮点数
char myLetter = 'D'; // 字符
boolean myBool = true; // 布尔值
String myText = "Hello"; // 字符串
数据类型分为两组:
- 基本数据类型 - 包括
byte
、short
、int
、long
、float
、double
、boolean
和char
- 引用数据类型 - 包括类、接口、数组
基本数据类型
基本数据类型指定变量值的大小和类型,它没有额外的方法。在 Java 中有八种基本数据类型:
- byte: 1字节,存储范围 -128 到 127 的整数。
- short: 2字节,存储范围 -32768 到 32767 的整数。
- int: 4字节,存储范围 -2,147,483,648 到 2,147,483,647 的整数。
- long: 8字节,存储范围 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 的整数。
- float: 4字节,存储约 6 到 7 位小数。
- double: 8字节,存储约 15 位小数。
- boolean: 1位,存储
true
或false
。 - char: 2字节,存储单个字符/字母或 ASCII 值。
Java 数字
整数类型
byte:
byte myNum = 100;
System.out.println(myNum);
short:
short myNum = 5000;
System.out.println(myNum);
int:
int myNum = 100000;
System.out.println(myNum);
long:
long myNum = 15000000000L;
System.out.println(myNum);
浮点类型
float:
float myNum = 5.75f;
System.out.println(myNum);
double:
double myNum = 19.99d;
System.out.println(myNum);
科学计数法:
float f1 = 35e3f;
double d1 = 12E4d;
System.out.println(f1);
System.out.println(d1);
Java 布尔数据类型
Java 的 布尔 (boolean) 数据类型只能取两个值:true
或 false
。
boolean java有趣 = true; // java 是否有趣?
boolean 鱼肉好吃 = false; // 鱼肉是否好吃?
System.out.println(java有趣); // 输出 true
System.out.println(鱼肉好吃); // 输出 false
Java 字符
char
数据类型用于存储单个字符。字符必须用单引号括起来,如 'A' 或 'c'。
char myGrade = 'B';
System.out.println(myGrade);
或者,如果您熟悉 ASCII 值,您可以使用它们来显示特定的字符:
char myVar1 = 65, myVar2 = 66, myVar3 = 67;
System.out.println(myVar1);
System.out.println(myVar2);
System.out.println(myVar3);
Java 字符串
String
数据类型用于存储字符序列(文本)。字符串值必须用双引号括起来:
String greeting = "Hello World";
System.out.println(greeting);
字符串在 Java 中被广泛使用,它是一种非基本数据类型,具有丰富的操作方法
总结和建议:
- 了解基本数据类型的范围和存储方式。
- 注意整数的默认类型是
int
,浮点数的默认类型是double
。 - 选择合适的数据类型,以避免浪费内存。
- 引用数据类型包括类、接口和数组。
Java 类型转换
类型转换是将一个原始数据类型的值赋给另一种类型的操作。在Java中,有两种类型的转换:
扩展转换(自动)
扩展转换会自动进行,将较小类型转换为较大类型:
public class Main {
public static void main(String[] args) {
int myInt = 9;
double myDouble = myInt; // 自动转换:int 到 double
System.out.println(myInt); // 输出 9
System.out.println(myDouble); // 输出 9.0
}
}
扩展转换顺序为:byte -> short -> char -> int -> long -> float -> double
缩小转换(手动)
缩小转换需要手动完成,通过在值前面加括号并手动放置类型:
public class Main {
public static void main(String[] args) {
double myDouble = 9.78d;
int myInt = (int) myDouble; // 手动转换:double 到 int
System.out.println(myDouble); // 输出 9.78
System.out.println(myInt); // 输出 9
}
}
缩小转换顺序为:double -> float -> long -> int -> char -> short -> byte
Java 运算符
运算符用于对变量和值执行操作。
在下面的示例中,我们使用 + 运算符将两个值相加:
int x = 100 + 50;
尽管 + 运算符通常用于将两个值相加,但它也可以用于将变量与值相加,或将变量与另一个变量相加:
int sum1 = 100 + 50; // 150 (100 + 50)
int sum2 = sum1 + 250; // 400 (150 + 250)
int sum3 = sum2
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
Java 数据类型详解与类型转换技巧的更多相关文章
- Java数据类型详解!Java秘诀,Java入门基础
Java的基本数据类型算是Java学习的基础之一,经常会听到大家提起.那么你到底有没有真正理解和掌握数据类型呢? Java 语言支持的数据类型分为两种:基本数据类型和引用数据类型!本文主要针对这两大数 ...
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. java泛型详解 1. 概述 泛型在 ...
- 【转】java 泛型详解
java 泛型详解 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. java泛型详解 ...
- 【转载】Java泛型详解
[转载]http://www.importnew.com/24029.html 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考 ...
- C++调用JAVA方法详解
C++调用JAVA方法详解 博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...
- Java虚拟机详解----JVM常见问题总结
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Java面向对象详解
Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...
- java 泛型详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能---- ...
- Java synchronized 详解
Java synchronized 详解 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 1.当两个并发线程访问同一个对象object ...
- Java Annotation详解 理解和使用Annotation
系统中用到了java注解: 查了一下如何使用注解,到底注解是什么: (1)创建方法:MsgTrace Java Class==> 在Create New Class中: name:输入MsgTr ...
随机推荐
- python基础安装虚拟环境
1.pip install virtualenv或者pip3 install virtualenv 2.在要存放虚拟环境的地方创建一个venv文件夹,用来存放所有创建的虚拟环境,方便查找与管理 3.m ...
- 【Azure 应用服务】当在Azure App Service的门户上 Log Stream 日志无输出,需要如何操作让其输出Application Logs呢?
问题描述 在Azure App Service的门户上 Log Stream 日志无输出,需要如何操作让其输出Application Logs呢? 如下图所示: 问题解答 请注意,上图中提示说:App ...
- 【Azure 应用服务】azure function powershell 调用 New-AzADServicePrincipal -DisplayName $sp -PasswordCredential $spCred
问题描述 powershell 调用New-AzADServicePrincipal -DisplayName $sp -PasswordCredential $spCred,出现如下错误: Reso ...
- 动态代码框架发布-CZGL.Roslyn
CZGL.Roslyn 开源项目位置:https://github.com/whuanle/CZGL.CodeAnalysis 基于 Roslyn 技术的 C# 动态代码构建器以及编译器,开发者可以使 ...
- OPPO 自研大规模知识图谱及其在数智工程中的应用
导读:OPPO 知识图谱是 OPPO 数智工程系统小布助手团队主导.多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答.电商搜索等场景. 本文主 ...
- deepin版的微信无法启动
我在网上找了半天的了,出现问题的原因应该是deepin-wine的问题: 既然是deepin-wine出了问题,那重装一下就好了,嗯~ 我直接,yay!结果发现有一个deepin-wine需要更新,更 ...
- 修改校准debain/manjaro的时间时钟
一次重启后发现时间竟然从上午变成了晚上!要问,我是怎么发现在的我就是发现上午的时候我的屏幕夜灯突然出现了 使用命令 sudo rm -f /etc/localtime删除本地时间文件 sudo cp ...
- 可穿戴设备主控制器芯片AMA3B 源码解析之初体验
一 背景和缘由 现在的mcu非常多,在超低功耗mcu这块,能赢得市场穿戴式设备使用的产品的确不多,以前是的是stm32 L系列,可是,随着L系列的缺货涨价和技术指标没有快速的发展,很多厂商都抛弃了 ...
- C++ 字面值的前缀和后缀
一般字符字面值用前缀,数字字面值用后缀: --C++ Primer第五版2.1.3
- 【UE虚幻引擎】干货!UE修改分辨率的3种方法
虚幻引擎作为一款实时3D创作工具,在游戏.建筑.影视动画.虚拟仿真等领域受到全球各行各业创作者广泛欢迎,在UE中获取和设置分辨率也是3D创作开发工作中的常用功能.本文介绍了在虚幻引擎中修改分辨率的3种 ...