聊聊java中引用数据类型有哪些

作者:xiaoming3526 时间:2022-01-10 11:59:10 

java中引用数据类型有哪些

Java中有俩种数据类型,其中主要有8中基本数据类型和引用数据类型,除了8中基本数据类型以外都是引用数据类型,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中引用数据类型:

引用数据类型分3种:类,接口,数组;

一、类Class引用

可以是我们创建的,这里我不多讲,主要是讲解几个java库中的类

  • Object:Object是一个很重要的类,Object是类层次结构的根类,每个类都使用Object作为超类,所有对象(包括数组)都实现这个类的方法。用Object可以定义所有的类

如:


Object object= new Integer(1); 来定义一个Interger类
Integer i=(Integer) object;     在来把这个Object强制转换成Interger类
  • String:String类代表字符串,Java 程序中的所有字符串字面值(如"abc")都作为此类的实例来实现。检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本、在该副本中、所有的字符都被转换为大写或小写形式。

  • Date:Date表示特定的瞬间,精确到毫秒。Date的类一般现在都被Calendar 和GregorianCalendar所有代替

  • Void:Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。

同时也有对应的Class如:Integer Long Boolean Byte Character Double Float Short

二、接口interface引用

可以是我们创建的,这里我不多讲,主要是讲解几个java库中的接口interface

  • List<E>:列表 ,此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引 (在列表中的位置)访问元素,并搜索列表中的元素。List 接口提供了两种搜索指定对象的方法。从性能的观点来看,应该小心使用这些方法。在很多实现中,它们将执行高开销的线性搜索。 List 接口提供了两 种在列表的任意位置高效插入和移除多个元素的方法。

  • add():在列表的插入指定元素。

  • remove():移除列表中指定位置的元素。

  • get(int index):返回列表中指定位置的元素。

  • Map<K,V>

K - 此映射所维护的键的类型

V - 映射值的类型 将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

  • put(K key,V value):将指定的值与此映射中的指定键关联(可选操作)。如果此映射以前包含一个该键的映射关系,则用指定值替换旧值(当且仅当,返回 true 时,才能说映射 m 包含键 k 的映射关系)。 remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更确切地讲,如果此 映射包含从满足(key==null ? k==null :key.equals(k))的键 k 到值 v 的映射关系,则移除该映射关系。(该映射最多只能包含一个这样的映射关系.) get(Object key):返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

这里我们主要是用String List Map Object 是最常用Number ArrayList<E> Arrays等

三、数组引用

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

数组中的每一个数据称之为数组元素,数组中的元素以索引来表示其存放的位置,索引(下标)从0开始。

数组的定义

  • 第一种方式:类型[] 数组名; 如 int[] nums;

  • 第二种方式:类型数组名[]; 如 int nums[];

大多数Java程序员喜欢使用第一种风格,因为它把数据类型int[],和变量名num分开了.

数组的初始化

Java中数组必先初始化后才能使用.

初始化就是给数组元素分配内存,并为每个元素赋初始值。

初始化数组的两种方式:

- 静态初始化:

语法格式:类型[] 数组名 = new 数组类型[]{元素1,元素2,元素3,...元素n};

简化语法:类型[] 数组名 = {元素1,元素2,元素3...元素n};

- 动态初始化:

如果我们事先不知道数组里存储哪些数据,只知道需要存储数据的个数,此时可以使用动态初始化方式。

动态初始化:初始化时由我们指定数组的长度,系统自动为数组元素分配初始值。

格式:类型[] 数组名 = new 数组类型[数组长度];

注意:无论,以哪种方式初始化数组,一旦初始化完成,数组的长度就固定了,不能改变,除非重新初始化。也就是说数组是定长的。

为什么Java里有基本数据类型和引用数据类型?

引用类型在堆里,基本类型在栈里。

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

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

来源:https://blog.csdn.net/baidu_31657889/article/details/51939332

标签:java,引用,数据类型
0
投稿

猜你喜欢

  • Android实现手指触控图片缩放功能

    2021-06-07 17:08:00
  • C#/VB.NET实现HTML转为XML的示例代码

    2021-08-13 20:46:48
  • C#读取二进制文件方法分析

    2022-04-23 11:17:43
  • Android自定义View控件实现刷新效果

    2022-05-12 14:43:22
  • 基于SpringMVC的全局异常处理器介绍

    2023-11-23 20:55:58
  • 关于ASP网页无法打开的解决方案

    2021-05-30 17:00:18
  • Android实战教程第七篇之如何在内存中存储用户名和密码

    2021-07-15 15:43:14
  • 微信公众号开发之回复图文消息java代码

    2022-11-24 00:56:19
  • C#中变量、常量、枚举、预处理器指令知多少

    2021-05-26 18:29:11
  • spring项目中切面及AOP的使用方法

    2021-12-01 21:11:29
  • java String的深入理解

    2022-10-30 23:50:37
  • 如何用.NETCore操作RabbitMQ

    2022-06-20 04:11:04
  • SpringBoot整合Log4j2及配置步骤

    2023-10-27 10:50:16
  • SpringBoot整合BCrypt实现密码加密

    2021-12-09 20:01:08
  • Java俄罗斯方块小游戏

    2021-12-01 04:36:49
  • Android自定义控件实现边缘凹凸的卡劵效果

    2022-10-01 01:20:51
  • android开发教程之自定义控件checkbox的样式示例

    2023-10-23 13:33:55
  • error LNK2019: 无法解析的外部符号 问题的解决办法

    2022-07-27 23:02:40
  • c# 颜色选择控件的实现代码

    2022-04-27 07:22:58
  • springboot2中session超时,退到登录页面方式

    2022-12-23 03:30:14
  • asp之家 软件编程 m.aspxhome.com