最近刚刚开始看严蔚敏老师的数据结构,是C语言版本的。经常看到指针,本人菜鸟一枚,突然发现平时在使用Java的时候,没有考虑过多指针的问题,遂学习了下,这才发现尽管在Java中没有显示的使用指针并且也不允许程序员使用指针,而实际上对象的访问就是使用指针来实现的,称之为引用。
一、引用类型和基本类型简介
基本类型共有八种,它们分别都有相对应的包装类。基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。
引用类型(reference type)指向一个对象,不是原始值,指向对象的变量是引用变量。
java里面除去基本数据类型的其它类型都是引用数据类型,自己定义的class类都是引用类型,可以像基本类型一样使用。
示例如下:
public class MyDate {
private int day = 8;
private int month = 8;
private int year = 2008;
private MyDate(int day, int month, int year){...}
public void print(){...}
}
public class TestMyDate {
public static void main(String args[]) {
//这个today变量就是一个引用类型的变量
MyDate today = new MyDate(23, 7, 2008);
}
}
二、基本类型和引用类型的区别
其实区别很多,具体参照:
http://blog.sina.com.cn/s/blog_4586764e0100dr4r.html
http://blog.csdn.net/lu7kang/article/details/5047725
有两点应当注意:
1、Java 中的所有对象都要通过对象引用访问。对象引用是指向对象存储所在堆中的某个区域的指针。当声明一个原始类型时,就为类型本身声明了存储。
2、引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
三、Java与C语言对指针的处理
Java是有指针的!事实上,Java中每个对象(除基本数据类型以外)的标识符都属于指针的一种。但它们的使用受到了严格的限制和防范。在C语言中,会有++p这样的操作,但是在Java中是不允许的,Java只能操作引用,不能直接操作指针。因为C语言能直接对内存进行操作,所以在开发底层时,C的效率和性能要强于Java。但是直接操作指针会带来安全隐患。Java虽然牺牲了点性能,但是增加了安全性。同时,Java避免了繁琐易错的指针操作,也简化了编程难度,增加了代码的可读性。
相关推荐
本文主要介绍Java函数式开发 Optional空指针处理,这里整理了相关资料,及示例代码,有兴趣的小伙伴可以参考下
下面小编就为大家带来一篇浅谈java异常处理之空指针异常。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
个人在做项目时,对NullPointerException的几点总结,请网友拍砖!!!多多提意见,
C指针的处理是C to java代码自动转换系统中一个重要而困难的问题。已有的方法大多不能处理含有技巧的指针代码,转换生成的代码难以理解,往往无法正确执行。基于此,提出一种可用java实现C指针所有功能的方案,该方案在...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
Java是由Sun公司推出的Java程序设计语言和Java软件开发平台的总称。有一个庞大的库,库中包含很多可重用的代码和提供安全性、可... 多线程:java内置了对多 线程的支持,编写更简单; 动态性:适应动态变化的环境。
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,...
安全:Java提供了丰富的安全特性,如禁止指针运算、自动内存管理和异常处理机制,以减少程序错误和恶意攻击的可能性。 可移植性:Java字节码可以在所有安装了JVM的设备上执行,从服务器到嵌入式系统,再到移动设备...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,...
在信息工程中,指针是一个用来指示一个内存地址的计算机语言的变量或中央处理器(CPU)中的寄存器(Register)。指针一般出现在比较近机器语言的语言,如汇编语言或C语言。面向对象语言如Java一般避免用指针,而是引用。
Java 空指针检查器 输入复杂对象不再导致 java 空指针异常 这个怎么运作: 使用 Java 反射,我们构造了包含所有字段的对象图(如果类扩展了父类,则继承)。 我们使用深度优先搜索遍历,应用模板和访问者设计模式,...
安全:Java提供了丰富的安全特性,如禁止指针运算、自动内存管理和异常处理机制,以减少程序错误和恶意攻击的可能性。 可移植性:Java字节码可以在所有安装了JVM的设备上执行,从服务器到嵌入式系统,再到移动...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,...
java常见错误处理,java,struts,jsp,jquery,数组越界,空指针异常
Java圆形电子时钟源代码 1个目标文件 内容索引:JAVA源码,系统相关,电子钟 用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:...
1、资源描述:YOLO指针仪表目标检测数据集(含1000张图片)+已标注xml、json和txt三种格式标签.rar 2、资源特点:数据质量高、标注框质量高,可以直接用于yolo目标检测 3、适用对象:计算机,电子信息工程、数学等专业...
Java超全的基础面试题 包括目录 1.Java基础 ...Java提供了异常处理和垃圾回收机制,去除了C++中难以理解的指针特性。 6. Java语言提供了对Web应用开发的支持。 二、面向对象的三大特性? 1. 继承:对象的..