阿药陪你学Java(第零讲)

第零讲:基本数据类型

Java包括两种数据类型,分别是内置数据类型(基本数据类型)和引用数据类型

内置数据类型

Java提供了8中内置类型,其中包括4种数字整型、2种数字浮点型、1中字符型、1中布尔型。下面进行详细介绍:

类型长度范围默认值其它
byte8位-128 ~ 1270有符号;可以替代int类型整数用于大型数组中,好处是可以节约空间
short16位-2^15 ~ 2^15-10像byte一样,可以替代int类型整数使用节约空间
int32位-2^31 ~ 2^31-10最常用的整型,一般整型变量默认位int类型
long64位-2^63 ~ 2^63-10L主要用在需要比较大的整数时;**注意:**定义常量时数值结尾需要加L(或小写l,推荐使用大写,易于与1进行区分)
float32位-0.0f存储大型浮点数组的时候相较于double可以节约空间;**注意:**不能表示精确的值,如货比;定义常量时结尾需要加f
double64位-0.0d同float类型一样不能表示精确的值,定义常量时结尾可以不加d
boolean-true/falsefalse表示一位的信息,做为一种标志记录
char16位\u0000 ~ \uffff‘\u0000’可以存储任何字符,范围转换为数值即为0 ~ 65535
扩展

问:boolean类型的长度?

如果boolean是单独使用:boolean占4个字节。

如果boolean是以boolean数组的形式使用:boolean占1个字节。

实战

除布尔类型外其它7种类型都可以通过其包装类(这个后面会介绍)打印他们的位数、范围等,无需强制记忆。

示例:
public class Demo {public static void main(String[] args) {// intSystem.out.println("基本类型:int 二进制位数:" + Integer.SIZE);  System.out.println("包装类:java.lang.Integer");  System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  }
}输出:
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647
引用类型

在Java中引用类型指向一个对象,指向对象的变量就是引用变量。引用类型的变量类似C/C++中的指针,变量保存的是对象的地址。

字符串、数组、对象等都是引用类型,默认值为null。注意:对象使用前一定要初始化,否则会出现空指针(几乎是每个程序员必然遇到的问题)。

示例:
public class Demo {public static void main(String[] args) {//变量类型    变量名称    指向     创建的对象Demo         demo       =       new Demo();}
}
类型转换

低 -----------------------------------------------------> 高

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

类型转换包括自动类型转换和强制类型转换两种,自动类型转换是从低到高,而强制类型转换是从高到低。

示例:
char ch = 'a'
int a = ch; // 变量a的最终值为97,char类型自动转换为int类型
char ch1 = (char) a; // 变量ch1的最终值为'a',int类型强制转换成char类型 

数据类型的转换要满足如下规则:

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

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

示例:
String str = new String("abc");
Object obj = (Object) str; // 可以,因为Object是String的父类
Integer num = (Integer) str; // 不可以,Integer与String无关
  1. 由高向低转换时需要采用强制类型转换,且转换过程中如果超出低类型范围会导致溢出。
示例:
int a = 128;
short b = (short) a; // short类型最大值为127,这里会出现溢出,变量b最终为-128
  1. 浮点数在向整数进行转换时会舍弃小数部分
示例:
float a = 1.23f;
int b = (int) a; // 变量b最终为1

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

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

相关文章

Python防止打包后的exe重复执行

文章目录 一、前言二、实现方法三、代码四、执行结果五、相较于其他方式的优点一、前言 pyinstaller打包的exe如果被连续点击的话,会启动多个程序,对于复杂的程序来说,同时运行可能会造成严重的后果,因此需要一个程序锁,保证单次仅启动一个exe。 二、实现方法 利用 sqli…

React 快速入门:掌握前端开发的核心技能

React 快速入门:掌握前端开发的核心技能 一、React 简介1.1 React 的历史1.2 React 的概念1.3 React 的特点1.4 React 的官网地址 二、开发环境搭建三、React 基础3.1 JSX3.2 组件3.3 Props3.4 State3.5 props 和 state 的区别3.6 Hook 四、React 生命周期五、添加样…

golang context

作用:用于在go协程中 传递上下文、超时、取消、传值 底层实现:是由互斥锁、channel、map来实现的 互斥锁:保护临界资源 channel: 用于信号通知,比如ctx.Done() map: 保存父ctx下派生的所有子ctx, 父ctx关闭,子ctx都关…

Redis Pipelining 底层原理分析及实践

作者:vivo 互联网服务器团队-Wang Fei Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。在遇到批处理命令执行时,Redis提供了Pipelining(管道)来提升批处理性能。本文结合实践分析了Spring Boot框架下Redis的Lettuce客户端和Redisson客户端对…

linux c多线程简单队列实现

编译环境:Ubuntu16.04 64位 交叉编译工具:arm-hisiv500-linux-gcc 文章目录 1. 背景2. 涉及的函数3. 头文件JList.h4. 类的实现 1. 背景 最近项目中需要用到多线程通信,自己造个轮子吧,对照上一篇linux c共享内存和信号量。 2. …

python如何学习数据分析

学习使用 Python 进行数据分析是一个循序渐进的过程,需要掌握基本的 Python 编程技能,并了解数据处理、数据可视化和常用的数据分析工具和库。以下是学习 Python 数据分析的步骤和建议: 1. 掌握 Python 编程基础 在开始学习数据分析之前&am…

Unity构建详解(7)——AssetBundle格式解析

【文件格式】 文件可以分为文本文件、图片文件、音频文件、视频文件等等,我们常见的这些文件都有行业内的标准格式,其意味着按照一定的规则和规范去保存读取文件,可以获取我们想要的数据。 有些软件会有自己的文件格式,会按照其…

神经网络和反向传播算法

1. 理解神经网络的基础 开始于感知器:首先理解感知器(Perceptron)模型,这是最简单的神经网络形式。感知器接收多个输入,通过加权和并应用激活函数来产生输出。这为理解更复杂的神经网络奠定了基础。多层网络&#xff…

风储微网虚拟惯性控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 风储微网虚拟惯性控制系统simulink建模与仿真。风储微网虚拟惯性控制系统是一种模仿传统同步发电机惯性特性的控制策略,它通过集成风力发电系统、储能系统和其他分…

rk3588 安卓13 应用安装白名单的接口

文章目录 概述一、app应用安装白名单核心代码二、app应用安装白名单核心功能分析三、代码实战1.先导入所需要的包2.添加获取白名单方法3.添加限制白名单方法4.上层使用PS:查看当前白名单 总结 概述 在13.0系统rom定制化开发中,客户需求要实现应用安装白名单功能&am…

如何动态渲染HTML内容?用v-html!

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【AcWing】蓝桥杯集训每日一题Day26|分解质因数|试除法|3377.约数的个数(C++)

3377.约数的个数 3377. 约数的个数 - AcWing题库难度:简单时/空限制:1s / 64MB总通过数:3529总尝试数:6834来源:清华大学考研机试题算法标签数学知识约数试除法因式分解 题目内容 输入 n 个整数,依次输出…

Ceph学习 -8.认证管理-用户基础

文章目录 1.用户基础1.1 基础知识1.2 简单实践1.3 小结 1.用户基础 学习目标:这一节,我们从基础知识、简单实践、小结三个方面来学习。 1.1 基础知识 简介 Ceph集群管理员能够直接在Ceph集群中创建、更新和删除用户 注意:创建用户时&#x…

计算机网络知识等汇总补充

计算机网络知识汇总补充 一、四次挥手1、为什么TCP要等待2MSL2、如果说一个系统中,有大量的time_wait和close_wait,会是什么原因? 二、你是怎么解决粘包问题?三、你觉得哪些场景适合redis四、redis的持久化策略五、你会怎么保证my…

4-云原生监控体系-Grafana-基本使用

1. 介绍 使用Grafana,您可以通过漂亮、灵活的仪表板创建、探索和共享所有数据。查询、可视化、提醒和理解您的数据,无论数据存储在何处。 图片出处: https://grafana.com/grafana/ 官方网站 2. 界面介绍 Connections 可以配置数据源&#x…

自动驾驶感知场景挖掘

目录 前言 1. 目标检测与跟踪 2. 语义分割 3. 环境建模 4. 场景理解与预测 5. 异常检测与处理 总结 前言 自动驾驶感知场景挖掘是指利用传感器和算法技术,对车辆周围的环境进行实时监测和理解。这种技术可以识别和分析道路、车辆、行人、交通标志等各种元素…

php-redis windows ,pecl 已经不维护了,解决方案:php 8.2 | 8.3+ redis extension windows

从论坛上pecl 已经不维护了,直接让大家到ci 去下载 https://stackoverflow.com/questions/76496488/redis-dll-not-found-for-php8-2/76496489#76496489 让我们找最新的一次commit ,然后又action 构建,再下载,这样的话也好&#…

Redis从入门到精通(十三)Redis分布式缓存(一)RDB和AOF持久化、Redis主从集群的搭建与原理分析

文章目录 第5章 Redis分布式缓存5.1 Redis持久化5.1.1 RDB持久化5.1.1.1 执行时机5.1.1.2 bgsave原理 5.1.2 AOF持久化5.1.2.1 AOF原理5.1.2.2 AOF配置5.1.2.3 AOF文件重写 5.1.3 RDB和AOF的对比 5.2 Redis主从5.2.1 搭建主从结构5.2.2 主从数据同步原理5.2.2.1 全量同步5.2.2.…

集群开发学习(一)(安装GO和MySQL,K8S基础概念)

完成gin小任务 参考文档: https://www.kancloud.cn/jiajunxi/ginweb100/1801414 https://github.com/hanjialeOK/going 最终代码地址:https://github.com/qinliangql/gin_mini_test.git 学习 1.安装go wget https://dl.google.com/go/go1.20.2.linu…

【Ubuntu】 Github Readme导入GIF

1.工具安装 我们使用 ffmpeg 软件来完成转换工作1.1 安装命令 sudo add-apt-repository ppa:jonathonf/ffmpeg-3sudo apt-get updatesudo apt-get install ffmpeg1.2 转换命令 (1)直接转换命令: ffmpeg -i out.mp4 out.gif(2) 带参数命令&…