JAVA
java
0. 개요
'write once run anywhere' 객체 지향 프로그래밍 언어로서, JVM을 통해 구동되기 때문에 OS로부터 독립적으로 수행된다.
1. 특징
1.1. 데이터 타입
- 기본형(primitive type) 8개
- 논리형 : boolean(1)
- 문자형 : char(2)
- 정수형 : byte(1), short(2), int(4), long(8)
- 실수형 : float(4), double(8)
- 참조형(reference type)
- 기본형 외의 모든 타입(String, Class, Interface, Array 등)
- 객체의 참조값(reference value)
- 객체를 구분하기 위한 유일한 key
- JVM에서 자동으로 생성
- hash code
- 4byte
- JAVA는 call by value만 지원
- 기본형은 함수 호출 시 매개변수(parameter)에 인자값을 복사
- 참조형은 함수 호출 시 매개변수(parameter)에 참조값(인자값)을 복사
- argument 변수 자체의 참조값이 아닌, argument 변수가 참조하는 객체의 참조값이 매개변수에 복사된다.
- parameter에 저장된 참조 객체의 참조값으로 객체에 대한 수정을 할 수 있지만, 새로운 객체를 담는 등의 행위는 argument 변수에 영향을 끼치지 않는다.
- argument 변수와 parameter는 완전히 다른 변수이다.
```{.java .numberLines} public static void main(String[] args) { Dog aDog = new Dog("Max"); Dog oldDog = aDog;
// we pass the object to foo foo(aDog); // aDog variable is still pointing to the "Max" dog when foo(...) returns aDog.getName().equals("Max"); // true aDog.getName().equals("Fifi"); // false aDog == oldDog; // true }
public static void foo(Dog d) { d.getName().equals("Max"); // true // change d inside of foo() to point to a new Dog instance "Fifi" d = new Dog("Fifi"); d.getName().equals("Fifi"); // true } ```
- 참고)
- 아규먼트(argument) : 함수에 전달되는 변수 또는 값
- 매개변수(parameter) : 함수 호출 시에 메모리에 할당되는, 인자값을 저장하는 local 변수
2. JVM