Java 8

CS 스터디 회고 - 운영체제 1

1. 시스템 콜이 무엇인지 설명해 주세요운영체제는 컴퓨터 자원들을 효율적으로 관리하며 사용자가 컴퓨터를 편리하고 효율적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램들의 모임입니다.여기서 커널이란 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때 메모리에 올려서 사용하게 된다. 이때 메모리에 상주하는 운영체제의 부분을 kernel(커널)이라고 한다서로 다른 시스템 콜을 어떻게 구분할 수 있을까요?각 시스템 콜에는 번호가 할당 되고시스템 콜 인터페이스는 시스템 콜 번호와 시스템 콜핸들러 함수 주소로 구성되는 시스템 콜 테이블을 유지한다.운영체제는 자신의 커널 영역에서 해당 인덱스가 가리키는 주소에 저장되어 있는 루틴을 수행한다.작업이 완료되면 c..

Java 2024.12.01

Java 면접(인터뷰) 스터디 회고 3

13. Spring 에서 Interceptor와 Servlet Filter에 대해 설명해 주세요.Filter는 Dispatcher Servlet 에 요청이 전달되기 전후에 url 패턴에 맞는 모든 요청에 대해 부가 작업을 처리할 수 있는 기능을 제공합니다. Dispatcher Servlet은 스프링 제일 앞에 존재하는데 따라서 Filter는 SPring외부에 존재합니다.스프링 컨테이너가 아닌 톰캣과 같은 서블릿 컨테이너에 의해 관리,스프링 빈으로 등록은 된다.Intercepter는 Dispatcher 가 컨트롤러를 호출하기 전과 후에 응답을 참조하거나 가공할 수 있는 기능을 가지고 있다. 즉 스프링 내부에 동작한다.설명만 들어보면 인터셉터만 쓰는게 나아보이는데, 아닌가요? 필터는 어떤 상황에 사용 해야 ..

Java 2024.11.21

CS 스터디 회고 - java 2

7. Synchronized 키워드에 대해 설명해 주세요.여러개의 스레드가 한개의 자원을 이용하고자 할 때 현재 데이터를 사용하고 있는 스레드를 제외하고 나머지 스레드들은 데이터에 접근 할 수 없도록 막는 개념으로 즉, 멀티스레드 접근 제한 키워드입니다. 메소드 블럭 단위로 적용이 가능합니다. Synchronized 키워드가 어디에 붙는지에 따라 의미가 약간씩 변화하는데, 각각 어떤 의미를 갖게 되는지 설명해 주세요.메서드에 붙으면 메서드가 호출되는 동안 해당 객체의 인스턴스에 대한 락을 획득하여 한스레드가 이 메서드를 실행 중이면 다른 스레드가 이객체의 메서드를 호출 할 수 없습니다.메서드 내부 블록에 사용하게 된다면 내부 코드만 동기화를 하여 동기화 범위를 줄여 성능을 최적화 할 수 있습니다.특정 객..

Java 2024.11.15

[CS 스터디 회고] JAVA 면접 질문 대비

KB IT's Your Life 를 진행하면서 CS 스터디를 진행하고 다시 복습을 하면서 정리를 한다.또한 추가 적으로 생긴 질문들 중 몇가지를 정리 해보았다.  1. JVM이 정확히 무엇이고, 어떤 기능을 하는지 설명해 주세요.JVM이란 OS에 종속 받지 않고 CPU가 Java를 인식 실행할 수 있도록 하는 가상 컴퓨터 환경입니다. 자바를 실행하고 관리하는 중요한 구성 요소로서 가비지 컬렉터, 바이트 코드 실행, 보안관리, 라이브러리 관리 등의 기능을 제공합니다. JVM은 javac에 의해 소스코드에서 바이트 코드로 변환되는데 각 운영체제마다 JVM구현체가 존재하여 이 바이트 코드를 실행할 수 있습니다. 덕분에 자바는 플랫폼 독립성을 가질 수 있습니다. 또한 객체가 더 이상 사용되지 않으면 자동으로 메..

Java 2024.11.08

JAVA JVM Memory 정리

우선 JVM이란 자바를 실행시키기 위한 가상 컴퓨팅 환경이다.이전에 배울때에는 OS역할을 한다고 해서 OS위에 JVM이 하나 더올라가는 것으로 이해했었다. 하지만 이번에 JVM을 공부하면서 알게 된것은자바 어플리케이션을 실행하게 되면 JVM이 하나의 프로세스로 돌아가게 되고GC나 여러 기능들이 스레드로 동작하게 된다. 우선 우리가 JAVA 소스코드를 작성하고 javac와 같이 자바 컴파일러로 컴파일하게 되면 class파일이 생성된다.이 class파일을 JVM이 Class Loader를 통해 클래스 파일을 읽어 들인다. 이 클래스 파일안에 어떤 필드가 몇개고, 메소드가 몇개인지 바이트코드 까지 포함하여 클래스에 대한 모든 정보가 들어있다. 이 클래스 파 일 정보를 Method Area에 올려 검증하고 st..

Java 2024.07.08

Java Stream filter, forEach

filter는 Stream의 가공하기 단계에, forEach는 결과만들기 단계에 해당한다. 우선 forEach는 배열이나 컬랙션의 각요소들에 대하여 실행하는 것이다. 주로 System.out.println()을 이용하여 각요소들을 출력하는데 사용된다. 그리고 filter는 if문과 비슷하다고 느꼈다. 안에 조건을 넣고 해당 조건과 일치하는 요소들만 forEach에서 주어진 코드를 실행하도록 할 수 있다. private final List cars = new ArrayList(); cars.stream().filter(car -> car.getDistance() == distance).forEach(car ->{ System.out.println(car.get()); }) cars안의 들어있는 요소는 Ca..

Java/Stream 2023.11.02

Java stream

우아한테크코스 1주차를 진행하고 다른사람들의 코드를 보면서 stream을 많이 보았고 stream의 장점들에 대하여 알게 되었다. 마침 우아한테크코스 2주차를 진행하면서 자동차 객체들을 저장하는 Cars라는 클래스 객체를 생성하였고 Car들을 관리하면서 stream을 많이 경험 할 수 있었다. stream의 양이 방대하다는 것도 알았기 때문에 하나하나 정리해 보려한다. 먼저 stream은 자바 8부터 생긴 기능으로 기존에 for문을 사용하여 배열과 컬렉션을 처리했지만 복잡해지면 점점 코드를 짜기 힘들어지고 알아보기 힘들었다. 배열이나 컬렉션을 원하는 대로 가공하거나 필터링하여 결과물을 얻을 수 있고 코드를 간결하게 할수 있습니다. 또한 병렬처리를 수행하여 빠르게 처리할 수 있습니다. 스트림은 크게 생성하..

Java/Stream 2023.11.02

Java priority queue

Priority Queue는 내부 구조가 힙으로 구성되어 있어 이진트리 구조로 이루어져 있습니다. 들어갈 요소는 비교가 가능한 기준이 있는 요소여야합니다. 사용하기 위해서는 import java.util.PriorityQueue; 로 import를 하고 선언은 import java.util.Collections; PriorityQueue priorityQueue = new PriorityQueue(); PriorityQueue priorityQueue = new PriorityQueue(Collections.reverseOrder()); 이렇게 선언할 수 있는데 Collections.reverseOrder()를 주게 되면 트리의 루트에 가장 높은 수가 오게된다. 기본은 가장 낮은 숫자가 오게 된다. 또한..

Java 2023.09.30
반응형