본문 바로가기
반응형

기술면접30

[CS] Thread Safe란 Thread Safe에 대해서 알아보기 전에 Thread란 무엇인지 부터 알아보자..! 💡Thread란? 스레드(Thread)는 컴퓨터 프로세스 내에서 실행되는 가장 작은 실행 단위입니다. 스레드는 프로세스 내에서 독립적으로 실행되며, 각각의 스레드는 고유한 코드 흐름을 가지고 있습니다.모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 합니다. 💡Thread Safe란? "Thread Safe(스레드 안전)"란 다중 스레드 환경에서 여러 스레드가 동시에 하나의 자원 또는 데이터를 접근하더라도 예상대로 동작하는 상태를 의미합니다.보다 엄밀하게는 하나의 함수가 한 스레드로부터.. 2023. 9. 30.
[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.
[Java] 컴파일 과정 ✔️컴파일이란? 프로그래밍 언어로 작성한 코드는 사람이 이해하고 작성하기 편리한 형태입니다. 그러나 컴퓨터는 이러한 코드를 직접 실행할 수 없습니다. 여기에서 컴파일러가 등장합니다. 컴파일러는 프로그래머가 작성한 소스 코드를 기계어 또는 중간 코드로 변환하여 컴퓨터가 이해하고 실행할 수 있게 합니다. 이러한 과정을 컴파일 이라고 합니다. 💡컴파일 과정 1. 소스 코드 작성 Java 프로그램을 개발할 때, 먼저 텍스트 편집기(예: 텍스트 에디터, 통합 개발 환경(IDE))를 사용하여 Java 소스 코드를 작성합니다. 소스 코드는 .java 확장자를 가지며, Java 프로그램의 모든 기능과 동작을 정의하는 곳입니다. 1 2 3 4 5 6 public class HelloWorld { public static.. 2023. 9. 28.
반응형