너무 초보적인 질문이긴 한데 책을 보라든지 검색해보라고만 하지 마시고 간단하게라도 알려주신다면 감사하겠습니다.


ArrayList<String> phones;



public ArrayList<String> getPhones(){

return phones;

}


만약 이렇게 정의한 함수가 있다면 리턴될때 Array의 포인터가 리턴되는 것인가요 아니면 값이 복사되는것인가요?

마찬가지로 Array를 Parameter로 받을때도 같은 문제인데요 

C에서는 포인터로 넘길지 값으로 넘길지 명확하게 구분이 되는데 자바에서는 기본적으로 어떻게 처리되는것인지 

자바에서는 call by reference는 지원이 안되는것으로 알고 있는데 그렇다면 이럴때 Array가 전체 copy되어서 

메모리를 두배로 차지하게 되는건가요?


그리고 보통 이런식으로 다른 클래스간 메소드호출로 값전달할때 어떤식으로 전달을 하시나요?

단순히 String이나 Int값이라면 상관없지만 Array나 Class변수를 전달해야된다면 고민이 되는 문제인데요.

클래스를 통째로 전달한다거나 메인 클래스에 있는 클래스값을 하위클래스들에서 공유하고 참조해야된다면

예를 들면 앱 전체에서 공유해야되는 정보를 모아둔 클래스를 Activity에 생성하고 하위 View들에서 

공유하고 참조 하고 싶다면 이럴때는 어떻게 구현을 하는게 좋을까요?


단순히 Activity하나만 본다면 멤버 변수로 클래스를 선언하고 하위 view에서 Activity로 접근하면 될것 같긴한데

다른 Activity들 끼리의 공유 그러니까 하나의 앱 전체에서 접근하고 관리하려면 어떤것이 효율적일까요?

예를 들면 C에서는 공통으로 사용하는 변수나 상수를 헤더파일 하나에다 정의하고 다른파일들은 모두

그 헤더파일을 인클루드 시켜서 접근하는것이 가능한데 

이런식의 구현을 자바에서는 어떻게 해야하는것인지... 


주변에 자바를 아는 사람이 있으면 그냥 물어볼텐데 책만 보고 찾아보기엔 너무 답답하네요.