java中的数据类型有哪些?

java中的数据类型有哪些?基本数据类型:boolean、char、byte、short、int、long、float、double引用数据类型:类、接口、数组

大家好,又见面了,我是你们的朋友全栈君。

                         java中的数据类型分为两种:基本数据类型和引用数据类型。

基本数据类型:

1、boolean:布尔型数据,适用于逻辑计算,数据值只有true或false。(注意’t’ 和 ‘f’ 都是小写)
2、char:字符型数据,数据在内存中占用2个字节。Java字符采用Unicode编码,它的前128字节编码与ASCII兼容字符的存储范围在\u0000~\uFFFF。
3、byte:字节型数据,数据在内存中占用1个字节,存储数据范围为:-128~127。
4、short:短整型数据,数据在内存中占用2个字节。
5、int:整型数据,数据在内存中占用4个字节。
6、long:长整型数据,数据在内存中占用8个字节。
7、float:浮点型数据(单),数据在内存中占用4个字节。(float精度为7-8位)
8、double:浮点型数据(双),数据在内存中占用8个字节。(double精度为15-16位)

引用数据类型:(类,接口,数组)

1.类的引用

Object :是类层次结构的根类,每个类都使用Object作为超类,用Object可以定义所有的类 

例 如: 
              Object object= new Integer();
               Integer i=(Integer) object;  

定义一个Interger类,再把这个Object强制转换成Interger类 
String :String类代表字符串,Java 程序中的所有字符串字面值(如”balabala”)都作为此类的实例来实现。
Date :Date表示精确的特定瞬间,Date的类的功能一般现在都被Calendar 和GregorianCalendar代替 
Void :是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。 
PS:基本数据类型对应的Class:Integer  Long  Boolean  Byte  Character  Double  Float   Short 

2.接口的引用

List<E>:列表 ,此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引 (在列表中的位置)访问元素,并搜索列表中的元素。List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。 List 接口提供了两种在列表的任意位置高效插入和移除多个元素的方法。 
add() : 在列表的插入指定元素。 
remove():移除列表中指定位置的元素。 
get(int index):返回列表中指定位置的元素。
Map<K,V>: 
K – 此映射所维护的键的类型 
V – 映射值的类型 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 
put(K key,V value):将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当,返回 true 时,才能说映射 m 包含键 n的映射关系)。  

remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此 映射包含从满足(key==null ? k==null :key.equals(k))的键 k 到值 v 的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系.)

get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

3.数组的引用

数组的定义:存储在一个连续的内存块中的相同数据类型(引用数据类型)的元素集合。

第一种方式:类型[] 数组名; 如 int[] array;  定义了一个整型的数组,数组名为array
第二种方式:类型数组名[]; 如 intarray[];  定义了一个整型的变量,变量名为array数组

PS:在Java中数组初始化后才能使用,初始化就是给数组元素分配内存,并为每个元素赋初始值,无论以哪种方式初始化数组,在初始化完成后,数组的长度就固定了,无法改变。

为什么Java里有基本数据类型和引用数据类型?
1、引用类型在堆里,基本类型在栈里。(引用类型在堆里存储的是数据的地址)

2、栈空间小且连续,往往会被放在缓存。引用类型cache miss率高且要多一次解引用。

3、对象还要再多储存一个对象头,对基本数据类型来说空间浪费率太高。
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156302.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 1、java语言概述

    1、java语言概述文章目录Java基础知识图解软件开发软件开发人机交互方式命令行常用的DOS命令常用快捷键java语言java版本历史迭代Java技术体系平台Java在各领域的应用Java语言运行机制及运行过程Java语言的特点跨平台性Java两种核心机制核心机制—Java虚拟机核心机制—垃圾回收Java语言的环境搭建什么是JDK,JRE下载并安装JDK配置环境变量开发HelloWorld开发HelloWorld注意:注释(Comment)文档注释Java基础知识图解软件开发软件开发软件,即一系列按照特定顺序组织的

  • 3D编程软件(3d动画需要编程吗)

    本篇文章中,我们学习了UnityShader的基本写法框架,以及学习了Shader中Properties(属性)的详细写法,光照、材质与颜色的具体写法。写了6个Shader作为本文Shader讲解的实战内容,最后创建了一个逼真的暴风雪场景进行了Shader的测试。依旧是国际惯例先上本文配套程序的截图。先是一张远眺图:

  • QTreeWidget 遍历所有子节点(QTreeWidgetItem)[通俗易懂]

    QTreeWidget 遍历所有子节点(QTreeWidgetItem)[通俗易懂]这恐怕是最简单的写法了,逛论坛发现的,亲测好用//ui文件中定义//QTreeWidget*treeWidget;//…//遍历treeWidgetQTreeWidgetItemIteratorit(ui.treeWidget);while(*it){//dosomethinglike…

  • 如何利用matlab做BP神经网络分析(利用matlab神经网络工具箱)[通俗易懂]

    如何利用matlab做BP神经网络分析(利用matlab神经网络工具箱)[通俗易懂]最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型、时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于是再在网上进行搜索,发现神经网络模型可以来预测,并且有很多是结合时间序列或者SVM(支持向量机)等组合模型来进行预测,本文结合实际数据,选取了常用的BP神经网络算法,其算法原理,因网上一大堆,所以…

  • 基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)

    基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)

  • 精确度 召回率 f1_score多大了

    精确度 召回率 f1_score多大了目录混淆矩阵准确率精确率召回率分类是机器学习中比较常见的任务,对于分类任务常见的评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1score、ROC曲线(ReceiverOperatingCharacteristicCurve)等。这篇文章将结合sklearn对准确率、精确率、召回率、F1score进行讲解,ROC曲线可以参考我的这篇文章…

    2022年10月15日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号