这篇文章主要讲解了“java数组的面试题实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java数组的面试题实例分析”吧!
一、基础知识
1.Java变量一定要初始化吗?
不一定。Java数组变量是引用数据类型变量,它并不是数组对象本身,只要让数组变量指向有效的数组对象,即可使用该数组变量。对数组执行初始化,并不是对数组变量进行初始化,而是对数组对象进行初始化——也就是为该数组对象分配一块连续的内存空间,这块连续的内存空间就是数组的长度。
2.基本类型变量都放在栈内存中?
错。应该这样说:所有局部变量都放在栈内存里保存的,不管其是基本类型的变量,还是引用类型变量,都是存储在各自的方法栈区中;但是引用类型变量所引用的对象(包括数组、普通java对象)则总是存储在堆内存中。
3.引用变量何时只是栈内存中的变量本身,何时又变为引用实例的java对象?
引用变量本质上只是一个指针,只要程序通过引用变量访问属性,或者通过引用变量来调用方法,该引用变量将会由他所引用的对象代替。
二、实例代码
旋转数组:
例如:数组中元素为 123456,翻转后为561234
给定一个数组,长度为n,要求把后k个元素移动到前面,前n-k个元素移动到后面。
//先改进面试题一中的方法,将从头到尾翻转改为从i到j翻转 public int[] changeArray2(int[] array, int i, int j) { int temp = 0; while (i < j) { temp = array[i]; array[i] = array[j]; array[j] = temp; i++; j--; } //实现旋转数组就可以通过下面的方式来实现 //1.翻转前半部分2.翻转后半部分3.反转整个数组 public int[] swap(int[] array, int k) { int n = array.length - 1;// n=5 changeArray2(array, 0, n - k); changeArray2(array, n - k + 1, n); changeArray2(array, 0, n); return array; } }
感谢各位的阅读,以上就是“java数组的面试题实例分析”的内容了,经过本文的学习后,相信大家对java数组的面试题实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。