Java-数据类型

news2024/11/24 22:37:33

数据类型

  • 数据类型
    • 基本数据类型
      • 整形
      • 浮点
      • 字符型
      • 布尔类
      • 字节
    • 引用数据类型
    • 类型转换
      • 显式转换
      • 隐式转换
      • 注意事项
    • 整型提升

作为学习Java的入门知识,在刚开始面试的几场,表现不太好的时候,就有几个面试官会问这个问题,估计此时此刻我在他们的心目中也就是这个问题的层次了吧…当然,当时由于紧张,有几个还没说出来0.0

数据类型

基本数据类型

我们总共有八大基本数据类型,按照下面的逻辑来记忆基本就不会遗漏了
在这里插入图片描述

整形

byte short int long

浮点

float double

字符型

char

布尔类

boolean

1.不论是在16位系统还是32位系统,每个数据类型所占用的字节大小都是固定的
2.整形和浮点型都是带有符号的,写成二进制的格式的话,第一位就是符号位
3.整型默认为int型,浮点型默认为double

字节

字节是计算机中表示空间大小的基本单位.
一字节==八比特
我们平时的计算机为 8GB 内存, 意思是 8G 个字节.
其中 1KB = 1024 Byte, 1MB = 1024 KB, 1GB = 1024 MB.
所以 8GB 相当于 80 多亿个字节
这里的估算是有小技巧的,我们只需要认为三个零就往前进一位即可.

引用数据类型

在Java的世界里,没有办法像C语言那样拿到地址这么底层的东西,但是我们使用引用这个类似地址的概念加以使用.
八大基本数据类型对应的包装来,后面要学习的字符串,数组,枚举…这些都要应用到引用!

类型转换

有些时候我们需要实现数据类型之间的切换,Java中就给出了一套规则

显式转换

        int a = 10;
        double b = 20;
        a = (int) b;

显式类型转换也可以叫做强制类型转换,我们加上了一个(类型)来实现了大赋值给小这样的一个危险操作.
在这里插入图片描述
Java是一个强安全的语言,当我们不做处理地想把八个字节的浮点类型赋值给4个字节的int类型时,就会有这样的报错提示.

隐式转换

隐式转换就是不加以()进行强制类型转换:

        int a = 10;
        double b = 20;
        b = (double) a;

像我们之后学习到包装类的装包拆箱的时候,要知道这不过就是换了个皮肤,本质还是类型转换.

        Integer A = 10;
        a = A;

注意事项

  1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型,
    因为大杯的水往小杯里面灌,总会有溢出来的,这就会造成数据的缺失!

  2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失
    要知道在Java里面1.1*1.1可不是简简单单的1.21哦:
    在这里插入图片描述
    我们在C语言里面学过,其实我们是没有办法精确表示一个小数的,只能够无限逼近,在Java中也是这个道理!

  3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
    如果我们要赋的这个值超过了我们给的数据类型,连编译都不会给你通过:
    在这里插入图片描述

  4. 强制类型转换不一定能成功,不相干的类型不能互相转换:
    就比如布尔类型就不能和别的类型进行任何运算.

整型提升

  1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
    当然了,如果我们给的是byte = 1;这样的语句是没有关系的,因为还没有超过byte的最大值!
  2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

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

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

相关文章

Linux网络服务之自动装机(PXE+KICKSTART)详解

自动装机 一、启动操作系统的方式1.1 系统装机的三种引导方式1.2 系统安装过程1.3 三大文件1.4 如何实现自动装机? 二、PXE2.1 PXE的简介和优点2.2 实现PXE的前提条件2.3 PXE实现过程2.5 要安装的服务2.6 实现PXE2.6.1 前置准备2.6.2 安装并配置DHCP2.6.3 安装并配置…

Nginx负载均衡搭建

目录 1、准备一台装有nginx服务的主机 2、所需模块说明: 3、两台Web服务器主机 4、 修改nginx的配置文件 5、查看结果: 1、准备一台装有nginx服务的主机 LVS—DR集群的搭建_.98℃的博客-CSDN博客 2、所需模块说明: Nginx http 功能模…

【音视频】vms布署说明

目录 外场布署场景(99%) 研发实验场景(1%) 高级玩法 证书安装方法 外场布署场景(99%) 下面两种场景,为本产品主要应用场景,2023-08-08日后(统一所有证书)…

入门平台工程的福音,麦肯锡刚发布了平台工程蓝图

在软件开发和工程效能领域,平台工程 (Platform Engineering) 是继 DevOps 后逐渐兴起的主流概念。平台工程,顾名思义,就是通过组合一系列标准化的软件开发工具,构建起一个标准化的研发平台。目标则是为了提高开发者体验和生产力。…

构建Docker容器监控系统 (1)(Cadvisor +InfluxDB+Grafana)

目录 Cadvisor InfluxDBGrafana 1. Cadvisor 2.InfluxDB 3.Grafana 开始部署: 下载组件镜像 创建自定义网络 创建influxdb容器 创建数据库和数据库用户 创建Cadvisor 容器 准备测试镜像 创建granafa容器 访问granfana 添加数据源 Add data source 新建 …

python接口自动化之自动发送测试报告邮件

前言 ​ SMTP(Simple Mail Transfer Protocol)也就是简单邮件传输协议,是一种提供可靠且有效电子邮件传输的协议。python的smtplib模块就提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。 ​ python发邮件主…

四 、Mysql 开发

四 、Mysql开发 102 可以使用MySQL直接存储文件吗? 可以使用 BLOB (binary large object),用来存储二进制大对象的字段类型。 TinyBlob 255 值的长度加上用于记录长度的1个字节(8位) Blob 65K值的长度加上用于记录长度的2个字节(16位) MediumBlob 16M值…

AutoJS自定义悬浮菜单(附完整代码)

我们在开发Autojs脚本时,需要使用到悬浮窗功能来控制脚本。那么到底要如何来做呢?今天给大家分享一些,先来看看效果: 调整移动和贴边。 防止滑出屏幕 附上完整代码 var storage storages.create("日赚3万_短视频合集&quo…

以Java的方式将文件上传到阿里云OSS

文章目录 1. 开通对象存储服务2. 创建 AccessKey 密钥3. 通用代码实现 1. 开通对象存储服务 控制台 → 对象存储 OSS → 立即开通 Bucket列表 → 点击创建 Bucket 填写名称、地域,名称创建后不可修改,地域选择最近的,存储类型选择标准存储&…

OpenCV: 对“google::protobuf::internal::Release_CompareAndSwap”的未定义

解决办法: 需要在文件 protobuf/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h 中的以下补丁 inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr, Atomic64 old_value, …

Ajax-AJAX请求的不同发送方式

🥔:你一定能成为想要成为的人 发送AJAX请求不同方式 发送AJAX请求不同方式1、jQuery发送AJAX请求2、axios发送AJAX请求(重点)3、fetch发送AJAX请求 发送AJAX请求不同方式 1、jQuery发送AJAX请求 首先需要jquery的js文件&#xf…

Linux shell yes命令(不停输出换行的y)(不停输出换行的指定字符串)(脚本自动确认y)

文章目录 yes命令功能doc文档英文中文翻译完整文档 示例应用案例自动为脚本多次确认y yes命令功能 yes命令可以不断地输出换行的指定字符串,不加参数时,不断输出换行的“y”,有时我们需要执行一些需要用户键入“y”确认的脚本,但…

挖掘Java集合:深入探索List接口与HashSet

文章目录 引言LinkedList:双向链表的实现构造方法LinkedList中的常用方法HashSet:无序且唯一的集合HashSet的实现方式LinkedHashSet:有序且唯一可变长度参数结论 引言 在广阔的Java编程领域中,集合就如同宝库,提供了多…

Clickhouse学习系列——一条SQL完成gourp by分组与不分组数值计算

笔者在近一两年接触了Clickhouse数据库,在项目中也进行了一些实践,但一直都没有一些技术文章的沉淀,近期打算做个系列,通过一些具体的场景将Clickhouse的用法进行沉淀和分享,供大家参考。 首先我们假设一个Clickhouse数…

python基础3——流程控制

文章目录 一、操作符1.1 比较操作符1.2 逻辑操作符1.3 成员操作符1.4 身份操作符 二、流程控制2.1 条件判断2.2 循环语句2.2.1 for循环2.2.2 while循环 2.3 continue与break语句2.4 文件操作函数 三、函数3.1 定义函数3.2 作用域3.3 闭包3.4 函数装饰器3.5 内建函数 一、操作符…

一文看懂 D类数字功放原理及应用

他V hezkz17进数字音频系统研究开发交流答疑群(课题组) D类放大器工作在开关状态,作为控制元件的晶体管本身消耗功率较低,功放的效 率就高,可达 90%以上,因此能较大地降低能源损耗,减小放大器体积。D 类音 频功率放大器…

面试热题(最长上升子序列)

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 输入&#xff1…

Docker容器监控(Cadvisor +Prometheus+Grafana)

环境部署,接着上一篇文章Docker容器部署(Cadvisor InfluxDBGrafana)开始 目录 1、先清理一下容器 2、部署Cadvisor 3、访问Cadvisor页面 4、部署Prometheus 5、准备配置 6、运行prometheus容器 7、访问prometheus页面 8、部署Grafan…

录屏怎么录声音?很简单,轻松操作!

“录屏的时候怎么把声音录进去呀?今天用手机录了一段视频,录完后打开却发现没有声音,真的服了,录了好久了,有没有人知道怎么才能录制声音呀?” 录屏是一种非常实用的技术,可以帮助我们记录屏幕…

PHPstudy配置伪静态步骤,tp5.1的框架

搜索mod_rewrite.so&#xff0c;然后去掉前面的#&#xff08;即放开注释&#xff09; 2.找到index.php 同级文件.htaccess&#xff08;没有就新建&#xff09; 这些是tp5.1自带的内容&#xff0c;把它注释掉&#xff0c;是错误的内容&#xff0c;添加下面的这段配置 #<If…