Language/Java
-
Java - 동일성(identity) & 동등성(equality)Language/Java 2022. 3. 3. 16:47
동일성(identity) & 동등성(equality) 동일성이란? 동일성은 동일하다는 뜻으로 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 뜻은 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다. 위 사진에서 refVar1은 객체1을 가리키고 있고, refVar2와 refVar3는 객체2를 가리키고 있다. refVar2와 refVar3는 동일한 객체를 가리키고 있으므로, 두 변수는 동일하다고 이야기할 수 있다. 그리고 해당 변수가 동일한지 "==" 연산자를 통해 판별할 수 있다. 추가적으로, Primitive Type은 객체가 아니라 주소가 없으므로 "==" 연산자를 사용하였을 때 내용이 같으면 동일하다고 말한다. 동등성이란..
-
Java - Call by Value & Call By ReferenceLanguage/Java 2022. 2. 21. 13:23
Call by Value & Call by Reference Call by Value(값에 의한 호출) void function(int number) { number = 20; } void main() { int number = 10; function(number); printf("%d", number); // 출력되는 값은 10 } - 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시공간이 생성되고, 종료 시 해당 공간이 사라진다. - 해당 호출 방식은 함수 호출 시 전달되는 변수 값을 복사해서 함수 인자로 전달한다. 이때, 복사된 인자는 함수 안에서 지역적으로 사용되기 때문에 local value의 속성을 가진다. - 따라서, 함수 안에서 인자 값이 변경되더라도, 외부 변수 값은 변경..
-
Java - 캐스팅(Casting)Language/Java 2022. 2. 19. 12:08
캐스팅(Cating) 캐스팅이란? - 자바에서 캐스팅은 타입을 변환하는 것이다. - 이때, 상속 관계에 있는 부모와 자식 클래스 간에는 서로 형 변환이 가능하다. 업 캐스팅 class Human { } class Student extends Human { } public class Main { public static void main(String[] args) { Student student = new Student(); Human human = student; // 자식 클래스인 student는 부모 클래스 타입으로 캐스팅됨 } } - 자식 클래스가 부모 클래스 타입으로 캐스팅되는 것을 말한다. 다운 캐스팅 class Human { } class Student extends Human { } publ..
-
Java - 문자열 클래스Language/Java 2022. 2. 19. 12:08
String String이란? public final class String implements java.io.Serializable, Comparable, CharSequence { /** The value is used for character storage. **/ private final char value[]; ... } String 클래스는 불변 객체이다. String 클래스의 문자열을 저장하는 char []을 보면 final로 선언되어 있고, 해당 배열을 재할당하는 코드는 존재하지 않는다. 따라서, 한 번 할당한 문자열을 변경하는 것은 불가능하며, 더하기 연산을 하여 문자를 이어 붙일 때는 새로운 객체가 생성되어 재 할당된다. String s = "hello"; System.out.print..
-
Java - Boxing & UnboxingLanguage/Java 2022. 2. 19. 12:06
Primitive Type & Wrapper Class Primitive Type의 종류 타입 크기 boolean 1 byte char 2 byte byte 1 byte short 2 byte int 4 byte long 8 byte float 4 byte double 8 byte Wrapper Class의 종류 기본 타입 래퍼 클래스 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double Boxing & Unboxing Boxing(박싱) int i = 10; Integer number = new Integer(i); - 박싱이란 기본 타입 데이터에 대응하는 Wrapper 클래스..
-
Java - Primitive Type & Reference TypeLanguage/Java 2022. 2. 19. 12:05
Primitive Type(기본형 타입) Primitive Type의 종류 - Java에서는 총 8가지의 primitive type을 미리 정의하고 제공한다. - Java에서 primitive type을 사용하기 위해서는 선언이 필요하다. - OS에 따라 자료형의 길이가 변하지 않는다. - 비 객체 타입이기 때문에, null 값을 가질 수 없다. 만약 primitive type에 null을 넣고 싶다면 wrapper class를 활용해야 한다. - 메모리의 Stack 영역에 저장된다. boolean - 논리형인 boolean의 기본값은 false이며, 참과 거짓을 저장하는 타입이다. - boolean은 실제로 1bit면 충분하지만, 데이터를 다루는 최소 단위가 1byte이므로 메모리 크기가 1byte이다..