목록Java (22)
To Dare Is To Do!
String literal과 new String(””)의 차이를 설명해 주세요.String literal은 String Constant Pool에 저장되어, 동일한 literal은 재사용됩니다. new String(””)은 매번 새로운 String 인스턴스를 할당하므로 같은 문자열이어도 서로 다른 객체가 됩니다. String, StringBuilder, StringBuffer의 차이점에 대해서 설명해주세요.String은 불변 객체지만, StringBuilder와 StringBuffer는 가변 객체입니다. 또한, 멀티 스레드 환경에서 StringBuilder은 Thread-Safe하지 않지만 StringBuffer는 메서드들이 synchronized로 동기화되어 있어서 Thread-Safe하다는 차이가 있..
Java의 특징에 대해서 설명해주세요!Java는 제가 생각하는 자바의 주요 특징에는 플랫폼에 대한 독립성, 객체 지향성, 자동 메모리 관리가 있습니다.또한 자바는 객체 지향 언어로 상속, 다형성, 캡슐화, 추상화 같은 객체 지향 개념을 기반으로 동작합니다. 이러한 특성 덕분에 자바는 코드의 재사용성과 유지보수성을 높일 수 있습니다.뿐만 아니라 자바는 가비지 컬렉션 기능을 제공하여 개발자가 직접 메모리 관리를 하지 않아도 자동으로 메모리 관리를 하여 메모리 누수나 해제와 같은 문제를 줄일 수 있습니다.자바 코드는 JVM이라는 가상 머신에서 실행되기 때문에 운영체제와 상관 없이 한 번 작성한 코드를 다양한 운영체제에서 실행할 수 있습니다.Java의 단점은 무엇이 있을까요?java는 상대적으로 실행속도가 느리..
자바의 모든 클래스는 Object 클래스를 상속받습니다. 그리고 Object클래스에는 equals() 와 hashCode() 라는 메소드가 선언되어 있습니다. 이 메소드들은 각각 어떤 역할일까요? 이 둘의 차이점은 무엇일까요?더보기 자바에서 equals() 메소드는 두 객체가 "논리적으로" 동일한지를 판단하는 데 사용됩니다. 기본적으로 Object 클래스의 equals() 메서드는 두 객체의 참조를 비교하여, 두 객체가 같은 메모리 주소를 가리키는지를 확인합니다 그러나 대부분의 경우, 객체의 필드 값이 같은지를 기준으로 객체를 비교하는 것이 더 유용하기 때문에 equals() 메서드를 오버라이드하여 사용합니다. 반면 hashCode() 메소드는 객체의 해시 코드를 반환한다. 이 때 해시 코드는 정수형 값..

Stream이란?Java 8부터 추가된 기술로 람다를 활용해 배열과 컬렉션을 함수형으로 간단하게 처리할 수 있는 기술이다. 특징람다식으로 요소 처리 코드를 제공한다.람다식을 사용함으로써 간결하고 명확한 문법으로 코드의 가독성을 높인다.List names = Arrays.asList("Tom", "Jerry", "Spike");names.stream() .filter(name -> name.startsWith("T")) .forEach(System.out::println); // Tom filter(name -> name.startsWith("T")): 람다식을 사용하여 이름이 "T"로 시작하는 요소를 필터링한다. forEach(System.out::println): 람다식을 사용하여 필터링..

thread pool미리 일정 개수 생성된 스레드를 생성하여 관리하는 기법→ 병렬 작업 처리가 많아지면 스레드 개수 증가로 인한 메모리 사용량 폭증으로 성능 저하를 관리하기 위함개념작업 요청 시 새로운 스레드 생성 대신 기존에 제한된 개수만큼 정해놓은 스레드로 작업을 처리→ 작업 큐에 들어오는 작업들을 하나씩 스레드가 처리사용 후 작업이 완료되면 해당 스레드는 다시 대기 상태로 돌아가고, 새로운 작업을 할당받을 준비장점자원 효율성스레드 재사용 : 스레드 풀은 작업이 끝난 스레드를 다시 사용하여 새로운 스레드를 생성하고 제거하는 비용을 줄임 스레드 생성과 소멸에는 상당한 자원이 소모되므로, 재사용을 통해 시스템 자원을 절약 가능최소화된 컨텍스트 스위칭: 스레드를 자주 생성하고 제거하면 컨텍스트 스위칭이 빈..