Today I Learned

2024 스파르타 내일배움캠프 Sping 트랙 참여 // day6

shinelee26 2024. 10. 8. 22:18

오늘 진행한 학습 요약

1.[Java 문법 종합반] 1주차 : JVM, 변수

  • 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 를 사용한다고 함..)
  • 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 {
	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문 사용