자바 4주차: 동시성 프로그래밍 기초(작성 중)
·
외부활동/JSCODE 자바
Thread-Safe멀티 스레드 환경에서 공유 자원에 여러 스레드가 접근이 이루어져도 프로그램이 정상적으로 동작하는 상태synchronizedsynchronized란?lock을 통해 동기화를 수행하여 원자성 문제를 해결하는 키워드문제점한 스레드가 lock을 얻어서 임계 영역에 접근하면 해당 영역에 접근하고 싶은 모든 스레드가 blocking이 걸려 아무 일도 못하며 스레드 상태를 변경하는 비용때문에 성능이 좋지 않다.성능 저하(락 대기)데드 락공정성 문제 -> 기아 상태(starvation)동기화 매커니즘모니터 락을 사용하여 스레드 간 동기화 제공객체의 락은 한번에 하나의 스레드가 점유임계 영역(Critical Section)멀티스레드 환경에서 공유 자원에 접근하는 코드 블록모니터모니터는 스레드가 mut..
자바 3주차: 컬렉션 기초(작성 중)
·
외부활동/JSCODE 자바
JCFJava Colleciion Framework프레임워크?표준화된 클래스와 인터페이스의 집합 -> 통일된 API 제공통일된 API?- 데이터를 다루기 위한 버튼- 동일 인터페이스에 구현체가 달라도 add(), remove() 같은 이름으로 같은 방식으로 동작배경?자주 쓰이는 데이터 저장 방식을 표준화된 설계도를 만들자.한마디로 JCF는?다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 JCF 계층구조JCF는 Collection, Map 인터페이스Collection은 다시 List, Queue, Set 인터페이스List 인터페이스- 순서가 있는 데이터 집합(데이터 중복 허용)-  List 구현체는 ArrayList, LinkedList, Vector  ArrayLi..
자바 2주차: (작성 중)
·
외부활동/JSCODE 자바
String literal과 new String(””)의 차이String literal- String Constant Pool에 저장- 동일한 문자열 리터럴이 여러 번 사용되더라도, Java는 메모리 절약을 위해 동일한 참조를 재사용합니다.new String("")- Heap에 저장- Heap에 새로운 객체를 만들고, 기존 String Constant Pool에 동일한 문자열이 존재하더라도 무시하고 별도의 객체를 만듭니다.- GC의 메모리 회수 대상String Contant Pool?Java의 String Constant Pool은 JVM이 관리하는 특별한 메모리 영역입니다. 이곳에 저장된 문자열 리터럴은 JVM 종료 시까지 유지되거나, 클래스가 언로드될 때만 제거됩니다. 즉, String Pool에 저..
자바 1주차: 자바 객체 지향
·
외부활동/JSCODE 자바
Q1. 오버로딩과 오버라이딩의 차이는 뭔가요?오버로딩은 같은 이름의 메서드를 매개변수의 타입이나 개수를 다르게 하여 여러 개 정의하는 것입니다.오버라이딩은 상속받은 메서드를 자식 클래스에서 재정의하는 것입니다. 오버로딩은 컴파일 타임에 결정되고, 오버라이딩은 런타임에 결정됩니다.Q2. 다형성이 무엇이고, 왜 필요할까요?다형성은 동일한 메서드 호출이 객체 타입에 따라 다르게 동작하는 성질입니다. 이를 통해 코드의 유연성과 재사용성을 높일 수 있습니다.Q3. 상속은 무엇인가요?상속은 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는 것입니다. 코드 재사용성을 높이고, 공통 기능을 묶어 관리할 수 있습니다.Q4. 상속의 단점은 무엇이 있을까요?상속은 부모-자식 클래스 간의 결합도를 높여 유연성이 떨어질 수..
자바 1주차: 자바 기본
·
외부활동/JSCODE 자바
Java의 특징에 대해서 설명해주세요.Java는 플랫폼 독립성을 제공하며, "Write Once, Run Anywhere"(WORA)를 지향합니다. 객체 지향 언어로 캡슐화, 상속, 다형성을 지원합니다. 자동 메모리 관리를 위한 Garbage Collection을 제공합니다. 멀티스레딩, 강력한 보안, 풍부한 API 등도 주요 특징입니다.객체지향 언어 -> 유지보수가 쉽고 확장성이 높다.멀티 스레드 구현이 쉽다 -> 스레드 생성 및 제어와 관련된 라이브러리 API를 제공한다.Java의 단점에 대해서 설명해주세요.Java는 C/C++에 비해 실행 속도가 느릴 수 있습니다. Garbage Collection으로 인해 메모리 사용량이 높고, JVM 초기화로 인해 애플리케이션 시작 시간이 느릴 수 있습니다.C/..