聊聊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
猜你喜欢
- MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoD
- 一直使用Eclipse环境开发Android,也尝鲜使用过Android Studio去开发,各种IDE配合Android SDK及SDK原
- Java单例模式的实现,对java 单例模式的几种实现方法进行了整理:单例模式好多书上都是这么写的:public class SingleT
- 本文实例为大家分享了opencv实现轮廓高斯滤波平滑的具体代码,供大家参考,具体内容如下一个小测试的题目:在图像上点选,找到与点选处相邻的颜
- 本文实例讲述了Android编程实现WebView添加进度条的方法。分享给大家供大家参考,具体如下:标准的XML界面<?xml ver
- 本文实例讲述了C++语言实现线性表之链表实现方法。分享给大家供大家参考。具体分析如下:插入、删除结点的代码有点多,但这样提高了代码的可读性,
- Vector的基本介绍1.:Vector类的定义:public class Vector<E> ext
- 注入集合(数组、List、Map、Set)类型属性(1)创建类,定义数组,list,map,set类型属性,并且生成对应的set方法。(2)
- 背景公司线上有个tomcat服务,里面合并部署了大概8个微服务,之所以没有像其他微服务那样单独部署,其目的是为了节约服务器资源,况且这8个服
- 网上很多资料在描述Java内存模型的时候,都会介绍有一个主存,然后每个工作线程有自己的工作内存。数据在主存中会有一份,在工作内存中也有一份。
- makeCertPic.javapackage pic;import java.awt.Color;import java.awt.Font
- Android Studio 打包 jar 及 aar 包创建工程 New -> Module -> Library在gradl
- 本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js、css这些静态文件的加载配置,以及服务器推送的两种实现方式。当然我们在
- 为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平。你的一个决定会影响团队未来的几年。要考虑方面太多:
- Step1: 安装JDK并配置环境变量;Step2: 安装Gradle进入点击打开链接官网首页点击install gra
- Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullP
- Mybatis的日志模块的适配器模式我们在开发中日志是必不可少的一部分,而市场中有很多日志框架供我们使用,mybatis作为一个开源框架需要
- trim中prefix与suffix等标签用法1.prefix 前缀增加的内容2.suffix 后缀增加的内容3.prefixOverrid
- 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方
- 字符串每隔4位加空格今天弄了个银行卡识别功能,回显的时候想要将银行卡号每四位加一个空格,这样核对卡号会方便很多,这里记录一下1.正则表达式实