본문 바로가기

전체 글232

11.15 스레드1, JVM ㅇ Thread 어떤 애플리케이션이 실행되면 운영체제가 해당애플리케이션에 메모리를 할당해주고 애플리케이션이 실행되는데, 실행중인 애플리케이션을 프로세스라고 함. 프로세스 내에서 실행되는 소스 코드의 실행 흐름을 스레드라고 함. ㅇ 프로세스와 스레드 프로세스 - 실행중인 애플리케이션 프로세스는 데이터, 컴퓨터 자원, 스레드로 구성됨. 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행함. 스레드 - 하나의 코드 실행 흐름 ㅇ 메인 스레드 자바에서 가장 먼저 실행되는 메서드는 main메서드이다. 메인 스레드가 main 메서드를 실행시킨다. 메인스레드만 가지는 싱글스레드 프로세스, 메인스레드에서 다른 스레드 생성해 실행하면 멀티 스레드 ㅇ 멀티 스레드 하나의 프로세스는 여러개의 스레드를 .. 2022. 11. 16.
11.14 Annotation, Lambda, Stream ㅇ Annotation 주석이라는 뜻. 하지만 우리가 썼던 // , /* */ 같은 comment는 사람에게 정보를 전달하는것이고, Annotation은 프로그램에게 정보를 전달한다. ㅇ 표준어노테이션 @Override - 오버라이딩하는데 실수하면 컴파일러가 알려준다. @Deprecated - 새로운것으로 대체될때 기존의 것을 사용하지 않을 것을 권장할때 사용한다. @SuppressWarnings - 컴파일 경고메시지 나타나지 않게 함. @FunctionalInterface - 함수형 인터페이스의 선언이 바르게 됐는지 확인한다. ㅇ 메타 어노테이션 @Target - 어노테이션을 적용할 대상들을 지정함. @Documented - 어노테이션에 대한 정보가 javadoc으로 작성한 문서에 포함되게함. @Inh.. 2022. 11. 14.
11.11 컬렉션 연습문제 1번부터 23번까지는 수월하게 풀었는데 24번이 정말 어려웠다. 블로깅을하며 다시한번 이해해 봐야겠다. 문제 : 문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키로 갖는 HashMap을 리턴해야 합니다. 각 키의 값은 해당 문자가 문자열에서 등장하는 횟수를 의미하는 int 타입의 값이어야 합니다. 출력 : 타입을 요소로 갖는 HashMap을 리턴해야 합니다. 주의사항 : 빈 문자열을 입력받은 경우, null을 리턴해야 합니다. 수도코드를 작성해본다. import java.util.*; public class Blank { public HashMap countAllCharacter(String str) { HashMap hashMap = new HashMap(); // str순회 //str... 2022. 11. 14.
11.10 enum, 제네릭, 예외, 컬렉션 프레임워크 ㅇ enum(enumerated type) -- 열거형 여러 상수들을 보다 편리하게 관리할수 있게 한다. 보통 상수형은 final을 붙혀 선언가능함. 열거형은 여러가지 변하지 않는 값들을 다루는데 사용함. 상수명이 중복되는 문제는 인터페이스로 해결 가능하지만, 타입안전성이라는 문제가 생긴다. interface Seasons{ int SPRING = 1, SUMMER = 2, FALL = 3, WINTER = 4; } interface Frameworks{ int DJANGO = 1, SPRING = 2, NEST = 3, EXPRESS = 4; } 코드가 이렇게 되면 Seasons의 SPRING과 Frameworks의 SPRING은 다른개념이다. 이 문제를 해결하기 위해선 서로 다른 객체로 만들어줘야 한.. 2022. 11. 14.