浅析java基本数据类型

2023-11-17

java中的基本数据类型4类8种:

四种整数类型(byte、short、int、long);

两种浮点数类型(float、double);

一种字符类型(char);

一种布尔类型(boolean):true 真  和 false 假。

所谓数据类型,数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作(源于百度百科),在我个人理解,数据类型是java语言在创建之初为了对虚拟出的内存的赋予某种特性,便于我们在构建具体业务时作为基础操作单位使用。假如我们定义一个int形变量,那么jvm就会在内存中分配一个存储空间,并对这片内存标记为具有某种特性(只能存储整形数据)。


byte:

byte 数据类型是8位(1个字节)、有符号的,以二进制补码表示的整数;

在计算机中 以二进制形式存储,如1对应00000001 负数以二进制补码表示,-1即1的二进制qu'uw

最小值是 -128(-2^7);最大值是 127(2^7-1);默认值是 0;


byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
例子:byte a = 100,byte b = -50。
    short:
short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
默认值是 0;

例子:short s = 1000,short r = -20000。


    int:
int 数据类型是32位、有符号的以二进制补码表示的整数;
最小值是 -2,147,483,648(-2^31);
最大值是 2,147,483,647(2^31 - 1);
一般地整型变量默认为 int 类型;
默认值是 0 ;

例子:int a = 100000, int b = -200000。


    long:
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
最小值是 -9,223,372,036,854,775,808(-2^63);
最大值是 9,223,372,036,854,775,807(2^63 -1);
这种类型主要使用在需要比较大整数的系统上;
默认值是 0L;
例子: long a = 100000L,Long b = -200000L。

"L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。


    float:
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
float 在储存大型浮点数组的时候可节省内存空间;
默认值是 0.0f;
浮点数不能用来表示精确的值,如货币;

例子:float f1 = 234.5f。


    double:
double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
浮点数的默认类型为double类型;
double类型同样不能表示精确的值,如货币;
默认值是 0.0d;

例子:double d1 = 123.4。


    boolean:
boolean数据类型表示一位的信息;
只有两个取值:true 和 false;
这种类型只作为一种标志来记录 true/false 情况;
默认值是 false;

例子:boolean one = true。


    char:
char类型是一个单一的 16 位 Unicode 字符;
最小值是 \u0000(即为0);
最大值是 \uffff(即为65,535);
char 数据类型可以储存任何字符;
例子:char letter = 'A';。



问题思考:这些基本数据类型在使用时在内存中是如何分配的?

                String a= “1”;占用1个字节,为什么? 

                String底层实现是依赖char数组存储字符串的,既然char占用2个字节,为什么上述占用的是1个字节?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

浅析java基本数据类型 的相关文章

  • 今天发现rabbitMQ消息堆积

    发现有三十多万的消息堆积在10的queue里没有被消费 记录一下查看问题的步骤 1 jps 找出程序的PID 2 jstack PID 查看线程dump 发现rabbitMQ的consumer worker线程block住了 Thread
  • Java操作Excel文件

    创建一个Excel文件 public static void creatExcelFile String filepath Workbook wb new XSSFWorkbook try FileOutputStream fileOut
  • 必须掌握的hashcode()方法

    一 hashcode是什么 1 hash和hash表是什么 想要知道这个hashcode 首先得知道hash 通过百度百科看一下 hash是一个函数 该函数中的实现就是一种算法 就是通过一系列的算法来得到一个hash值 这个时候 我们就需要
  • Swagger3 注解使用(Open API 3.0)

    文章目录 前言 一 swagger 3 的使用 Swagger SpringFox 3 0 相关特性 SpringDoc 二 从 spring fox 迁移到 springdoc 三 使用 swagger3 注解代替 swagger2 的
  • java基础:日志框架

    文章目录 一 日志技术的概述 二 日志技术体系 三 Logback日志框架 四 Logback快速入门 五 Logback 配置详解 5 1 输出位置 格式设置 5 2 对日志不同内容是否输出的控制 一 日志技术的概述 程序中的日志可以用来
  • 字符“&”在XML文件中需要被转义

    今天弄Mybatis的配置文件时 因为这样一条语句
  • 使用jemeter进行压力测试关注的指标

    一 压测设置 线程数 并发数量 能跑多少量 具体说是一次存在多少用户同时访问 Rame Up Period in seconds 表示JMeter每隔多少秒发动并发 理解成准备时长 设置虚拟用户数需要多长时间全部启动 如果线程数是20 准备
  • Java特训的第一天——开篇

    我是一名刚入门的Java菜鸟 我选择Java的原因是因为其语法简单 功能强大 从web 到桌面 到嵌入式 无所不能 下面我将谈一谈我对Java语言的认识 Java语言概述 关于Java的介绍网上有很详细的阐述 我在这里就不再细述了 下面只简
  • 剑指offer第二版面试题20:表示数值的字符串(java)

    题目描述 请实现一个函数用来判断字符串是否表示数值 包括整数和小数 例如 字符串 100 5e2 123 3 1416 和 1E 16 都表示数值 但是 12e 1a3 14 1 2 3 5 和 12e 4 3 都不是 分析 1 在数值之前
  • java中的file.encoding属性到底由什么决定?

    首先先上一段代码 public class PropertiesTest public static void main String args System out println file encoding System getProp
  • C++中基本数据类型字节数及取值范围

    机器字长 是指计算机进行一次整数运算所能处理的二进制数据的位数 整数运算即定点整数运算 机器字长也就是运算器进行定点数运算的字长 通常也是CPU内部数据通路的宽度 现在一般为32位即4个字节 也有64位和16位的 算术类型的存储空间按照机器
  • java Map集合

    目录 一 介绍 二 HashMap 三 TreeMap 四 LinkedHashMap 一 介绍 Java中的Map是一种键值对的集合数据类型 用于存储无序的 不重复的键值对 它提供了快速的查找和访问功能 可以根据键来获取值 常见的Map实
  • javaSE进阶1之static用法

    JavaSE进阶 静态关键字 static static关键字的作用 成员变量分类 静态成员变量 实例成员变量 static修饰成员变量内存原理 static 修饰成员方法的基本用法 成员方法的分类 static修饰成员方法内存原理 sta
  • [透彻]为什么要前后端分离?

    前后端分离的意义 前后端分离 已成为互联网项目开发的业界标准使用方式 前后端分离 会为以后的大型分布式架构 弹性计算架构 微服务架构打下坚实的基础 核心思想 前端页面调用后端的restuful api接口 并使用json数据进行交互 服务器
  • POI解析word\pdf中表格

  • FastJson 之 List<Map>转化成对应List<Object>

    List
  • MVC模型图

    MVC图
  • 多线程下载文件(支持暂停、取消、断点续传)

    多线程下载文件 支持暂停 取消 断点续传 多线程同时下载文件即 在同一时间内通过多个线程对同一个请求地址发起多个请求 将需要下载的数据分割成多个部分 同时下载 每个线程只负责下载其中的一部分 最后将每一个线程下载的部分组装起来即可 涉及的知
  • JDK介绍

    JDK JRE和JVM之间的关系 JVM是运行环境 JRE是含运行环境和相关的类库 跟node环境是一个意思 JDK目录介绍 目录名称 说明 bin 该路径下存放了JDK的各种工具命令 javac和java就放在这个目录 conf 该路径下
  • java动态代理简单实例

    java动态代理简单实例 package hello import java lang reflect InvocationHandler import java lang reflect Method import java lang r

随机推荐

  • 用户登录非常慢报如下错误/usr/bin/xauth: timeout in locking authority file /home/user/.Xauthority

    一般是因为在创建用户时 用户家目录属组和属主不对导致 以最简单的解决办法就是给用户家目录赋予用户的所有权限就能解决 再次登录时 会重新创建一个这样的文件 下次登录就快了 chow user user user
  • 【JavaScript】Function的祖传方法call与apply

    引言 内容速递 看了本文您能了解到的知识 在本篇文章中 将带你了解什么是call和apply call和apply的用途 如何手写call和apply以及call和apply的使用场景 1 什么是call和apply call 和apply
  • ORB SLAM在Ubuntu14.04下环境配置

    在ubuntu14 04下安装Opencv2 4 9 安装 OpenCV 步骤一 创建目录 mkdir opencv cd opencv 步骤二 卸载任何以前安装的ffmpeg和x264软件 sudo apt get qq remove f
  • 面试经典(16)--二叉树根节点到指定节点的路径

    题目描述 给定一棵二叉树和二叉树中一个节点 输出根节点到指定节点间的路径 10 5 12 4 7 指定节点7 那么输出路径应该是10 5 7 分析与解法 这个题目是在我做过蛮多二叉树的题目之后总结的一道题目 发现很多题目都可以抽象出来这个题
  • VS code 显示中文异常解决办法

    从https www zhihu com question 34415763得到问题解决办法 现做如下总结 异常原因 VSCODE默认是UTF 8编码打开文件的 如果遇到了像GB18030 GBK等等的编码 就显示乱码了 解决办法如下 1
  • IDEA中Translation插件无法使用怎么办?

    昨天一个小偷 来我家偷钱 我们一起找了一晚上 问题 谷歌翻译退出中国了 导致我的 IDEA 翻译插件 Translation 也不能用了 会出现这样的错误 更新 TKK 失败 请检查网络连接 解决办法 使用百度翻译 很多翻译都收费 百度翻译
  • 用jquery实现选项卡效果(非常漂亮,带动画效果)

  • Map和String的相互转化

    Java中的Map集合与String的相互转化 代码如下 package com jianhu Test import java util Arrays import java util HashMap import java util M
  • electron-store 本地储存数据

    elelctron store elelctron store 是很好的本地储存库 https www npmjs com package electron store 使用 npm i elelctron store 设置 electro
  • BurpSuite武器库打造之环境搭建和API介绍(下)

    0x00 前言 接上篇丹丹妹 我又给大家带来了下篇 还是以python为开发语言 如有错误的地方还望大家多指正 轻喷 然后呢这边亲亲建议大家代码这种东西还是要多敲 多踩坑 毕竟伟大的爱情家周树人老先生说过只有痛过才能在心底留下不可磨灭的记号
  • 长草(Python)

    题目描述 小明有一块空地 他将这块空地划分为 n 行 m 列的小块 每行和每列的长度都为 1 小明选了其中的一些小块空地 种上了草 其他小块仍然保持是空地 这些草长得很快 每个月 草都会向外长出一些 如果一个小块种了草 则它将向自己的上 下
  • 【转】山寨一个 Boost.Bind

    原文地址 http www cppblog com Streamlet archive 2012 04 21 172241 html 点击打开链接 一直比较好奇 boost bind 里面占位符和参数的顺序是怎么实现的 也一直看不太懂这方面
  • 2023年最火副业:Python爬虫兼职,一周赚7800元,一天只要两小时 !

    下写了5 6年Python 期间写了各种奇葩爬虫 挣各种奇葩的钱 写这篇文章总结下几种爬虫挣钱的方式 1 最典型的就是找爬虫外包活儿 这是网络爬虫最通常的的挣钱方式 通过外包网站 熟人关系接一个个中小规模的爬虫项目 一般向甲方提供数据抓取
  • 开发者须知,App和小程序须备案,否则面临清退!

    备案并不陌生 前端开发的老铁肯定熟悉 若你的网站未备案情况下 在国内的服务器是无法访问的 所谓备案 通常指的就是ICP备案 需要把你经营的信息 给相关部门进行报备 简而言之 就是网络上的 营业执照 这么做的目的 就是维护网络的安全 防止在网
  • JDK源码阅读之AbstractStringBuilder类

    AbstractStringBuilder类源码阅读 AbstractStringBuilder类的作用 AbstractStringBuilder类的类图 AbstractStringBuilder类的重点方法 属性变量 构造方法 精华方
  • StringUtils常用方法+StringUtils详细介绍

    StringUtils用法 StringUtils详细介绍 博文来源 http yijianfengvip blog 163 com blog static 175273432201212221935832 public static vo
  • anaconda64位环境切换为32位,切换64位和32位python的方法

    今天需要调用一个dll动态函数库 但是本地的python是64位的 dll是32位的 直接调用会报错 OSError WinError 193 1 不是有效的 Win32 应用程序 1 python版本 3 6 anaconda对于pyth
  • Python学习(三)条件运算

    Python学习 三 条件运算 之前讲解了Python中的一些基本语法 今天我们来讲一下Python中的条件运算 一 条件运算符 在Python中我们可以用条件运算符进行最基本的条件判断 基本语法为 语句1 if 条件判断式 else 语句
  • git上传项目到Github(详细版)

    第一步 下载git 官网 Git Downloads 第二步 再需要上传到github的项目右键 打开git的命令行界面 第三步 查看当前分支 所在的分支就是代码上传的地方 git branch 如果需要切换分支 则执行以下语句 切换到主分
  • 浅析java基本数据类型

    java中的基本数据类型4类8种 四种整数类型 byte short int long 两种浮点数类型 float double 一种字符类型 char 一种布尔类型 boolean true 真 和 false 假 所谓数据类型 在数据结