본문 바로가기
반응형

프로그래밍/Java33

[Java] Java의 접근 제어자의 종류와 특징 💡접근 제어자란? 접근 제한자(Access Modifier)는 말 그대로 접근을 제한하기 위해 사용됩니다. 여기서 접근이란 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 말합니다. 어떤 경우에는 클래스와 인터페이스를 다른 패키지에서 사용하지 못하도록 막을 필요가 있습니다. 그리고 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 필드나 메소드를 사용하지 못하도록 막아야 되는 경우도 있습니다. 이때 접근 제한자를 사용할 수 있습니다. 접근 제한자는 public, protected, private와 같이 세 가지 종류가 있습니다. public 접근 제한자: 단어 뜻 그대로 외부 클래스가 자유롭게 사용할 수 있도록 합니다. protected 접근 제한자: 같은 패키지 또는 자식 클래스에서.. 2023. 10. 3.
[Java]Java의 String이 불변객체인 이유 💡Java의 String이 불변객체인 이유 불변 문자열은 수정되지 않는 한 가지 문자열 값을 나타내며, 새로운 문자열을 생성할 때 기존 문자열을 변경하는 대신 새로운 문자열 객체를 생성합니다. 즉, 객체가 변수에 할당되면 참조를 업데이트하거나 내부 상태를 어떤 방법으로도 변경할 수 없습니다. String이 불변객체인 이유는 다음과 같습니다. 📌보안 문자열은 자주 암호화되어야 하며, 암호화된 문자열을 수정할 수 없도록 보호해야 합니다. 불변 문자열은 암호화나 해싱과 같은 변형 작업에서 안전합니다. 📌스레드 안전성 불변 문자열은 여러 스레드에서 동시에 공유될 때 스레드 안전합니다. 스레드 간의 경합 조건(Race Condition)과 같은 문제를 방지합니다. 📌 캐싱과 재사용 불변 문자열은 자주 사용되는 문.. 2023. 10. 2.
[Java]String, StringBuilder, StringBuffer의 차이 💡String 클래스 불변(Immutable) 클래스: String 클래스는 한 번 생성되면 내용을 변경할 수 없는 불변 클래스입니다. 문자열을 수정하려면 항상 새로운 String 객체를 생성해야 합니다. 스레드 안전(Thread-Safe): String 객체는 여러 스레드에서 동시에 사용해도 안전합니다. 따라서 멀티스레드 환경에서 문자열을 다룰 때 이점을 가집니다. 성능 이슈: 문자열을 수정할 때마다 새로운 객체를 생성하기 때문에 문자열 연산이 반복되면 메모리 사용량이 증가하고 성능 저하가 발생할 수 있습니다. 사용 사례: 문자열 수정이 거의 없거나 스레드 안전성이 요구되는 경우에 적합합니다. 1 2 3 String str = "Hello"; str = str + " World"; // 새로운 Stri.. 2023. 9. 30.
[Java] 컴파일러(Compiler) vs 인터프리터(Interpreter) 💡Compiler 실행 속도: 컴파일러는 소스 코드를 미리 컴파일하여 기계어로 변환하기 때문에 실행 시 속도가 빠릅니다. 실행 중에 해석할 필요가 없기 때문입니다. 최적화: 컴파일러는 미리 최적화를 수행할 수 있으며, 실행 시간 및 메모리 사용량을 최적화할 수 있습니다. 보안: 컴파일된 코드는 원본 소스 코드를 볼 수 없기 때문에 소스 코드의 보안을 높일 수 있습니다. 오류 검출: 컴파일러는 코드를 컴파일하기 전에 구문 및 의미적 오류를 검출하므로 런타임 오류가 발생할 가능성이 낮아집니다. 플랫폼 독립성: 바이너리 코드로 컴파일된 프로그램은 특정 플랫폼에 종속되지 않고 여러 플랫폼에서 실행될 수 있습니다. 💡Interpreter 실행 속도: 인터프리터는 코드를 한 줄씩 읽어 해석하므로 컴파일러에 비해 실.. 2023. 9. 29.
반응형