replaceAll是采用正则表达式进行文本的替换,替换所有满足条件的substring。
replace是采用文本本身的内容进行匹配替换,也是所有满足条件的substring。
java 一维数组进行clone后得到一个新数组。而二维数组clone后得到的只是一个指向原数组的指针???谁知道是怎么一回事。。。。
如下图所示,二维数组B是从A clone而来。
clone过程:B = {A[0],A[1],A[2],A[2]}。结果造成了A与B指向了同一块内存区域。
int[][] A = new int[4][4];
A[0][1] = 4;
A[0][2] = 5;
int[][] B = A.clone();
System.out.println(A[1]);
System.out.println(B[1]);
如果是一维数组,那么就是重新开辟空间了,而不是存指针。
//这三个方法反映的都是java这个进程的内存情况,跟操作系统的内存根本没有关系。
//maxMemory()这个方法返回的是java虚拟机(这个进程)能构从操作系统那里挖到的最大的内存,以字节为单位
//totalMemory()这个方法返回的是java虚拟机现在已经从操作系统那里挖过来的内存大小,也就是java虚拟机这个进程当时所占用的所有内存
Runtime rt = Runtime.getRuntime();
long free = rt.freeMemory();
long total = rt.totalMemory();
long max = rt.maxMemory();
System.out.println("空闲内存:"+free/1024/1024 + "MB");
System.out.println("总的内存:"+total/1024/1024 + "MB");
System.out.println("最大内存:"+1.0*max/1024/1024 + "MB");
System.out.printf("剩余内存: %.4f\n",1.0*free/total);