[java] non Static 멤버와 static 멤버의 차이
non-static 멤버와 static 멤버의 차이 non-static 멤버 공간적 특성 : 해당 멤버는 객체마다 별도로 존재한다. 인스턴스 멤버라고 부른다. 시간적 특성 : 객체 생성 시에 멤버가 생성된다. 객체가 생...
non-static 멤버와 static 멤버의 차이 non-static 멤버 공간적 특성 : 해당 멤버는 객체마다 별도로 존재한다. 인스턴스 멤버라고 부른다. 시간적 특성 : 객체 생성 시에 멤버가 생성된다. 객체가 생...
int와 short 두 가지 모두 정수형 타입이다. 그렇다면 어떤 차이가 있는지 알아보자. char, short 형 : 이와 같은 정수 자료형 타입으로 표현하면 메모리 공간을 효율적으로 사용할수는 있으나 연산의 효율성은 떨어진다. size : 2byte(16bits) int 형 : int형보다 작은 크기의...
final 키워드 간단한 내용이지만, final 키워드가 클래스, 메소드, 변수 앞에 붙었을 때 각각의 의미에 대해서 정확히 정리하려 한다. final class 다른 클래스가 상속받지 못한다. final method 자식 클래스에서 상위 클래스의 final method를 오버라이드 하...
equals() 메소드 동작 원리 equals() 비교를 위한 메소드이다. Java에서는 대상의 내용 자체를 비교한다. 그렇다면 두 문자열을 비교할 때, 어떤 원리로 비교할까? Ex) a = “Victory”, b = “Victory” public boolean equals()(Object anObject){ if(this ...
Wrapper Class 기본 자료형을 객체 타입의 자료형으로 변환이 필요할 때 주로 사용한다. 사용 용도 객체로 저장해야 할 경우 매개변수로 객체가 요구될 경우(ex. 제네릭, Collection의 타입) 객체 간의 비교가 필요할 경우 제네릭이나 컬렉션에서 사용할 경우, 기본형을 쓸 수 없...
String, StringBuilder, StringBuffer 차이 [String] Immutable하기 때문에 + 등 concat 연산 시 원본을 변경하지 않고 새로운 String 객체를 생성한다. 이로 인해 메모리 공간의 낭비가 발생하고 성능이 떨어진다. JDK 1.5 이후부터는 컴파일 타임에 StringBuilder로 변경한다고 한...
Reflection 자바에서 이미 로딩이 완료된 클래스에서 또는 다른 클래스를 동적으로 로딩하여 구체적인 타입을 알지 못하더라도 생성자, 멤버 필드, 그리고 멤버 메소드를 사용할 수 있는 기법이다. 객체를 통해서 클래스의 패키지 정보, 접근 지정자, 부모 클래스, 어노테이션 등을 얻을 수 있다. 즉, 핵심은 컴파일 타임이 아니라 런타임에...
Java의 String에 관해서 Java에서 String은 굉장히 자주 사용되며, 두 가지 생성 방식이 있다. new 연산자를 이용한 방식 리터럴을 이용한 방식 이 두 가지 방식에는 큰 차이점이 존재한다. new를 통해 String 객체를 생성하면 Heap 영역에 존재하게 된다. 리터럴을 이용할 경우, String Constant ...
Java에서 Thread 먼저, 멀티 태스킹이 무엇인지 알 필요가 있다. 최근의 OS는 멀티 태스킹을 지원하지 않는게 없다. 멀티 태스킹은 두 가지 이상의 작업을 동시에 하는 것을 말한다. 예를 들어, 컴퓨터로 음악을 들으며, 웹서핑을 하는 것이다. 실제로 동시에 처리될 수 있는 프로세스의 개수는 CPU 코어의 개수와 동일한데, 이보다 많은 ...
JVM(Java Virtual Machine) 스택 기반의 가상 머신. JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행하는 것이다. Java와 OS 사이에서 중개자 역할을 수행하여 Java가 OS에 구애받지 않고 재사용 가능하게 해준다. 메모리 관리, Garbage Collection(GC를 ...