전체 글

가치있는 글 쓰기!
import java.io.*; import java.util.*; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; static int N; static Stack visit; static List[] adjs; static int[] type; static int[] nums; static int answer = 0; public static void main(String[] a..
· 📗Java
참고 https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EB%88%84%EA%B5%AC%EB%82%98-%EC%89%BD%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-Reflection-API-%EC%82%AC%EC%9A%A9%EB%B2%95#reflection_api_%EA%B8%B0%EB%B2%95 https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EB%88%84%EA%B5%AC%EB%82%98-%EC%89%BD%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-Dynamic-Proxy-%EB%8B%A4%EB%A3%A8%EA%B8%B0 https://tlatmsrud.tistory.com/112 ..
· 📗Java
람다란 무엇인가?메서드로 전달할 수 있는 익명 함수를 단순화한 것익명 : 보통의 메서드와 달리 이름이 없음함수 : 메서드처럼 특정 클래스에 종속되지 않음전달 : 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있음간결성 : 익명 클래스처럼 많은 자질구레한 코드를 구현할 필요가 없음 함수형 인터페이스란?오직 하나의 추상 메서드를 지정하는 인터페이스람다 표현식으로 함수형 인터페이스의 추상 메서드 구현을 직접 전달@FunctionalInterface 어노테이션으로 정의 가능 ❗Comparator 는 FunctionalInterface 가 맞나요?코드를 살펴보니까 추상 메소드가 하나가 아니라 두 개다!package java.util;@FunctionalInterfacepublic interface Co..
· 📗Java
함수형 프로그래밍이 주는 이점을 이해해보자 동작 파라미터화란?public void printString(String input) { System.out.println("hello " + input);} 본래 인수는 항상 객체를 받는다. 위의 예시에서는 String input 객체가 해당된다. 우리는 함수형 프로그래밍을 위해 동작 (함수) 를 전달하는 방법을 몰색한다. 그 방법은 간단하게 보면 다음과 같다. Thread 인스턴스 생성을 예시로 보자. Thread thread = new Thread(new Runnable() { @Override public void run() { System.out.println("run!"); }});우리는 run() 이라는 동작 (함수) 를 전달하고 싶다. 그러나 인..
맞은 풀이 import java.io.*; import java.util.*; import java.util.stream.Collectors; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; static char[][] map = new char[12][6]; static int[] dr = {-1, 1, 0, 0}; static int[] dc = {0, 0, -1, 1}; pu..
https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 틀렸던 이유 처음에 그리디하게 경로 탐색을 해서 틀렸다. (현재 위치에서 제일 가까운 점으로 이동 or 도착점까지 거리가 제일 짧아지는 방향으로 이동) 하지만 이 문제는 그리디하게 풀면 안되는 문제다! 1. 완전 탐색 (bfs) public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(Syst..
· 📗Java
New/Young Generation : minor GC Old Generation : major GC, Stop-the-world (GC 쓰레드를 제외한 모든 쓰레드가 stop) Permanent Generation : Method Area ( Major GC 에 포함되는 영역) Young 영역 객체가 제일 먼저 생성되는 영역이다. Young 영역은 3개의 영역으로 나뉜다. Eden 영역 Survivor 0, Survivor 1 영역 (두 영역 중에 하나는 반드시 비어있는 상태. 그것이 아니라면 비정상적인 상황) 왜 Survivor 영역은 2개일까? 메모리 (외부) 단편화 문제를 해결하기 위함이다. 메모리 할당-해제 과정에서 생기는 메포리 파편화를 해결하기 위해 다른 Survivor 영역으로 옮길 때 ..
· 📗Java
Hello.java 가 어떻게 운영체제 위에 올라가서 작동하는지 보여주는 그림이다.javac 컴파일러가 .class 파일을 만들어준다. Java Byte Code 클래스이고 이것이 jvm 위에서 올라가는 것이다.어떠한 운영체제이냐에 따라 jvm 이 존재한다. 돌리고자하는 운영체제의 jvm에서 .class 파일을 Execution Engine를 통해 해석하고 실행시킨다.JVM 구성이전에는 전체적인 흐름을 보았고 이젠 jvm 에서 어떻게 실행되는지 보도록 하자.Class Loader (클래스 로더)자바는 기본적으로 컴파일 타임이 아니라 런타임에 참조한다. 그래서 처음 클래스를 참조할 때 해당 클래스를 로드하고 링크하는 과정이 필요하다. Loading : 흩어져있는 .class 확장자를 가진 클래스 파일들을 ..
· ☘️Spring
DispatcherServlet 가 모든 역할을 담당해주는 것을 볼 수 있다. 코드를 자세히 살펴보도록 하자! DispatcherServlet.class - doDispatch 메소드 Overview protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception { HttpServletRequest processedRequest = request; HandlerExecutionChain mappedHandler = null; boolean multipartRequestParsed = false; WebAsyncManager asyncManager = WebAsyncUtils.getAsyn..
A가 B 앞에 나와야한다 같은 조건이 나오는 문제 풀이 1. adj, indegree 배열 정의 2. indegree가 0인걸 저장할 큐 정의 3. 큐 초기화 (indegree가 0인걸 넣어줌) 4. 큐에서 pop 된 원소의 adj indegree를 하나씩 빼준다. 이때 indegree가 0이 된다면 q에 add boj 2252 public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); static StringTokenizer st; pu..
kkyu0718
개발 로그 스토리지