在Mac系统上请问Java8怎么退回Java7,只能重新安装吗,之前的Java版本会被新的覆盖是吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Mac系统上请问Java8怎么退回Java7,只能重新安装吗,之前的Java版本会被新的覆盖是吗相关的知识,希望对你有一定的参考价值。

可以安装多个版本JDK,通过改变环境变量JAVA_HOME,PATH选择默认的版本 参考技术A 重新设置环境变量 把%java_home%变量指向java7就行了

请问java中深度copy一个二维数组是啥意思?怎么用代码实现?

一个二维数组可以看成一个一维数组,每个元素存储一个一维数组首地址的引用,这个没问题吧!
也就是说对于a[][],直接用b[][]=a,或者b[][]=a.clone() 都只是复制了一个引用(包括上面的arraycopy等方法),无法保证数据独立性,就是说a数组值改变会影响到b,反之亦然,这就是浅层复制。
如果二维数组存放类型为基本类型,则只需要b的每一行进行复制(Object.clone()可以保证对基本类型做深层复制api上有写):
b[][]=a.clone();//先利用浅层复制分配新的引用存放地址
for(int i=0;i<a.length;i++)
b[i]=a[i].clone();//a[i]指向数组的内容为基本类型,可以深层复制生成新引用对象

如果二维数组表示的是引用类型,则要对每一个元素调用clone(),并且保证所表示的引用类型遵循clone()复写原则。
b[][]=a.clone();//先利用浅层复制分配新的引用存放地址
for(int i=0;i<a.length;i++)
for(int j=0;j<a[0].length;j++)
b[i][j]=a[i][j].clone()//为每个元素进行深层复制



以上是规范写法,实现方法有很多,但一定要记住,单纯的对引用的COPY是没有意义的,编程中要避免。
参考技术A 用一个循环嵌套,把你的数组赋值一下。要么是用java里面的copy函数,很简单的奥。 参考技术B JDK6咯就直接用System.arraycopy(arr1,0,arr2,0,arr1.length)
● ArrayDemo.java
ipmubploirct cjalavas.s uAtirlr.aAyDreramoy s;
public static void main(String[] args)
int[] arr1 = 1, 2, 3, 4, 5;
int[] arr2 = Arrays.copyOf(arr1, arr1.length);
for(int i = 0; i < arr2.length; i++)
System.out.print(arr2[i] + " ");
System.out.println();

参考技术C B : arry of Integer;
k : Integer;

k := 0;
for i := 1 to 10 do
if (A[i,1] = 0) and
(A[i,2] = 0) and
(A[i,3] = 0) and
(A[i,4] = 0) and
(A[i,5] = 0) then
else
begin
Inc(k);
SetLength(B, k)
for j := 1 to 5 do
B[i,j] := A[i,j];
end;

以上是关于在Mac系统上请问Java8怎么退回Java7,只能重新安装吗,之前的Java版本会被新的覆盖是吗的主要内容,如果未能解决你的问题,请参考以下文章

配置java环境变量,实现一条命令自由切java7 或java8

java7和java8有啥区别

OA系统工作流怎么退回上一经办人

原创Mac OS X 下同时安装多个版本的JDK(JDK 1.5 ~ JDK 1.8)

mac下安装2.7和3.6版本的Python

怎么退回安卓系统?