3、java入门教程【数据类型】

news2024/12/28 9:22:10

一、概述

java中数据类型分为两大类:【基本数据类型】和【引用数据类型】

image-20230715145246736

二、基础数据类型

数据类型含义默认值取值范围存储大小(字节)
整型byte字节型0-128 到 1271
整型short短整型0-2^15 到 2^15-12
整型int【默认】整形0-2^31 到 2^31-14
整型long长整型0L-2^63 到 2^63-18
浮点型float单浮点型0.0f1.4e-45 到 3.4e+384
浮点型double【默认】双浮点型0.0d4.9e-324 到 1.798e+3088
字符型char字符型‘u0000’‘\u0000’ 到 ‘\uFFFF’2
布尔型boolean布尔型false0(false) 到 1(true)1

需要注意的是,在实际开发过程中,整形的默认类型是int,浮点型的默认类型是double

package com.itfeiniu.hello;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
        byte b = 100;
        short s = 20;
        int i = 30;
        long l = 452422421123L;//长整型赋值时,值的最后需要添加L/l符号

        float f = 3.14f;//浮点型赋值时,值的最后需要添加F/f符号
        double d = 56.45;

        char ch1 = 'a';
        char ch2 = '中';
        char ch3 = 'A';
        int ch4 = ch3;

        boolean be = true;

        System.out.println(ch4);
    }
}

任何数字的默认类型是int类型,下面452422421123其实没有超过long的范围,但是已经超过了int的范围,所以如果最后没有添加l/L,那么默认会认为是int类型,则会因为超出范围而报错。

long l = 452422421123L;//长整型赋值时,值的最后需要添加L/l符号

所有带小数点的浮点数默认都是double类型,所以当前把double类型的小数赋值给float,则会报错,需要在最后加上f/L声明小数是个单精度float类型。

float f = 3.14f;//浮点型赋值时,值的最后需要添加F/f符号

三、引用类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site("Runoob")

四、类型转换

1、自动类型转换

整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。

类型范围小的变量,可以直接复制给类型范围大的变量。这里的范围是指取值范围,而不是内存的存储大小。

具体规则如下:

------------------------------------>byte,short,char> int> long> float> double 

可以看到,long占用8个字节,但是取值范围比float小,所以long还是可以赋值给float类型。

下面是演示short可以转换为int,但是却不能赋值给byte。

short a = 10;
byte b = a;	//提示报错
int c = a;	//正常

数据类型转换必须满足如下规则:

  1. 不能对boolean类型进行类型转换。

  2. 不能把对象类型转换成不相关类的对象。

  3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

  4. 转换过程中可能导致溢出或损失精度,

2、强制类型转换

  1. 条件是转换的数据类型必须是兼容的。

  2. 格式:(type)value type是要强制类型转换后的数据类型 实例:

int i1 = 123;
byte b = (byte) i1;//强制类型转换为byte
byte c = i1;	//报错

3、表达式的自动类型转换

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。

byteshortchar->int->long->float->double

注意事项:

  • 表达式的最终结果类型由表达式中的最高类型决定。
  • 在表达式中,byteshortchar是直接转换成int类型参与运算的。
byte a = 10;
int b = 20;
double c = 30.0;
double d = a + b + c;
System.out.println(d);
//输出:60.0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TMS Scripter v7.28 for Delphi

TMS Scripter v7.28 for Delphi 使用本地Pascal或Basic脚本以及带有可视化表单设计器、对象检查器等的完整IDE(集成开发环境),为您的应用程序添加终极灵活性和强大功能。通过在您的应用程序中构建脚本支持,您可以在应用程序中提供高度的可配置性、灵活性…

fiddler抓取,Android真机测试

1.配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的,需要进行相应的配置。 打开Fiddler,选择“Tools->Fiddler Options...” 2.在弹出的对话框中选择“HTTPS”选项卡: 3.勾选“Capture HTTPS CONNECTs”,接着勾选…

Elisp之获取绝对路径和相对路径(二十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

Javascript 如何实现继承?

简单来说 js 实现继承的方式有很多种,比如 原型链继承、借用构造函数继承、组合继承、寄生继承、寄生组合继承、ES6 新增的 extends 继承一般我开发中用的比较多的就是 原型链继承 还有 class 类函数继承。 其他的基本用得少,主要是平时看一些技术博客类…

MySql 知识大汇总

目录 一、常用的数据类型 二、数据库索引 什么是数据库索引 索引的作用 索引是否越多越好 索引的分类 三、sql语句 插入 更新 删除 查询 普通查询 子查询 连表查询 四、常用的一些函数 group by 分组 order by 排序 HAVING 子句 根据条件…

5、传输层UDP28

传输层:负责俩端之间的数据传输(TCP&UDP) UDP协议:协议格式(协议实现)、协议特性、编程影响 一、协议格式(协议实现) 面试:传输层的数据结构是什么? 就是…

1.计算机系统概述

1.1 计算机发展历程 1.1.1计算机硬件的发展 1.逻辑元件的四代变化: 电子管->晶体管->中小规模集成电路->超大规模集成电路 第四代计算机时代产生了微处理器,是微型计算机发展的标志。 2. 计算机元件的更新换代 如半导体存储器、微处理器都在不断…

IDEA配置maven国内源

这里写目录标题 前言注意第一步 前言 为什么要配置maven国内源, 因为如果不配置国内源,一个是依赖加载速度过慢, 另一个是可能会导致创建spring / Springboot创建失败,或者是在maven项目中引入jar包失败,从而导致项目运行失败 注意 配置要配置俩次 第一步 选择settings …

【复习8-9天内容】【我们一起60天准备考研算法面试(大全)-第十三天 13/60】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

数字检测Y8S

【免费】数字检测Y8S,只需要OPENCV-深度学习文档类资源-CSDN文库 采用YOLOV8训练,得到PT模型,然后直接转ONNX,使用OPENCV的DNN,不需要其他依赖,支持C/PYTHON

【CodeWhisperer】 亚马逊AI辅助代码生成工具

Amazon CodeWhisperer 定价 Amazon CodeWhisperer 直接在集成式开发环境 (IDE) 中为开发人员提供实时代码建议。个人开发人员可以免费使用 CodeWhisperer。组织为使用 CodeWhisperer 按“每位用户每月”支付固定的订阅费,无需预付费用或长期承诺。 CodeWhisperer 提…

Docker安装tomcat

docker hub上面查找tomcat镜像 docker search tomcat 从docker hub上拉取tomcat镜像到本地 docker pull tomcat docker images查看是否有拉取到的tomcat docker images 使用tomcat镜像创建容器实例(也叫运行镜像) docker run -d -p 8080:8080 tomcat 说明 -p 小写,…

GPipe:微批量流水线并行

论文标题:GPipe: Easy Scaling with Micro-Batch Pipeline Parallelism论文链接:https://arxiv.org/abs/1811.06965论文来源:Google 一、概述 如下图所示,近过去十年中,由于开发了促进神经网络有效容量扩大的方法&…

【Unity3D】伽马校正

1 伽马相关概念 1.1 人眼对亮度变化的感知 人眼对亮度变化的感知不是线性的,如下图,人眼对亮区的亮度变化不太敏感,对暗区的亮度变化较敏感。另外,我们可以想象一下,在一个黑暗的房间里,由 1 根蜡烛到 2 根…

【改进粒子群优化算法】基于惯性权重和学习因子动态调整的粒子群算法【期刊论文复现】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

面试题之MySQL事物的特性

在关系性数据库管理系统配置,一个逻辑工作要成为事物,必须要满足4个特性,即所谓的ACID:原子性(Atomicity),一致性(Consistency)、隔离性(lsolation)和持久性(Durability)。 原子性: 原子性:事物作为一个整体被执行,包含在其中对…

Redis - 为什么我要来安利你学习 Redis ?

目录 前言 一、Redis 的特性(优点) 1. Redis 是在内存中存储数据的 2.可编程性 3.可扩展性 4.持久化 5.支持集群 6.高可用 二、Redis 为什么快? 三、 Redis 使用场景 优势场景 1.将 Redis 当作数据库 2.作为缓存和存储 session …

【数据分享】1929-2022年全球站点的逐日平均压力数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、能见度等指标,说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 对于具体到监测站点的气象数据,之前我们分享过1929-2022年全球气象…

【LeetCode每日一题合集】2023.7.10-2023.7.16(dfs 换根DP)

文章目录 16. 最接近的三数之和排序 双指针 1911. 最大子序列交替和解法——动态规划 2544. 交替数字和(简单模拟)931. 下降路径最小和(线性DP)979. 在二叉树中分配硬币⭐⭐⭐⭐⭐(dfs)算法分析补充&#…

PWM呼吸灯+流水灯设计

完成任务: 在流水灯基础上加入pwm呼吸灯设计,关于pwm呼吸灯设计可以看博主上一篇博客PWM呼吸灯设计 ,开发板上灯每两秒进行一次切换,每一个的亮灭间隔为一秒。 代码参考: module pwm_led_change(input wire …