Java工程师多年之后看指针
指针是基本数据类型,占用4个字节。Int 类型的 数据 计算机处理语言中是处 中间层。使用图形化方式可以这样更形象直观。
计算机对二进制处理数据的方式比较敏感。现 人们的大脑计数方式是通过十进制的方式计算日常和工作中需要的业务。操作符的限制,才增加了十六进制机制。数字和字符组合成十六个数字,表示的数据信息量更大。计算机CPU 32 位 到 64 位的进步也是日常数据处理需求产生的效果。
计算机 能认识1和0。指针的概念 计算机的课本中是 西方翻译过来的专业术语。学习C语言的时候,大学生一开始是很难理解指针pointer 的概念。指针是整型数据,存放 计算机的栈 stack 里。CPU 中央系统处理器是单晶硅,和晶体管的作用一样,大量的集成电路使得它不断地升级变成微处理器。操作系统是对栈stack 是 自动分配回收,大小 有2M 或者是 4M 。指针存放 计算机运行内存的栈里。
指针pointer 是指向计算机随机访问内存中的堆 heap 中的某块存储区域。这块存储区域就是堆表。堆表管理着堆块的索引,这些索引就是堆指针。
指针的一些概念也是很难理解。操作符 & 和 * C/C++编程领域存 的频率很高。作为参数变量,void customerFunc(char & tempPointer); ,void customerFunc(char * tempPinter);。这两个函数的参数都是指针,也可以称之为指针变量。变量是记录指针数据的别名alia。Java 指针之上开发了封装,删去了指针取值操作符 * 和指针取地址操作符 & 。char & 和 char * 都是Java中String 形式参数变量的原型。它们两个的最大区别就是一个single 和 多个multiple 的区别。一个字符是Character ,多个字符是Charsequence 。
C with a class ,基于面向对象类的C,过渡到后来80年代的C++程序设计语言。C++程序设计语言可以设计很多大型的软件,桌面软件,工具软件。操作系统以及驱动软件都开始使用C++进行编写。C++是学习难度,但是性能都是基于C程序设计语言考虑和承接过来。C++程序设计语言保留了C程序设计语言中大量的关键字和操作符,很大的区别是面向对象思想的开发团队的组建。C++可以开发更大的项目,处理更复杂的逻辑。
指针pointer放 函数形式参数中是上面的写法,但是作为函数体中的局部变量也是同样的作用。
void testFunc(int & testTempSinglePinter ){
char* nameStr=“wanzhong liao”; // in java means String , in C/C++ means string arrays pointer.
char& nameStrArrFirEle=‘c’; // in java means character, in C/C++ means String arrays first element pointer.
}
有关指针的书籍 市面上有很多,阅读过《C 和指针》。外国人的技术一般都是走 前面,资历较老的工程师写出来的书籍 一般学生或者是没有很多年工作经验的工程师眼里有理解难度。大学的时间比较充裕,有印象就是一种很好的效果。