Back-end139 자바 static 정적 코드 정적 코드(static code)는 클래스나 객체의 인스턴스 생성 없이 호출하거나 사용할 수 있는 코드 입니다. 정적 변수 : 클래스의 모든 인스턴스가 공통으로 사용하는 변수이고, 객체가 생성되어 있지 않아도, 클래스 이름으로 접근 가능합니다. 정적 메서드 : 인스턴스 생성 없이 호출 가능한 메서드로, 객체가 생성되어 있지 않아도, 클래스 이름으로 접근이 가능합니다. 정적 블록 : 클래스 로딩 시 실행되는 블록으로, 클래스의 초기화 작업을 수행합니다. 또한 생성자로 클래스 로딩 시 더 우선적으로 수행됩니다. 내부 클래스 static 내부 클래스는 static으로 선언해야 한다. 만약 static 으로 선언하지 않으면 외부 참조를 하게 된다. 즉, 내부 클래스가 외부의 멤버를 사용하지 않아도 숨.. 2023. 8. 13. 접근 지정자 접근 지정자란? 자바의 접근 지정자는 클래스, 변수, 메서드 등의 접근 가능 범위를 제어하는 키워드 입니다. 이를 통해 객체 지향 프로그래밍에서 정보 은닉, 캡슐화, 모듈화를 지원하며, 코드의 가독성과 유지보수성을 높일 수 있습니다. public : 어떤 클래스에서든 접근이 가능 합니다. protected : 같은 패키지 내에서 접근이 가능하며, 다른 패키지의 자손 클래스에서 접근이 가능합니다. default : 같은 패키지 내에서만 접근이 가능합니다. private : 같은 클래스 내에서만 접근이 가능합니다. 2023. 8. 13. GC GC란? 가바지 컬렉션은 자바의 메모리 관리 방법 중 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스 입니다. C/C++ 언어에서는 GC가 없어 직접 메모리 할당과 해제를 해주어야 했지만, Java에서는 GC가 대신 메모리 관리를 해주기 때문에, 개발자 입장에서 메모리 누수 문제에 대해 관리하지 않고, 개발에만 집중할 수 있습니다. STW(Stop-The-World) GC는 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기 힘들며, GC가 동작하는 동안에도 다른 동작을 멈추기 때문에 오버헤드가 발생되는 문제점이 있습니다. 이를 Stop-The-World 라 합니다. GC를 수행하기 위해 JVM이 프로그램 실행을 멈추는 현상.. 2023. 8. 12. JVM Java 플랫폼 종속이지 않게 설계한 이유와 장단점 C/C++ 등 컴파일러가 기계어 코드로 변환할 때 프로그램이 실행할 대상 컴퓨터의 CPU와 운영체제 종속적인 코드로 변환됩니다. 그러면 다른 플랫폼에서는 다시 컴파일 하여 플랫폼에 맞도록 코드를 수정해야 합니다. 이를 플랫폼 종속성이라 합니다. 하지만 Java는 플랫폼 종속성을 피하고 “Write Once, Run Anywhere”라는 철학을 지향하여 설계되었습니다. Java 코드를 한번 작성하면, 어떤 환경의 OS에서라도 JVM만 설치되어 있으면 동일한 실행 환경을 제공하며 동일한 실행 결과를 기대할 수 있습니다. 장점으로는 특정 플랫폼에 종속되지 않고 애플리케이션 배포가 가능하고, 코드를 한 번만 작성하면 다양한 플랫폼에서 동일한 실행 결과를 얻을 .. 2023. 8. 11. 2023.08.08 TIL Java String 클래스 String 클래스는 final로 선언되어 있기 때문에 상속이 불가능하다. Object 를 상속받고 있고, Serializable, Comparable, CharSequence를 구현한다. Serializable 인터페이스는 구현해야 하는 메서드가 하나도 없는 인터페이스이다. 이 인터페이스를 구현하면, 해당 객체를 파일로 작성하거나 다른 서버에 전송 가능한 상태가 된다. Comparable 인터페이스는 compareTo() 라는 메서드가 있다. 이 메서드는 매개 변수로 넘어가는 객체와 현재 객체가 같은지를 비교하는데 사용한다. 이 메서드의 리턴 타입은 int이다. 즉 객체의 순서를 처리할 때 용이하게 사요된다. CharSequence 인터페이스는 해당 클래스가 문자열을 다루기.. 2023. 8. 9. 2023.08.07 TIL Computer Structure 컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조를 이해하고 있다면 문제 상황에 빠르게 진단할 수 있고, 문제 해결의 실마리를 다양하게 찾을 수 있다. 즉, 컴퓨터 구조를 이해하면 문제 해결 능력이 향상되고, 성능/용량/비용을 고려하며 개발할 수 있다. 컴퓨터가 이해하는 정보 컴퓨터 구조는 ‘컴퓨터가 이해하는 정보’와 ‘컴퓨터의 네 가지 핵심 부품’ 2가지로 나눌 수 있다. 컴퓨터는 0과 1로 표현된 정보만을 이해한다. 데이터와 명령어는 0과 1로 표현되는 정보이다. 데이터는 컴퓨터가 이해하는 숫자, 문자, 이미지, 동영상 등 정적인 정보를 말한다. 컴퓨터와 주고 받는 정보나 컴퓨터에 저장된 정보를 가리킬 때 데이터라 통칭하기도 한다. 컴퓨터는 명령어를 처리하는 기계이다. 명.. 2023. 8. 7. 이전 1 ··· 6 7 8 9 10 11 12 ··· 24 다음