본문 바로가기

chapter02. JVM 📢 개요 본 포스팅은 신용권, 임경균님의 이것이 자바다 서적과 백기선님의 자바 기초 스터디를 follow-up 한다. 📌 목차 WORA JVM JVM의 구조 1. WORA(Write Once Run Anywhere) 대학교 정규 수업을 통해 C언어를 수강한 경험이 있다면, OS(리눅스, 윈도우)에 따라 소스 코드를 따로 작성하는 수고스러움을 한 번쯤은 경험해보았을 것이다. 이러한 단점을 보완하고자 등장한 자바는 Write Once Run Anywhere 즉, '한 번 작성하면 어디서든 실행된다'라는 슬로건을 내세우는데, 이러한 역할이 가능한 이유는 바로 어플리케이션과 OS 사이에 존재하는 JVM에 있다. 2. JVM JVM이란 Java Virtual Machine의 줄임말로, 자바 코드(.java)를 컴..
chapter01. 자바 시작하기 📢 개요 본 포스팅은 신용권, 임경균님의 이것이 자바다 서적과 백기선님의 자바 기초 스터디를 follow-up 한다. 📌 목차 고급 언어와 저급 언어 컴파일 바이트 코드 JVM 1. 고급 언어와 저급 언어 프로그래밍 언어는 고급 언어와 저급 언어로 구분된다. 고급 언어란 사람이 쉽게 이해할 수 있는 프로그래밍 언어 를 말하며, 고급 언어로 작성된 소스 파일은 컴퓨터가 바로 이해할 수 없기 때문에 컴파일 이라는 과정을 통해서 컴퓨터가 이해할 수 있는 기계어로 변환 후 컴퓨터가 사용하게 된다. 반대로 저급 언어란 기계어에 가까운 언어 를 말하며, 대표적으로 어셈블리어가 저급 언어에 속한다. 내가 앞으로 공부하게 될 자바는 사람이 이해하기 쉬운 고급 언어에 속하며, 고급 언어로 작성된 소스 코드(.java) ..
[JAVA] LeetCode 94 - Binary Tree Inorder Traversal 문제 Given the root of a binary tree, return the inorder traversal of its nodes' values. 이진 트리의 루트가 주어지면, 중위 순회(inorder traversal)하여 노드의 값을 출력하라. 풀이 방법 트리를 순회 하는 방법에는 대표적으로 3가지 방법이 있는데 각각 전위(preorder), 중위(inorder), 후위 순회(postorder)이다. 전위의 경우, ROOT를 가장 먼저 탐색하는 방법으로 ROOT -> LEFT 자식 노드 -> RIGHT 자식 노드 순으로 탐색하며, 후위의 경우, ROOT를 가장 나중에 탐색하는 방법으로 LEFT 자식 노드 -> RIGHT 자식 노드 -> ROOT 순으로 탐색한다. 오늘 문제에 주어진 중위 순회..
[월간 코드 챌린지 시즌1] 이진 변환 반복하기 [ 문제 설명 ] 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. 1. x의 모든 0을 제거합니다. 2. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010" 이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. [ 문제 풀이 ] 주어진 설명만 이해하면 풀이는 어렵지 않은 문제이다. 먼저, 입력으로 주어지는 s..
[JAVA] 백준 9933 - 민균이의 비밀번호 import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = scanner.nextInt(); ArrayList list = new ArrayList(); for(int i=0; i
[JAVA] 백준 4673 - 셀프 넘버 import java.util.*; public class Main { static boolean[] arr = new boolean[10001]; public static void main(String[] args) { for(int i=1; i
IntelliJ에 Mustache Plugin 설치하기 1. shift 키 두번 누르고 plugins 검색하여 더블클릭 2. mustache 검색 후, 맨 위에 있는 항목 Install
POJO(Plain Old Java Object) 지난 포스팅에서 EJB라는 개념을 다루고 EJB의 한계를 극복하기 위해 새로 등장한 POJO라는 단어를 살짝 언급했었다. 오늘은 복잡한 EJB를 벗어나 객체지향적이고 심플한 자바의 사상을 담은 POJO라는 개념에 대해서 포스팅하고자 한다. ▶ 지난 포스팅 참고 POJO(Plain Old Java Object) 오래된 방식의 간단한 자바 오브젝트라는 말로 Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 무거운 객체를 만들게 된 것에 반발해 사용하게 된 용어이다. POJO의 정의 - 지정된 클래스를 extends 하면 안된다. - 정의된 인터페이스를 implement 하면 안된다. - 정의된 Annotation을 포함하지 않는다. POJO의 장점 - 코드가 간결해진다. - 자..