https://www.youtube.com/watch?v=VvVruEDCSSY JVM < JRE < JDK JVM (Java Virtual Machine, 자바 가상 머신) 컴파일러는 우리가 읽고 작성하는 프로그래밍 언어를 컴퓨터가 알아듣는 기계어로 바꿔준다 컴파일러에 의해 .java 파일이 **.class** 파일로 바뀌고 이 파일을 바이트 코드라고 한다. 바이트 코드는 사람의 언어와 컴퓨터의 기계어의 중간단계이 JVM = 자바 프로그램 실행환경을 만들어주는 소프트웨어 - 바이트 코드를 기계어로 번역하여 동작시킴 자바로 짜서 컴파일한 소프트웨어들이 JVM이 깔린 어떤 종류의 컴퓨터에서든 돌 수 있게 해줌 자바 이외의 그루비, 스칼라, 코틀린 같은 언어들로도 JVM을 돌리는 기계에서의 프로그램을 짤 수 ..
Scanner 클래스 기본적인 데이터 타입들은 Scanner를 사용하여 입력받을 수 있다. import java.util.Scanner;를 통해 Scanner 클래스를 import 한 후 사용할 수 있다. Scanner sc = new Scanner(System.in); // Scanner 객체 생성 Scanner 메서드 sc.nextByte() // byte 형 입력 및 리턴 sc.nextShort() // short 형 입력 및 리턴 sc.nextInt() // int 형 입력 및 리턴 sc.nextLong() // long 형 입력 및 리턴 sc.nextFloat() // float 형 입력 및 리턴 sc.nextDouble() // double 형 입력 및 리턴 sc.nextBoolean() //..
데이터 타입을 지정하지 않고 선언 필요할 때 원하는 데이터 타입을 넣어서 불러오기 가능 타입이 다른 각 클래스들을 제너릭스를 사용해 통합 class Main { public static void main(String[] args) { 저장소 a저장소1 = new 저장소(); a저장소1.setData(30); int a = a저장소1.getData(); System.out.println(a); 저장소 a저장소2 = new 저장소(); a저장소2.setData(5.5); double b = a저장소2.getData(); System.out.println(b); 저장소 a저장소3 = new 저장소(); a저장소3.setData(new 사과()); 사과 c = a저장소3.getData(); System.out...
자동형변환 double d = 1; 에서 d에는 1이 자동으로 1.0 실수형태로 형변환되어서 들어감 수동형변환 double d = 1.5; int i = (int)a; 수동으로 형변환 수동으로 형변환해도 되는 경우에만 해야함 안되는 경우에 수동형변환 진행시 Exception 발생 // 작은컵에서 큰컵으로 옮길 때는 안전, 자동형변환 int i = 10; double d = i; // 큰컵에서 작은컵으로 옮길 때는 안전보장x, 수동형변환 필요 doubld d = 10.0; int i = (int)d; // 작은컵에서 큰컵으로 옮길 때는 안전, 자동형변환 청둥오리 a청둥오리 = new 청둥오리(); 오리 a오리 = a청둥오리; // 큰컵에서 작은컵으로 옮길 때는 안전보장x, 수동형변환 필요 오리 a오리 = ..
Object 클래스는 모든 클래스의 최상위 클래스로 모든 클래스는 기본적으로 Object 클래스를 상속받는다. 따라서 모든 클래스는 Object 클래스의 메서드를 오버라이딩해서 사용할 수 있다. 1. 객체 문자 정보 toString() toString()은 객체를 문자열로 표현한 값을 반환한다. 기본적으로 클래스명@16진수해시코드로 이루어진 문자 정보이다. 클래스에서 toString()을 오버라이딩하여 사용할 수 있다. Car car01 = new Car(); Car car02 = new Car(); System.out.println(car01.toString()); // 실행결과 : Car@15db9742 System.out.println(car02.toString()); // 실행결과 : Car@6d..
https://school.programmers.co.kr/learn/courses/30/lessons/120826 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요. 문제 풀이 class Solution { public String solution(String my_string, String letter) { String answer = ""; answer = my_stri..
문자열 인덱스 반환 문자열의 첫번째 인덱스 기준으로 마지막 인덱스까지 검사하여 특정 문자나 문자열이 위치한 인덱스를 반환 (찾지 못하면 -1) str.indexOf(int ch) str.indexOf(int ch, int fromIndex): fromindex에서 끝까지 검색 str.indexOf(String str) str.indexOf(String str, int fromIndex) 문자열의 마지막 인덱스 기준 str.lastIndexOf(int ch) str.lastIndexOf(int ch, int fromIndex) str.lastIndexOf(String str) str.lastIndexOf(String str, int fromIndex) 문자열 인덱스 검색 str.substring(int b..
https://school.programmers.co.kr/learn/courses/30/lessons/120847 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요. 문제 풀이 import java.util.Arrays; class Solution { public int solution(int[] numbers) { int answer = 0; Arrays.sort(numbers);..
https://school.programmers.co.kr/learn/courses/30/lessons/120824 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요. 문제 풀이 class Solution { public int[] solution(int[] num_list) { int[] answer = {0,0}; for (int i=0; i
[프로그래머스] https://school.programmers.co.kr/learn/courses/30/lessons/120821 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요. 문제 풀이 class Solution { public int[] solution(int[] num_list) { int[] answer = new int[num_list.length]; for(in..