Java 数据类型

一 Java 的数据类型

Java数据类型

二 整数类型

类型占用存储空间范围
byte[字节]1字节-127~127
short[短整型]2字节-215~215-1 即 -32768~ 32767
int[整型]4字节-231~231-1 即 -2147483648~2147483647
long[长整型]8字节-263~263-1

字节 byte是计算机存储单位的基本单元,通常由8个比特(bit)组成。每个比特可以表示0或1。

整型在java中的使用
byte n1 = 1;
short n2 = 2;
int n3 = 3;
long n4 = 4;
整型的细节
  • Java各整数类型有固定的范围和字段长度,不受具体OS[操作系统]的影响,以保证java程序的可移植性。
  • Java的整型常量(具体值)默认为int型,声明long型常量须后加lL
  • Java程序中变量常声明为int型,除非不足以表示大数,才使用long
  • bit: 计算机中的最小存储单位。byte:计算机中基本存储单元,1byte =8 bit。

思考

  1. byte / short / int / long 分别有多少字节?
    byte 8个字节
    short 16个字节
    int 32个字节
    long 64 个字节
byte n1 = 3;
int n2 = 4;

在内存中的的表现形式:
内存占用

三 浮点型

Java 的浮点类型可以表示一个小数, 比如 123.4 , 7.8 , 0.12 等等

类型占用存储空间范围
单精度 float4字节-3.403E38~3.403E38
双精度 double8字节-1.798E308~1.798E308

E通常表示指数形式。例如,1.798E308表示1.798乘以10的308次方,而-1.798E308表示-1.798乘以10的308次方。

说明:

  1. 浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位
  2. 尾数部分可能丢失, 造成精度损失(小数都是近似值)。
浮点型在java中的使用
// float n1 = 3.14; 错误写法
float n1 = 3.14F;
double n2 = 3.14;
浮点型细节
  • Java 的浮点型常量(具体值)默认为double型,声明float型常量,须后加fF
  • 浮点型常量有两种表示形式
    • 十进制数形式:如:5.12 5.12.0f .512(必须有小数点)
    • 科学计数法形式:如:5.12e2 [5.12*10的2次方] 5.12E-2 [5.12/10的2次方]
  • 通常情况下,应该使用double型,因为它比float型更精确。
  • 浮点数使用陷阱: 比较 2.7 和 8.1/3 的结果是否相等
		double n1 = 2.7;
        double n2 = 8.1 / 3;
        System.out.println("n1="+n1);
        System.out.println("n2="+n2);

输出结果:
n1=2.7
n2=2.6999999999999997  // 接近 2.7 的一个小数, 而不是 2.7

当我们对运算结果是小数的进行相等判断是, 要小心应该是以两个数的差值的绝对值, 在某个精度范围类判断

// 错误写法
if( n1 == n2) {
	System.out.println("num11 == num12 相等");
}

// 正确写法
if(Math.abs(num11 - num12) < 0.000001 ) {
	System.out.println("差值非常小,在规定精度范围内,认为n1 和 n2 相等...");
}

如果是直接查询得的的小数或者直接赋值, 可以判断相等

四 字符型

字符类型可以表示单个字符,字符类型是 char, char 是两个字节(可以存放汉字), 多个字符我们用字符串 String

字符型细节
  • 字符常量必须使用单引号引起来,不能使用双引号,否则会报错,双引号认为是字符串。
  • Java中还允许使用转义字符来将其后的字符转变为特殊字符型常量。例如:char c3 = '\n'; // '\n'表示换行符
  • 在java中,char的本质是一个整数,在输出时,是unicode码 1 对应的字符。
  • 可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出[100]
  • char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码
public class CharDetail {
    public static void main(String[] args) {
        
        // 1.字符常量必须使用单引号引起来,不能使用双引号,否则会报错,双引号认为是字符串。
        char c1 = '中';
        // 2.Java中还允许使用转义字符来将其后的字符转变为特殊字符型常量。例如:char c3 = '\n'; //'\n'表示换行符

        // 3.在java中,char的本质是一个整数,在输出时,是unicode码对应的字符。
        // http://tool.chinaz.com/Tools/Unicode.aspx
        char c2 = 98;
        System.out.println(c2);

        char c3 = 'b';
        System.out.println((int)c3);

        char c4 = '龙';
        System.out.println((int)c4);

        char c5 = 40857;
        System.out.println(c5);
        // 4.可以直接给char赋一个整数,然后输出时,会按照对应的unicode字符输出[97]

        // 5.char类型是可以进行运算的,相当于一个整数,因为它都对应有Unicode码.
        System.out.println('a'+10); //107

        char c6 = 'b' +1;
        System.out.println((int)c6); // 99
        System.out.println(c6); // c
    }
}

五 布尔型

.布尔类型也叫boolean类型,booolean类型数据只允许取值true和false,无null

布尔型细节
  • boolean类型占1个字节。
  • booolean类型数据只允许取值true和false
  • boolean 类型适于逻辑运算,一般用于程序流程控制
public class Bollean {
    public static void main(String[] args) {
        // 判断成绩是否通过
        boolean isPass = false;
        if (isPass == true){
            System.out.println("考试通过,恭喜");
        } else {
            System.out.println("考试没有通过,下次努力哦~");
        }
    }
}

  1. http://tool.chinaz.com/Tools/Unicode.aspx ↩︎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis: 集群

文章目录 一、单点Redis的问题二、主从架构1、概述2、集群结构3、主从数据同步原理&#xff08;1&#xff09;全量同步&#xff08;2&#xff09;增量同步 4、总结&#xff08;1&#xff09;全量同步和增量同步的区别&#xff08;2&#xff09;什么时候执行全量同步&#xff08…

面试经典150题——跳跃游戏 II

面试经典150题 day10 题目来源我的题解方法一 动态规划方法二 贪心 题目来源 力扣每日一题&#xff1b;题序&#xff1a;45 我的题解 方法一 动态规划 动态规划&#xff0c;当j位置可达i位置时&#xff1a;dp[i]Math.min(dp[i],dp[j]1); 时间复杂度&#xff1a;O( n 2 n^2 n…

SpringBlade dict-biz/list SQL 注入漏洞复现

0x01 产品简介 SpringBlade 是一个由商业级项目升级优化而来的 SpringCloud 分布式微服务架构、SpringBoot 单体式微服务架构并存的综合型项目。 0x02 漏洞概述 SpringBlade 后台框架 /api/blade-system/dict-biz/list 路径存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞…

chromedriver最新版下载地址

地址1.百度网盘 链接(提取码&#xff1a;2vo3)&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com…

微信域名防封/QQ域名防封/域名状态检测/域名防红防封API平台源码

下载地址&#xff1a;API平台源码 这套源码是使用thinkphp3.1.3开发的&#xff0c;可以在PHP5.3-5.6下运行&#xff0c;程序是有一点老了&#xff0c;但是思路仍在&#xff01;然后&#xff0c;这套源码我已经成功搭建起来了&#xff0c;后台、个人&#xff08;用户&#xff0…

基于Material Design风格开源、易用、强大的WPF UI控件库

前言 今天大姚给大家分享一款基于Material Design风格开源、免费&#xff08;MIT License&#xff09;、易于使用、强大的WPF UI控件库&#xff1a;MaterialDesignInXamlToolkit。 项目介绍 MaterialDesignInXamlToolkit 是一个开源、易于使用、强大的 WPF UI 控件库&#x…

【opencv】示例-videocapture_starter.cpp 从视频文件、图像序列或连接到计算机的摄像头中捕获帧...

/** * file videocapture_starter.cpp * brief 一个使用OpenCV的VideoCapture与捕获设备&#xff0c;视频文件或图像序列的入门示例 * 就像CV_PI一样简单&#xff0c;对吧&#xff1f; * * 创建于: 2010年11月23日 * 作者: Ethan Rublee * * 修改于: 2013年4月17日 * …

mysql 查询实战3-解答

对mysql 查询实战3-题目&#xff0c;进行一个解答 11、查询每⽉产品交易与退款情况 目标&#xff1a;查询每⽉产品交易&#xff08;交易总额&#xff0c;交易数&#xff09;与退款情况&#xff08;退款总额&#xff0c;退款数&#xff09; 1&#xff0c;先把日期格式化 使用 E…

Savina Mx 高級的無塵擦拭布系列產品,吸水吸油性極強,不磨損原件

Savina Mx是日本KBSEIREN株式會社&#xff08;原KANEBO&#xff09;開發的目前*高級的無塵擦拭布系列產品&#xff0c;吸水吸油性極強&#xff0c;不磨損原件。廣氾用於光學鏡頭製造&#xff0c;辦公器材保養&#xff0c;10級以上的無塵車間淨化室&#xff0c;半導體生產線車間…

美易官方:以色列袭击伊朗!原油、黄金走势上涨?

以色列突然袭击伊朗的消息震惊了全球市场&#xff0c;引发了一场原油和黄金价格的飙升。这一事件不仅令投资者感到紧张&#xff0c;也引发了国际社会对于中东地区紧张局势的担忧。 以色列此次袭击的目标据说是伊朗的一处军事基地&#xff0c;据称该基地涉及到伊朗的核武器研发计…

Network: wirehark: 解包问题:乱序重组

如果一个大的TCP数据被分成几个segment&#xff0c;而每个segment如果走的路由途径不同的化&#xff0c;会导致下面这个解析上错误。从下面这个图里看&#xff0c;第一片和第二片的顺序的&#xff0c;但是第三片跑到了第二片的前面&#xff0c;wirehark就解析不出来了&#xff…

安卓apk文件签名

一、环境准备 链接: https://pan.baidu.com/s/1D3WxIL5M5ewyFNTqJzARPw 提取码: pd6w 上篇博文编译的apk文件 1、docker build -t android-build:v1.0.1 . 直接制作镜像 2、docker run -it android-build:v1.0.1 /bin/bash 运行进入容器 指定sdk的路径&#xff0c;然后直接…

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装&#xff0c;标准模式 换华为镜像源 更换华为镜像站&#xff0c;加速下载&#xff1a; sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…

使用Termux在Android设备上编译运行SpecCPU2006

Spec CPU 2006 的使用说明&#xff08;曲线救国版&#xff09; 因本部分实验用到的Spec CPU2006依赖于多个编译工具包&#xff0c;因此对源码的编译要在配置好环境的Linux设备上运行&#xff0c;根据实验发现&#xff0c;现有的环境&#xff08;包括adb和termux&#xff09;都不…

通过实例学C#之FileStream类

简介 可以通过此类进行文件读取。 首先在项目所在文件夹的Bin文件中新建一个test.txt文件&#xff0c;里面输入内容“hello world!”。 构造函数 FileStream (string path, FileMode mode&#xff0c;FileAccess access) 通过路径文件path&#xff0c;打开文件模式mode以及读写…

Arcgis Pro2.5安装教程(内含安装文件)

​最近处理的数据量大&#xff0c;发现arcmap这种老产品属实是不行了&#xff0c;相比于下一代的Arcgis Pro,不但运行速度慢&#xff0c;也容易遇到突然关闭的问题&#xff0c;之前基于团队的选择也没办法&#xff0c;最近实在是被数据搞得无语了&#xff0c;一鼓作气装上了Arc…

Java序列流和打印流、对象序列化

目录 1、序列流 1.1 SequenceInputStream 1.2 案例:切割mp3并合并 2、 对象的序列化 2.1 ObjectOutputStream与ObjectInputStream 2.2 Serializable 3、Properties. 4、打印流 4.1 PrintStream 5、操作基本数据类型的流对象 5.1 DataInputStream以及DataOutputStrea…

书生·浦语大模型全链路开源体系-第6课

书生浦语大模型全链路开源体系-第6课 书生浦语大模型全链路开源体系-第6课相关资源Lagent & AgentLego 智能体应用搭建环境准备创建虚拟环境安装LMDeploy安装 Lagent安装 AgentLego Lagent 轻量级智能体框架使用 LMDeploy 部署启动并使用 Lagent Web Demo使用自定义工具获取…

呼叫系统的技术实现原理和运作流程,ai智能系统,呼叫中心外呼软交换部署

呼叫系统的技术实现原理和运作流程可以涉及多个组成部分&#xff0c;包括硬件设备、软件系统和通信协议。以下是一般情况下呼叫系统的技术实现原理和运作流程的概述&#xff1a; 硬件设备&#xff1a; 服务器&#xff1a;用于承载呼叫系统的核心软件和数据库。电话交换机&#…

学习-官方文档编辑方法

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…