오늘 진행한 학습 요약
- Java란?
- Java를 배워야 하는 이유
- JVM이란?
- 개발환경 구성하기
- java 기본 프로그램 만들기
- 변수와 상수
- 변수 타입
- 변수 타입 바꾸기
2.[Java 문법 종합반] 2주차 : 연산자, 조건문, 반복문, 배열, 컬렉션
- 연산자로 계산하기
- 조건문을 사용하기
학습 정리
1. [Java 문법 종합반] 1주차 : JVM, 변수
- Java란?
- 어디서나 마시는 커피처럼 어디서나 동작가능한 언어!
- C 언어 기능 + 공통 실행환경, 클래스, 객체
- Java를 배워야 하는 이유
- 현재 가장 많이 쓰이는 개발 언어
- 공통실행환경(JVM)이 있어서 다양한 운영체제에서 실행 가능
- 객체 언어를 통해 유지보수가 쉬움
- 안정성이 높고 보안상 안전
- 대규모 앱 개발이 가능
- 다양한 개발 도구와 라이브러리를 사용 가능
- JVM이란?
- Java가 어디서든지 실행가능한 환경을 만들어주는 가상환경
- JVM의 구성
- 바이트 코드 : java 프로그램 변환 코드
- 인터프리터 : java.class 코드 해석기
- 메모리 영역 : java 데이터를 저장하는 영역
- 클래스 로더 : java.class 바이트 코드를 메모리 영역에 담는 운반기'
- 가비지 컬렉터 : java 쓰레기 청소기
- 개발환경 구성하기
- JRE?
- 자바실행환경(Java Runtime Environment)
- .class 파일만 실행가능한 한계점으로 JDK가 주로 사용된다.
- JDK?
- 자바개발키트(Java Development Kit)
- JRE(JVM)의 기능을 포함하고 있음
- .java 파일들을 .class 파일들로 변환해주는 java Compiler(javac) 기능이 있음
- 코드를 디버깅하는 jdb의 가능이 있음
- JDK 설치하기
- IDE 설치하기 (java는 주로 Intellij 또는 Eclipse 를 사용한다고 함..)
- JRE?
- java 기본 프로그램 만들기
- main 메서드
- java 프로그램(앱)의 시작점
- java 앱은 실행되면 제일먼저 클래스의 main 메서드를 실행시키는 것이 JVM의 약속
- 코드 해석하기
- public class Main {
- 클래스 정의
- public : 클래스 경로 외부에서 실행할 수 있다고 표시해주는 "접근제어자"
- class : 객체를 만드는 클래스라고 선언
- Main : 클래스 명 (파일 명과 일치시켜야 함)
- Public static void main(
- main 메서드 정의
- public : 외부에서 실행시킬 수 있다고 표시해주는 "접근 제어자"
- static : java 컴파일러가 바이트 코드로 변환할 때 미리 정의 되는 메서드 표기
static 메서드 또는 변수(데이터) 끼리만 호출할 수 있음 - void : 메서드의 응답 값을 정하는 곳
void는 응답할 값이 없다는 정의
- (String[] args)
- 메서드가 시작될 때 넘겨받을 데이터들(변수들)
- String[] : 문자열 여러개 데이터 타입
- args : 문자열 여러개 데이터 이름 (아무거나 적어도 됨)
- public class Main {
- main 메서드
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
- 변수와 상수
- 변수란?
- 변하는 저장 공간
- 상수란?
- 변하지 않는 저장 공간
- 변수란?
- 변수 타입
- 숫자(int) : 숫자로 저장
- 문자 (char) : 문자 한개만 저장
- 문자열 (String) : 문자 여러개를 문장 형태로 저장
- 참조형 변수
- 입력 & 출력
- 비트 & 바이트
int number = 10; // 1. 변수로 선언 및 초기화
number = 11; // 2. 변수의 값을 바꾼다. (덮어쓰기)
final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final 을 붙이면 됩니다.)
number = 11; // e2. 변수의 값을 바꾸려고하면 에러가 납니다!
char alphabet = 'A'; // 문자 하나를 저장합니다.
String message = "Hello World"; // 문자열을 저장합니다.
Scanner sc = new Scanner(System.in); // Scanner 객체를 new 명령어로 생성합니다.
String input = sc.next(); // sc(Scanner)의 .next(); 를 실행하면 input 변수에 입력한 글자를 받을 수 있습니다.
Scanner sc = new Scanner(System.in);
String input = sc.next();
System.out.println("입력값 : " + input); // 입력한 글자를 출력합니다.
- 변수 타입 바꾸기
- 변수를 숫자로 변환하거나 계산을 하고 싶은 경우 변수 타입을 변환하면 된다.
- 자동 형변환 되는 케이스도 있다.
- 작은 타입 > 큰 타입 형변환 시 (자동 형변환)
- 더 큰 표현 범위를 가진 타입으로 변환되는 것이라 값의 손실이 없습니다.
- 값의 손실 없이 변환이 가능하기 때문에 컴파일러가 자동으로 형변환을 해줍니다.
- 큰 타입 > 작은 타입 형변환 시 (강제 형변환 = 캐스팅)
- 더 작은 표현 범위를 가진 타입으로 변환된는 것이라 값의 손실이 생깁니다.
- 값의 손실이 생기기 때문에 자동으로 형변환을 해주지 않고 개발자가 선택하여 형변환을 합니다.
- 작은 타입 > 큰 타입 형변환 시 (자동 형변환)
2.[Java 문법 종합반] 2주차 : 연산자, 조건문, 반복문, 배열, 컬렉션
- 연산자로 계산하기
- 연산자와 피연산자
- 연산자 : 덧셈, 뺄셈처럼 계산할 기호
- 피연산자 : 연산자로 인해 계산되는 숫자
- 연산자 종류
산술 연산자 + - * / % << >> 사칙 연산과 비트연산 비교 연산자 > < >= <= == != 크고 작음과 같고 다름을 비교 논리 연산자 && ` 그리고(AND)와 또는(OR) 으로 조건을 연결 대입 연산자 = ++ —- 우변의 값을 좌변에 저장, 연산 복합 대입 기타 연산자 (type) ? : instance of 형변환 연산자, 삼항 연산자, instance of 연산자 - 연산자 우선순위
- 산술 > 비교 > 논리 > 대입
- 산술변환
- 연산 전에 피연산자의 타입을 일치시키는 것
- 두 피연산자의 타입을 같게 일치시킨다. (둘중에 저장공간 크기가 더 큰 타입으로 일치 </aside>
- 피연산자의 타입이 int 보다 작은 short 타입이면 int로 변환
- 피연산자의 타입이 long 보다 작은 int, short 타입이면 Long으로 변환
- 피연산자의 타입이 float보다 작은 long, int, short 타입이면 float으로 변환
- 피연산자의 타입이 double 보다 작은 float, long, int, short 타입이면 double으로 변환
- 이처럼, 변수 여러 개를 연산했을 때 결괏값은 피연산자 중 표현 범위가 가장 큰 변수 타입을 가지게 됩니다.
- 비트 연산
- 컴퓨터의 가장 작은 단위인 Bit이기 때문에 연산중에서 Bit 연산이 제일 빠름
- Bit의 자릿수를 옮기는 것을 비트 연산이라고 합니다.
- <<(왼쪽으로 자릿수옮기기), >>(오른쪽으로 자릿수옮기기)
- 연산자와 피연산자
- 조건문을 사용하기
- if (조건)
- 특정 조건에 따라 다른 연산을 수행
- if (조건) else
- if문의 조건이 거짓일 경우 다른 연산을 수행
- if(조건) else if
- if문 조건이 거짓일 경우 다시 한 번 다른 조건 으로 체크해서 참일경우 연산 수행
- 중첩 if(조건)
- if문안에 중첩해서 if문 사용
- if (조건)