개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com 김영한 강사님의 강의를 듣고 정리하였다.본론자바에서 스레드를 어떻게 생성할까?아마 학교나 기본적인 자바를 사용한 분들은 저처럼 스레드를 사용해볼 일도 적고 어떻게 사용하는지도 모른다.그렇다면 스레드를 어떻게 만들어서 사용할 수 있을까?Thread 클래스를 상속받아서 사용Runnable 인터페이스를 구현 후 Thread 클래스를 인스턴스로 생성할 때 생성자에 매개변수로 전달하나씩 살펴보자!Thread 클..
자바
개요 김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성 강의 | 김영한 - 인프런김영한 | 멀티스레드와 동시성을 기초부터 실무 레벨까지 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을 안다?www.inflearn.com김영한 강사님의 강의를 듣고 배운 내용을 추가적인 내용과 함께 정리해서 올린다.본론자바의 메모리 구조를 조금 간단하게 정리하려고 한다.JVM 의 메모리 구조는 위와 같다.여기서 살펴볼 것은 메서드 영역, 힙 영역, JVM 스택이다.메서드 영역, Method Area메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터들을 관리한다. 프로그램의 모든 영역에서 공유해서 사용한다. (모든 스레드들이 공유한다...
https://www.acmicpc.net/problem/2170문제매우 큰 도화지에 자를 대고 선을 그으려고 한다. 선을 그을 때에는 자의 한 점에서 다른 한 점까지 긋게 된다. 선을 그을 때에는 이미 선이 있는 위치에 겹쳐서 그릴 수도 있는데, 여러 번 그은 곳과 한 번 그은 곳의 차이를 구별할 수 없다고 하자.이와 같은 식으로 선을 그었을 때, 그려진 선(들)의 총 길이를 구하는 프로그램을 작성하시오. 선이 여러 번 그려진 곳은 한 번씩만 계산한다.풀이문제를 해결하기 위해 라인 스위핑이라는 알고리즘이 무엇인지 찾아보았고 한 쪽 방향에서부터 시작해서 다른쪽 방향으로 스캔해가면서 푸는 방식 을 라인 스위핑이라고 합니다.이게 무슨뜻인지 많이 고민했고 선을 종이에 그려보면서 어떤 경우의 수가 나올까 고민해..
개요자바 리플렉션이 무엇인가에 대해서 공부하고 공부한 내용을 토대로 작성했다!프레임워크와 라이브러리들을 사용하면서 어노테이션과 여러 기능을 사실 자바 코드로 어떻게 하는지 이해할 수 없었는데 이해가 된 것 같다.java 애플리케이션 의문점들..스프링은 어떻게 런타임 시점에 빈을 주입할 수 있을까?많은 프레임워크나 라이브러리들은 왜 기본 생성자를 필요로 할까?JUnit은 @Test 언노테이션이 붙은 메서드들을 어떻게 실행시킬까?정답은 바로 리플렉션!reflection이란?리플렉션의 뜻은 거울에 비친 상, 모습 이라는 뜻이다.자바에서는 거울, 물에 비친 상은 실제 클래스의 정보가 비쳐진 런타임 시점의 클래스 데이터를 뜻한다!자바 코드 동작 과정자바 코드인 .java 파일은 자바 컴파일러에 의하여 JVM이 이..
개요프로젝트를 진행하던 도중 실수로 유저가 동시에 버튼을 두 번 연속으로 누를 경우에 회원가입이 두번 발생하는 현상이 있다는 것을 알게되었다.이런 문제를 해결하는 방법을 찾아보던 중 동시성 제어를 해서 두 개의 스레드가 동시에 임계 구역으로 진행하지 못하도록 세마포 역할을 하는 무언가가 있어야한다는 것을 알게되었고 해당 내용을 테스트 해보았습니다.자바의 동시성 제어여러 스레드가 하나의 자원을 공유해서 레이스 컨디션이 발생하는 것을 방지해야 합니다. 자바에서는 synchronized 키워드를 통해서 메서드에 대한 동시성을 제어할 수 있었습니다.📌 synchronized 키워드 Essential Java Classes > Concurrency)" data-og-descri..
10868번: 최솟값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 www.acmicpc.net 세그먼트 트리 개념 [Algorithm] 세그먼트 트리란? HTML 삽입 미리보기할 수 없는 소스 세그먼트 트리는 주어진 데이터들의 구간 합과 데이터 업데이트를 빠르게 수행하기 위해 고안해낸 자료구조의 형태입니다. 핵심 이론 세그먼트 트리의 종류 g-db.tistory.com 문제 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하..
시험성적 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);// 스캐너 sc를 선언 및 생성 int a = sc.nextInt(); // 스캐너에서 받아온 값은 정수형으로 변수 a에 저장 if(a > 100) System.out.println("값을 잘못 입력하셨습니"); else if(a >= 90) System.out.println("A"); else if(a >= 80) System.out.println("B"); else if(a >= 70) System.out.println("C"); else if(a >= 60) System...
두 수 비교하기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in);// 스캐너 sc를 선언 및 생성 int a[] = new int[2]; // 스캐너에서 받아온 값은 정수형으로 변수 a에 저장 for(int i=0;i a[1]) System.out.println(">"); else if(a[0] == a[1]) System.out.println("=="); else System.out.println("