【Java记】数据类型与变量

一、数据类型

Java中数据类型主要分为两类:基本数据类型引用数据类型。基本数据类型有四类八种:

  1. 四类:整型、浮点型、字符型以及布尔
  2. 八种:

    数据类

    关键

    内存占

    字节

    byte

    1 

    -128~ 127

    短整

    short

    2 

    -32768 ~ 32767

    int

    4 

    - 2^31~2^31-1

    长整

    long

    8 

    -2^63 ~ 2^63-1

    单精度浮点

    float

    4 

    有范围,一般不关

    双精度浮点

    double

    8 

    有范围,一般不关

    字符

    char

    2 

    0 ~ 65535

    布尔

    boolean

    没有明确规

    true false

注意:

  • 不论是在16位系统还是32位系统,int都占用4个字节,long都占8个字节。
  • 整形和浮点型都是带有符号的。
  • 整型默认为int型,浮点型默认为double。
  • 字符串属于引用类型。
  • 二、字面常量

  • 常量即程序运行期间,固定不变的量称为常量,比如:一个礼拜七天,一年12个月等

  • 其中:1003.14Atrue/false都是常量,将其称为字面常量。字面常量的分类:

  • 字符串常量:由""括起来的,比如“12345”“hello”你好
  • 整形常量:程序中直接写的数字(注意没有小数点),比如:1001000
  • 注意:字符串、整形、浮点型、字符型以及布尔型,在Java中都称为数据类型
  • 浮点数常量:程序中直接写的小数,比如:3.140.49
  • 字符常量:由 单引号 括起来的当个字符,比如:‘A’‘1’
  • 布尔常量:只有两种truefalse
  • 空常量:null

三、变量

1、变量概

在程序中,除了有始终不变的常量外,有些内容可能会经常改变,比如:人的年龄、身高、成绩分数、数学函数的计算结果等,对于这些经常改变的内容,在Java程序中,称为变量。而数据类型就是用来定义不同种类变量的。

2、语法格

定义变量的语法格式为

比如

3、整型变量

3.1、整型变量

注意事项

  1. int不论在何种系统下都是4个字
  2. 推荐使用方式一定义,如果没有合适的初始值,可以设置为0
  3. 在给变量设置初始值时,值不能超过int的表示范围,否则会导致溢
  4. 变量在使用之前必须要赋初值,否则编译报
  5. int的包装类型为 Integer

3.2、长整型变量

注意事项

  1. 长整型变量的初始值后加L或者l,推荐加L
  2. 长整型不论在那个系统下都占8个字节
  3. 长整型的表示范围为:-2^63   ~2^63-1 
  4. long的包装类型为Long

3.3、短整型变量

注意事项

  1. short在任何系统下都占2个字
  2. short的表示范围为:-32768 ~ 32767
  3. 使用时注意不要超过范围(一般使用比较少)
  4. short的包装类型为Short

3.4字节型变量

注意事项:

  1. byte在任何系统下都占1个字
  2. byte的范围是:-128 ~ 127
  3. 字节的包装类型为Byte

4、浮点型变

4.1双精度浮点

神奇的代码一:

Java , int 除以 int 的值仍然是 int(会直接舍弃小数部分)。如果想得到 0.5, 需要使用 double 类型计算.

神奇的代码二:

注意事项:

  1. double在任何系统下都占8个字
  2. 浮点数与整数在内存中的存储方式不同,不能单纯使用 2^n的形式来计
  3. double的包装类型为Double
  4. double 类型的内存布局遵守 IEEE 754 标准(C语言一样), 尝试使用有限的内存空间表示可能无限的小数, 必会存在一定的精度误差,因此浮点数是个近似值,并不是精确值。

4.2单精度浮点

       float 类型在 Java 中占四个字节, 同样遵守 IEEE 754 标准. 由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double, 不太推荐使用 float. float的包装类型为Float

5、字符型变

注意事项

  1. Java 中使用单引号 + 单个字的形式表示字符字面值.
  2. 计算机中的字符本质上是一个整数. 在 C 语言中使用 ASCII 表示字符, Java 中使用 Unicode 表示字符. 因此一个字符占用两个字节, 表示的字符种类更多, 包括中文.

6、布尔型变量

注意事项

  1. boolean 类型的变量只有两种取值, true 表示真, false 表示假.
  2. Java boolean 类型和 int 不能相互转换, 不存在 1 表示 true, 0 表示 false 这样的用法.
  3. Java虚拟机规范中,并没有明确规定boolean占几个字节,也没有专门用来处理boolean的字节码指令,在  Oracle公司的虚拟机实现中,boolean1个字节。
  4. boolean的包装类型为Boolean

四、类型转换

在Java中,当参与运算数据类型不一致时,就会进行类型转换。Java中类型转换主要分为两类:自动类型转换()  强制类型转换(显式)

1、自动类型转换(隐式)

自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行

​​​​​​​

2、强制类型转换(显式)

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。

注意事项

1.不同数字类型的变量之间赋值,  表示范围更小的类型能隐式转换成范围较大的类

2.如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢

3.将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检

4.强制类型转换不一定能成功,不相干的类型不能互相转换

五、类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的

1.intlong之间:int会被提升为long

2.byte与byte的运算

结论: byte byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a b 都是 byte, 但是计算 a + b 会先将 a和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte short这种低于 4 个字节的类型, 会先提升成 int, 再参与计算.

正确的写法:

六、字符串类型

Java中使用String类定义字符串类型,比如

在有些情况下,需要将字符串和整形数字之间进行转换

1、int 转成 String

2、String 转成 int

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

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

相关文章

高程 | 数组、指针与字符串(c++)

文章目录 📚数组🐇数组的概念🐇数组的声明与使用🐇数组的存储与初始化🐇数组作为函数参数🐇对象数组 📚指针🐇内存空间的访问方式🐇指针变量的声明🐇指针运算…

蓝桥杯嵌入式第10届真题(完成) STM32G431

蓝桥杯嵌入式第10届真题(完成) STM32G431 题目 main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body********************************…

【C语言】指针练习篇(下),深入理解指针---指针练习题【图文讲解,详细解答】

欢迎来CILMY23的博客喔,本期系列为【C语言】指针练习篇(下),深入理解指针---指针练习题【图文讲解,详细解答】,图文讲解指针练习题,带大家更深刻理解指针的应用,感谢观看,支持的可以…

文件操作详解

文章目录 目录1. 为什么使用文件2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 3. 文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭 4. 文件的顺序读写5. 通讯录的改造6. 文件的随机读写6.1 fseek6.2 ftell6.3 rewind 7. 文本文件和二进制文件8. 文件读取结束的判定9. 文…

『运维备忘录』之 Lsof 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是,甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作,持续给大家更新运维工作所需要接触到的知识点,希望大…

Excel模板2:进度条甘特图

Excel模板2:进度条甘特图 ‍ 今天复刻B站up【名字叫麦兜的狗狗】的甘特图:还在买Excel模板吗?自己做漂亮简洁的甘特图吧!_哔哩哔哩_bilibili 阿里网盘永久分享:https://www.alipan.com/s/cXhq1PNJfdm 当前效果&…

CGAL::2D Arrangements-7

7 几何Traits 几何Traits封装了几何实体的定义以及处理这些几何实体的几何predicates和构造的实现,由Arrangement_on_surface_2类模板和其他周边模块使用。应用于Arrangement的各种算法所确定的最小要求被组织在精细几何特征概念的层次中。每个概念列出的需求只包括…

python_numpy库_ndarray的聚合操作、矩阵操作等

一、ndarray的聚合操作 1、求和np.sum() import numpy as np ​ n np.arange(10) print(n) ​ s np.sum(n) print(s) ​ n np.random.randint(0,10,size(3,5)) print(n) s1 np.sum(n) print(s1) #全部数加起来 s2 np.sum(n,axis0) print(s2) #表示每一列的多行求和 …

《剑指offer》--字符串左旋【超详细建议收藏】

字符串左旋的三种方法 1. 一个一个字符挪2. 库函数---strcpy和strncat3. 三段逆置法 1. 一个一个字符挪 代码实现如下&#xff1a; #include <stdio.h> #include <string.h>void Left_Reverse(char* str,int k) {int len strlen(str);//6int time 0;time k % …

react【六】 React-Router 路由

文章目录 1、Router1.1 路由1.2 认识React-Router1.3 Link和NavLink1.4 Navigate1.5 Not Found页面配置1.6 路由的嵌套1.7 手动路由的跳转1.7.1 在函数式组件中使用hook1.7.2 在类组件中封装高阶组件 1.8 动态路由传递参数1.9 路由的配置文件以及懒加载 1、Router 1.1 路由 1.…

「Python」Selenium

基本使用 导入&#xff1a;from selenium import webdriver创建浏览器操作对象&#xff1a;browser webdriver.Chrome()访问网站 # 访问网站 url https://www.jd.com browser.get(url)""" selenium基本使用Author&#xff1a;binxin Date&#xff1a;2023/1…

【C语言】常见字符串函数的功能与模拟实现

目录 1.strlen() 模拟实现strlen() 2.strcpy() 模拟实现strcpy() 3.strcat() 模拟实现strcat() 4.strcmp() 模拟实现strcmp() 5.strncpy() 模拟实现strncpy() 6.strncat() 模拟实现strncat() 7.strncmp() 模拟实现strncmp() 8.strstr() 模拟实现strstr() 9.str…

Redis核心技术与实战【学习笔记】 - 29.Redis的未来猜想,基于 NVM内存

前言 这几年&#xff0c;新型非易失存储&#xff08;Non-Volatile Memory&#xff0c;NVM&#xff09;器件发展得非常快。NVM 器件具有容量大、性能快、能持久报错数据的特性&#xff0c;这些刚刚就是 Redis 追求的目标。同时 NVM 器件像 DRAM 一样&#xff0c;可以让软件以字…

几个经典金融理论

完整EA&#xff1a;Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 一、预期效用理论 预期效用理论是描述人们在做出决策时如何考虑风险和不确定性的一种理论。该理论最初由经济学家冯诺伊曼&#xff08;John von Neumann&#xff09;和奥斯卡摩根斯坦恩&#xff08;Oskar…

全栈笔记_工具篇(nvm免安装版配置)

免安装版配置 下载nvm包:选择免安装压缩包nvm-noinstall.zip 解压zip包:将压缩包解压到指定目录,如:C:\nvm 新增环境变量: NVM_HOME:nvm解压之后的文件路径,对应配置文件里的root值NVM_SYMLINK:nvm 文件夹里新建 nodejs文件夹,对应配置文件里的path值 修改环境变量Pat…

跨域问题浅析

什么是源(域) 在W3C的定义中,源是由协议、主机(IP 地址或者域名)和端口三者确定。如果两个 URL 的协议、主机(IP 地址或者域名)和端口都一样的话,那么这两个 URL 就是同源的。 同源策略 由于源与源之间是未知且默认的,所以非本源中的资源(即URL对应的资源)是不可控的…

数解 transformer 之 self attention transformer 公式整理

千万不要从任何角度轻看 transformer&#xff0c;重要的话说四遍&#xff1a; 千万不要从任何角度轻看 transformer 千万不要从任何角度轻看 transformer 千万不要从任何角度轻看 transformer Attention is all you need 整个项目是鬼斧神工之作&#xff0c;巧夺天工之作&a…

Spring 用法学习总结(三)之 AOP

Spring学习 7 bean的生命周期8 AOP面向切面编程8.1 AOP相关术语8.2 AOP使用 7 bean的生命周期 bean的生命周期主要为bean实例化、bean属性赋值、bean初始化、销毁bean&#xff0c;其中在实例化和初始化前后都使用后置处理器方法&#xff0c;而InstantiationAwareBeanPostProce…

2024大健康展,山东省大健康产业博览会,济南营养健康展会

立足济南&#xff0c;面向世界&#xff0c;2024第六届中国国际大健康产业博览会&#xff0c;定档2024年5月27-29日&#xff0c;在济南黄河国际会展中心举办&#xff1b; 2024第6届中国&#xff08;济南&#xff09;国际大健康产业博览会&#xff08;China-DJK山东健博会&#…

控制论与科学方法论

《控制论与科学方法论》&#xff0c;真心不错。 书籍原文电子版PDF&#xff1a;https://pan.quark.cn/s/00aa929e4433&#xff08;分类在学习目录下&#xff09; 备用链接&#xff1a;https://pan.xunlei.com/s/VNgj2vjW-Hf_543R2K8kbaifA1?pwd2sap# 控制论是一种让系统按照我…