独習Java勉強中 no.2
Javaってポインタの概念がないけど参照の概念は存在しています。
なので、安心していると「えっ」と思うような挙動をしてしまって一瞬とまどってしまうんですよね。
p.167
class Test { public static void main(String []) { int i = 5; int j[] = {1,2,3,4}; StringBuffer sb = new StringBuffer("abcd"); display(i,j,sb); a(i,j,sb); display(i,j,sb); b(j); display(i,j,sb); } static void a(inti, int j[], StringBuffer sb) { i = 7; j[0] = 11; sb.append("efg"); } static void b(int j[]) { int x[] = {5,6,7,8}; j = x; } }
5
1 2 3 4
abcd
5
11 2 3 4
abcdefg
5
5 6 7 8
abcdefg
b(...)でjの値が変わらなくて少し考えたけど、よく考えたら当たり前なんですよね。
なんかCで言われると普通なのに、Javaで言われると少し迷います。言い訳くさいなぁ。