[Java] JDK, JRE, JVM 뿌수기 그리고 자바 패키지 생성 및 실행 과정
·
Java
🔑새로운 시작💡 JDK, JRE, JVM의 관계📃 JDK는 Java Development Kit의 줄임말로서 자바를 개발할때 필요한 다양한 툴을 내포하고 있습니다. 대표적으로 javac는 java 소스코드를 컴파일 할때 사용하는 컴파일러이고, 뿐만 아니라 문서 생성 도구(javadoc), 디버거(jdb) 도 포함됩니다. 📃 JRE는 Java Runtime Environment의 줄임말로 자바 애플리케이션을 실행하기 위한 환경입니다. 📃 마지막으로 JVM (Java Virtual Machine)은 자바 바이트코드(.class 파일)를 기계가 이해할 수 있는 코드로 변환하여 실행합니다 💡 플랫폼 독립적📃 혹시 Mac을 사용해 보셨다면, .exe 파일이 열리지 않아 당황했던 경험이 있을 수 있습니..
[Java8] 코딩 기초 트레이닝 Day 20 highestOneBit(), stream(), HashMap 활용
·
Java
배열의 길이를 2의 거듭제곱으로 만들기이 문제의 관건은 거듭제곱이 되겠네요. 현재 배열의 길이가 거듭제곱인지 아닌지는 어떻게 알 수 있을까요? 당연히 이미 만들어진 함수가 존재합니다. 하지만 그전에 비트 연산자에 대해서 알아보겠습니다.public static boolean isPowerOfTwo(int n){ return n > 0 && (n & (n - 1)) == 0;}위에 함수는 n의 값이 거듭제곱인지 아닌지를 알 수 있습니다.if n = 6,6 → 0110 (2진수)n - 1 = 5 → 0101 (2진수)6 & 5 = 0100 -> 4 != 0so, return false;다음과 같은 함수를 통해 거듭제곱의 유무를 확인할 수 있습니다.하지만, highestOneBit() 라는 함수를 통해 문제를 ..
[Java 8] 코딩 기초 트레이닝 Day 19 split & 정규식, ArrayList
·
Java
세 개의 구분자다음과 같은 문제 역시 어제 다뤘던 내용과 같이 split 에 관한 내용인데, 정규 표현식을 아직 배우지 않은 분들이라면, if 문으로 하나하나 필터링 해야하나 생각하실 수 있습니다.하지만 자바에는 정규 표현식이라는 것이 존재합니다. String[] result = myStr.split("[abc]"); //myStr = "baconlettucetomato";[abc] 는 대괄호 안에 포함된 문자들 중 하나의 문자와 일치하는 경우를 의미합니다.// result = ["", "onlettu", "etom", "to"]우리가 이 정규 표현식을 몰라다면 너무 번거롭게 코드를 작성했을텐데, 알고 모르고의 차이가 큰 것 같습니다. 그래서 위의 문제는 아래와 같이 풀 수 있습니다.import java..
[Java 8] 프로그래머스 코딩테스트 연습 split(), replace()
·
Java
x 사이의 개수다음과 같은 문제인데import java.util.Arrays;class Solution { public int[] solution(String myString) { return Arrays.stream(myString.split("x")) .mapToInt(String::length) .toArray(); }}위와 같은 코드를 통해 접근하게 되면 split("x")에서 맨 마지막 빈 배열을 포함하지 않아서 아래와 같이 테스트 1에서 실패하게 됩니다이때 아래와 같이 -1 인수를 추가해서 작성하게 되면 문자열 끝에 위치한 구분자 뒤에 빈 문자열도 포함하게 됩니다import java.util.Arrays;class Solutio..