Java数据类型

基于Solidworks的三维光路结构示意图绘制实例演示-技术细节 阅读详情

一、数据类型


Java中主要有8中基本数据类型,分别是byte,short,int,long,char,boolean,float,double,具体如下:

1、boolean:数据值只有true或false,适用于逻辑计算。

2、char:char型(字符型)数据在内存中占用2个字节。char型数据用来表示通常意义上的字符,每个字符占2个字节,Java字符采用Unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF,在定义字符型的数据时候要注意加' ',比如 '1'表示字符'1'而不是数值1, 

3、byte:byte型(字节型)数据在内存中占用1个字节,表示的存储数据范围为:-128~127。

4、short:short型(短整型)数据在内存中占用2个字节。

5、int:int型(整型)数据在内存中占用4个字节。

6、long:long型(长整型)数据在内存中占用8个字节。

7、float:float型(单精度浮点型)数据在内存中占用4个字节。(float精度为7-8位)

8、double:double型(双精度浮点型)数据在内存中占用8个字节。

Java中所有的基本数据类型都有固定的存储范围和所占内存空间的大小,而不受具体操作系统的影响,来保证Java程序的可移植性。整形数据默认为int数据类型,浮点型默认为double数据类型,如果要表示long型数据或float型数据,要在相应的数值后面加上l、L或f、F,否则会出现编译问题。

在其他语言中如C语言中,字符型数据和整型数据是可以相互转换的,都是以ASCII码来存储,可以将字符型数据当整型数据来看待。

二、基本数据类型间的转换

1、boolean类型不能转换成任何其他数据类型。

2、自动类型转换:容量小的数据类型可以自动转换成容量大的数据类型,如byte-short-int-long-float-double。byte、short、int不会互相转换,他们三者在计算时会转换成int类型。

例:int a=257;byte b=(byte)a;在java中,int类型占4个字节,byte占一个字节,故int类型转化为byte类型会出现位丢失情况,即将int的低4位作为byte类型的值。int型变量的值为257,对应的二进制是100000001,后8位是00000001,第一个0表示符号位,表示正数,所以变量b的值为1。

【备注:在计算机中,存储数据是通过内存地址来区分不同数据的,内存地址用十六进制数表示。在计算机存储单元中,一个ASCII码值占一个字节(8个二进制位),其中最高位符号位。事实上,计算机内的二进制数值是以补码形式表示的,正数的补码和原码的形式相同,负数的补码是将该数的绝对值的二进制形式,按位取反再加一。】

int a=128;byte b=(byte)a;这时b的值是-128。因为变量a对应的二进制是10000000,对应第一位符号位是1,则a是负数,其负数的补码仍是10000000,故b的值是-128。

3、强制类型转换:容量大的数据类型转换成容量小的数据类型时,要加上强制转换符,但这样有可能会造成精度降低或者数据溢出,要小心。

三、对象包装器

Java为了能将基本类型(primitive type)视为对象来处理,并能连接相关的方法,Java为每个节本类型都提供了相应的包装类,这样便能将基本类型转化为对象来处理。其对应关系表如下所示:

基本数据类型包装类
byte(字节)java.lang.Byte
char(字符)java.lang.Character
short(短整型)java.lang.Short
int(整型)java.lang.Integer
long(长整型)java.lang.Long
float(浮点型)java.lang.Float
double(双精度)java.lang.Double
boolean(布尔型)java.lang.Boolean

包装器类的使用

       专门用来包裹(Wrap)基本类型的类叫包装类,也叫包装器,如Long,Integer等,其主要目的就是提供一个对象实例作为壳,将其基本类型包到这个对象之中,然后提供很多操作数据的方法,使面向对象的编程变得更加容易。

字符串、包装类、原始数据类间的转换

四、装箱和拆箱

在Java SE 5.0之前,要进行操作后才能将int包装为一个Integer类。JDK 5.0为基本数据类型提供了自动装箱(boxing)和拆箱(unboxing)的功能。

boxing:将基本数据类型包装秤对应的包装类对象。

unboxing:将包装类对象转换成对应的基本数据类型。

Java编译器在编译时期会根据源代码的语法来决定是否进行装箱和拆箱。在运算时,也可以进行自动装箱和拆箱。

五、泛型
泛型只是编译时的概念,是供编译器进行语法检查用的(由于程序员需要一种类型安全的集合,故这种需求产生了泛型)。
使用泛型的目的主要有以下两个方面:
  1. 努力将运行时的异常转换成编译时错误,减少运行时异常数量(提高了编译器的能力)。
  2. 解决模版编程的问题。
[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. //不用泛型  
  2. List list0 = new ArrayList();  
  3. list0.add("hello");  
  4. String str0 = (String) list0.get(0);  
  5. //用泛型,这样在获取对象的时候就不用类型转换  
  6. List<String> list = new ArrayList<String>();  
  7. list.add("hello");  
  8. String str = list.get(0);  

注意:泛型是没有数组的。编译器不承认 HashMap<K,V>[]这种形式的:  Cannot create a generic array of HashMap<k,v> 
    原因就是数组必须确定他每一个元素的类型。但是泛型在编译阶段有一个类型擦除的问题,也就是说编译器理解HashMap<Integer,Integer>和HashMap<String,String>都是同一种类型HashMap。如果泛型数组存在,那么HashMap<Integer,Integer>和HashMap<String,String>对象都可以加入到同一个HashMap[]数组中,这会造成灾难性的结果。 

详细原因可以看这篇博客  http://hxraid.iteye.com/blog/549509 

    如果一定要定义HashMap数组,可以使用HashMap[] aTweightList = new HashMap[10]; 形式,也就是HashMap常规类型。 
DeepSeek 赋能太空探索:从轨道优化到星际开拓的 AI 革命 随着人工智能技术蓬勃发展,DeepSeek 在太空探索领域展现出巨大应用潜力。本文深入剖析 DeepSeek 技术核心,包括低功耗运算、开源生态等优势,阐述其与传统航天技术的差异。从航天器自主控制、深空探测、载人航天等关键环节,结合实时轨道调整、故障诊断修复等实例,揭示 DeepSeek 对航天任务效率与安全性的提升作用。同时探讨其应用面临的太空环境适应、伦理安全等挑战,展望技术演进方向及与前沿技术融合前景,展现 DeepSeek 为人类太空探索带来的变革与深远意义。 阅读详情

相关推荐

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1293

面向对象 一

面向过程(POP) 与 面向对象(OOP) 二者都是一种思想,面向对象是相对于面向过程而言的。 面向过程,强调的 是功能行为,以函数为最小单位,考虑怎么做。 面向对象,将功能封装进对 象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。 面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则,如 抽象、分类、继承、聚合、多态等。 面向对象的三大特征 封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism) 英文全称 面向对象:Object O

qq_44413610的博客 494

金融科技创新中人工智能的应用:8篇优质论文精选(含2023)

随着科技的飞速发展,金融领域正经历着前所未有的变革。在这个过程中,人工智能技术发挥着越来越重要的作用。为了深入探讨金融人工智能的研究和应用,享享特地整理了几篇金融人工智能方面的论文,大家可以看一下金融人工智能方向最新的研究成果!面向金融领域的大型语言模型本文介绍了BloombergGPT,一个基于广泛金融数据训练的500亿参数模型。基于彭博(Bloomberg)广泛数据来源,建立了一个基于彭博数据的3630亿令牌数据集,并结合了额外3450亿通用数据令牌。

2401_82426425的博客 3210

Java数组元素类型为基本类型和引用类型时的不同

Java数组元素类型为基本类型和引用类型时的不同 1.基本类型: 举例: int [] arr = new int [10]; //在堆上为数组对象分配10个整形元素空间,每个元素初始化默认值为0; 2.引用类型: 举例: String [] example = new String [10];//对象引用数组 //产生一个具有10个单元的数组对象,每个单元存放的是1个String对象的引用,所有单元的初始值为默认值null,此时并未创建具体的String对象 //程序验证: for (String x

只须一笑不须愁X的博客 501

Oasys安装教程

在基环境下执行然后去 C:\Users.condarc打开 .condarc这个文件 删除干净里面的东西。

weixin_44254178的博客 1295

告别龟速计算!用Python的fengwo模块5分钟搞定通达信COST/WINNER函数(附完整代码)

本文介绍如何使用Python的fengwo模块高效复现通达信的COST和WINNER函数,解决量化交易中的计算精度和性能问题。通过C++核心算法和多线程优化,计算速度提升显著,误差低于0.5%,并支持与通达信DLL无缝集成,适用于实盘交易策略开发。

weixin_42533751的博客 600

Java的基本数据类型和引用数据类型

总的来说,LinkedList的内存管理方式使其在处理频繁的插入和删除操作时具有优势,因为它不受内存碎片化的影响,可以更灵活地管理内存。例如,你可以组合多个简单的命令来完成复杂的任务,这种工作方式类似于流水线,每个环节处理特定的任务,然后将结果传递给下一个环节。总的来说,Spring Framework是基础,Spring MVC是构建在其上的Web框架,而Spring Boot则是为了简化Spring应用的开发和部署流程而产生的。总之,了解以上场景可以帮助开发者避免索引失效的问题,提高数据库查询的效率。

m0_51431003的博客 1739

解决UE5像素流三大痛点:鼠标锁定/双光标/自动播放(附app.js魔改指南)

本文针对UE5像素流服务在实际应用中常见的鼠标锁定、双光标和自动播放三大交互痛点,提供了深入的技术分析和解决方案。通过详细解析app.js源码,指导开发者如何修改控制方案、修复光标显示以及实现静音自动播放,旨在提升Pixel Streaming应用的用户体验与专业度。

weixin_28025327的博客 382

java元素_Java基本元素

编译型语言 c++ 编译后得到的是可执行文件解释性语言 Java 编译后得到.class字节码文件字节码:是一套在Java运行系统(JVM)中执行的高度优化的指令集。Java基本元素空白分隔符空格 tab键 换行符关键字不可用于变量名、类名、对象名、方法名等访问控制 private(私有化) protected public(公开)类,方法和变量修饰符 abstract class(声明类) e...

weixin_31986143的博客 396

jira bug 仪表盘

背景: 更直观管理bug,方便项目组内人员,创建、修改、关闭bug 使用的场景: 筛选器结果:可用来展示open、什么级别open的问题,方便督促开发快速解决问题 2维筛选器统计:统计经办人下bug状态是open,具体什么等级的数量。有利于开发可以调整工作进度 问题统计: 统计某版本,产出对应等级的bug数量,用于后期测试报告的编写 饼图:直观展示筛选人员的bug,例如想要看出每位测试人员产出bug比例 创建与解决的问题对比图: ...

chuanying_xiaoqi的博客 814

ThinkPHP 8.1 + think-swoole 4.1 实战:5分钟搞定WebSocket聊天室(附完整代码)

本文详细介绍了如何使用ThinkPHP 8.1和think-swoole 4.1快速构建高并发WebSocket聊天室。通过5分钟实战教程,开发者可以轻松实现用户列表、消息广播等核心功能,支持2000+并发连接,适用于客服系统、在线协作等实时通信场景。

ol789012345的博客 126

cannot create a generic array

public class test {  public E[] r;  public test() {   r = ne w E[3];  } }  #1楼 得分:0回复于:2010-09-03 20:10:58没有泛型数组 #2楼 得分:0回复于:2010-09-03 20:40:11Java的泛型在编译时会擦除类型信息。Java中的数组是通过反射动态建立的。没有了类型信

i am me,haha,么么哒。。。 2698

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【Java基础】Java数据类型以及数据类型之间的转换

Java数据类型小技巧,今天你学废了吗?

程序员青戈 6697

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

java的数据类型有哪些

java的数据类型相关知识点? 总结就是八个字: 数据2型,四类八种 (个人理解,仅供参考) 解析图如下: 基本数据类型: 1.逻辑类:boolean 布尔类型,它比较特殊,布尔类型只允许存储true(真)或者false(假),不可以用0或者非0表示 可以使用 1 bit 来存储,但是具体大小没有明确规定。JVM 会在编译时期将 boolean 类型的数据转 换为 int,使用 1 来表示 t...

VirtiL 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

JAVA基本数据类型与引用数据类型

基本数据类型 对象类型 在栈中进行分配 在堆中进行分配 基本类型之间的赋值是创建新的拷贝 对象之间的赋值只是传递引用 “==”和“!=”是在比较值 “==”和“!=”是在比较两个引用是否相同

Coding_Zhu的博客 1万+

【Java基础之数据类型】String 属于什么数据类型

1、前言 首先提出一个问题在 Java 中 String 属于那种数据类型? 我的一个朋友是这么说的,「what?是不是有很多疑惑,int、double、String 不都是经常一起使用的么,应该都是同一种数据类型吧,基本数据类型?」 大家认为呢?「老公你快说句话啊!」 对于初学者而言可能没有对数据类型没有很强的意识,没有特别的注意到这里,都会认为 int、double、String 基本上都是...

looper梦呓 4273

java表格数据类型_Java数据类型

一、首先大概了解一下关于数据的内容或要点。1、程序在执行的过程中,需要对数据进行运算,也需要储存数据。这些数据可以是由使用者输入,也可以是从文件中取得的,也可以是从网络中获取的。在程序运行的过程中,这些数据通过变量储存在内存中,以便程序随时使用。2、若需要找到储存在内存中的数据,就需要将数据指定给变量,并命名,通过变量名(储存数据的内存空间)来找到相关数据。3、一个变量代表一个内存空间,数据就储存...

weixin_39683734的博客 1014

java怎么判断数据类型_Java 数据类型及其判断

一、Java中的数据类型,可分为两类:1.基本数据类型,也称原始数据类型:byte、short、char、int、long、float、double、boolean它们之间的比较,应该用双等号(==)比较的是它们的值。2.引用数据类型:JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较变量(栈)内存中存放的对象的(堆...

weixin_39649405的博客 1万+

Java 数据类型

Java基础

weixin_44374928的博客 821

【JAVA】5、Java数据类型的划分及8种基本数据类型

本篇介绍Java数据类型的划分及8种基本数据类型

思跡的博客 9088

java中简单的数据类型_Java的简单数据类型

Java的简单数据类型数据类型就是对内存位置的抽象表达。程序员可以利用多种数据类型:某些由编程语言定义,某些由外部库定义,还有些则由程序员来定义。很多编程语言都依赖于特定的计算机类型和对数据类型属性的具体编译实现,比如word和integer数据类型的大小等。另一方面,Java的虚拟机负责定义其内置数据类型的各方面内容。这就意味着不管Java虚拟机(JVM)运行在何等低级的操作系统之上,数据类型的...

weixin_39844515的博客 1337

Java数据类型之Java数据类型的划分方式

程序的本质在于数据的处理上。所以如果想进行程序处理,那么必须要有相应的数据类型。在Java中针对于数据类型一共可以划分为两类: 基本数据类型:是进行内容的操作,而不是进行内存的操作; |- 数值型: |- 整型:byte,short,int,long; 默认值:0 |- 浮点型:float,d...

SILENCE_LM_的博客 733

Java数据类型之引用数据类型

在Java中除了8种基本数据类型外,其他数据类型全部都是引用(reference)数据类型,引用数据类型用来表示复杂数据类型,如下图所示,包含:类、接口和数组声明的数据类型。 引用数据类型:有类,接口,数组等。 Java中的引用数据类型,相当于C等语言中指针(pointer)类型,引用事实上就是指针,是指向一个对象的内存地址。引用数据类型变量中保持的是指向对象的内存地址。很多资料上提到Java不支持指针,事实上是不支持指针计算,而指针类型还是保留了下来,只是在Java中称为引用数据类型。 1 int x =

qq_43694194的博客 3731
上一篇: Spring编程式事务管理及声明式事务管理
下一篇: Java NIO概述
andybbc
博客等级 码龄11年 64粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值