항해99 Pre_Onboarding 1일차

김재영·2022년 11월 7일
0

항해99 Pre_Onboarding

목록 보기
1/5

항해99 10기 Pre-Onboarding 가이드

  • 교재 : 혼자 공부하는 자바
  • 기간 : 11/07(월) ~ 11/12(토) , 15:00 ~ 21:00
  • 범위
    • 11/07(월) : 1챕터 환경설정 + 2챕터 학습 및 문제풀이
    • 11/08(화) : 3챕터 학습 및 문제풀이
    • 11/09(수) : 입학시험 및 밍글데이
    • 11/10(목) : 4챕터 학습 및 문제풀이
    • 11/11(금) : 5챕터 학습 및 문제풀이
    • 11/12(토) : 5챕터 학습 및 문제풀이

  • 스프링 (총 5챕터)
    • 혼자 공부하는 자바
    • 1챕터 : 자바 시작하기
    • 2챕터 : 변수와 타입
    • 3챕터 : 연산자
    • 4챕터 : 조건문과 반복문
    • 5챕터 : 참조타입

  • 개발 환경
    • JDK - Azul Zulu: 8.66.0.15
    • IDE - jetbrains IntelliJ IDEA: Ultimate

1일차

챕터1 - 자바 시작하기

JAVA 특징

  • 모든 운영체제에서 실행 가능
  • 객체 지향 프로그래밍
  • 메모리 자동 정리
  • 무료 라이브러리 풍부

JDK란?

  • Java Development Kit 자바 개발 키트
  • 개발자들이 Java로 프로그램을 만들 수 있도록 다양한 기능을 제공하는 키트이며
    컴파일러,JRE,JVM 등을 포함한다

JDK 구성

  • javac
    • 자바 컴파일러 : 자바 소스파일을 바이트코드로 변환한다
  • java
    • javac가 만든 클래스 파일을 해석 및 실행
  • jdb
    • 자바 디버깅 툴
  • JRE
    • Java Runtime Enviroment 자바 런타임 환경
    • 자바 코드를 실행하기 위한 도구
    • 자바 클래스 라이브러리/JVM/자바 클래스 로더를 포함
  • JVM
    • Java Virtual Machine 자바 가상 머신
    • 자바가 실제로 동작하는 가상 환경
    • 자바 프로그램이 다양한 OS에서도 원할히 실행될 수 있도록 해줌

Java Code가 실행되는 과정
1. 자바 소스파일 작성
2. JDK의 자바 컴파일러가 자바 소스파일을 바이트 코드로 변환
3. JVM의 클래스 로더가 바이트 코드를 받아서 JVM 메모리에 등록 후 필요한 클래스를 로딩
4. 메모리 상에 있는 바이트 코드를 JVM 내부에서 실행 할 수 있는 기계어 형태로 변환 후 실행

챕터2 - 변수와 타입

변수의 이름은 자바 언어에서 정한 명명 규칙을 따라야 한다

  • 첫 번째 글자는 문자이거나 '$', '_'이어야 하고 숫자로 시작할 수 없습니다
  • 영어 대소문자를 구분합니다
  • 자바 예약어는 사용할 수 없습니다
    • 예약어 : 기본 타입, 접근 제한자, 클래스 관련, 객체 관련 등등

자바의 모든 변수는 중괄호{} 블럭 내에서 선언되고 사용됩니다
메소드 블록 내에서 선언된 변수를 로컬 변수라 하며 로컬 변수는
메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 메모리에서 자동으로 없어집니다

정수 타입

타입메모리 사용 크키저장되는 값의 허용 범위
byte1byte / 8bit-27 ~ (27-1) / -128 ~ 127
short2byte / 16it-215 ~ (215-1) / -32,768 ~ 32767
char2byte / 16bit0 ~ (216-1) / 0 ~ 65535(유니코드)
int4byte / 32bit-231 ~ (231-1) / -2,147,483,648 ~ 2,147,483,647
long8byte / 64bit-263 ~ (263-1) / -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

소스 코드에서 프로그래머에 의해 직접 입력된 값을 리터럴(literal) 이라고 한다

long타입은 수치가 큰 데이터를 다루는 프로그램에서 주로 사용된다
자바 컴파일러는 기본적으로 정수 리터럴을 int 타입으로 간주한다
그래서 정수 리터럴이 int타입의 허용범위를 초과할 경우 컴파일러에게 long타입임을 알려야한다

long 10,000,000,000; ← 컴파일 에러
long 10,000,000,000L;

char타입
문자를 따옴표로 감싼 것을 문자 리터럴이라고 하며 문자 리터럴은 유니코드로 변환되어 저장된다

char var1 = 'A';	// 유니코드 : 65
char var2 = 'B';	// 유니코드 : 66
char var3 = 'a';	// 유니코드 : 97
char var4 = '가';	// 유니코드 : 44032
char var5 = '나';	// 유니코드 : 45208

char변수에 문자가 뿐만 아니라 10진수 또는 16진수 형태로도 유니코드를 저장할 수 있다

char dec = 65;
 System.out.println(dec);	// A 출력
char hex = 0x0041;
System.out.println(hex);	// A 출력

''로 감싼 문자 리터럴은 유니코드로 변환되기 때문에 int타입 변수에도 저장할 수 있다
char타입 변수에 저장하면 자동으로 문자로 매핑되어 출력되지만
int타입 변수에 저장하면 유니코드 자체를 출력한다

char var1 = 'A';
int var2 = 'A';
System.out.println(var1);	// A 출력
System.out.println(var2);	// 65 출력

String타입
' '로 감싼 문자는 char타입 변수에 저장되어 유니코드로 저장되지만
" "로 감싼 문자는 유니코드로 변환되지 않습니다

이스케이프 문자

이스케이프 문자출력 용도
\t탭만큼 띄움
\n라인 피드(LP) : 커서를 다음 줄로 이동
\r캐리지 리턴(CR) : 커서를 현재 줄의 맨 앞으로 이동
\"" 출력
\'' 출력
\\\ 출력
\u1616진수 유니코드에 해당하는 문자 출력

실수 타입

타입메모리 사용 크키저장되는 값의 허용 범위정밀도(소수점 이하 자리)
float4byte / 32bit(3.4 x 10-38) ~ (3.4 x 1038)7자리
double8byte / 64it(1.7 x 10-308) ~ (1.7 x 10308)15자리

자바는 기본 실수 리터럴을 double타입으로 해석하며
실수 리터럴을 float타입 변수에 저장하면 컴파일 에러가 발생한다

 float var = 3.14; ← 컴파일 에러
 double var = 3.14;

실수 리터럴을 float타입 변수에 저장하려면
리터럴 뒤에 f나 F를 붙여 컴파일러가 float타입임을 알 수 있도록 해야 한다

float var = 3.14; ← 컴파일 에러
float var = 3.14f;

논리 타입

참과 거짓을 의미하는 논리 리터럴로 true와 false를 사용한다
논리 리터럴은 1byte 크기의 boolean타입 변수에

타입 변환

  • 자동 타입 변환 : 값의 허용 범위가 작은 타입이 큰 타입으로 저장될 때 발생

  • 강제 타입 변환 : 값의 허용 범위가 큰 타입을 작은 타입으로 쪼개어 저장하는 것

  • 문자열 결합 연산 : 문자열+연산을 하면 다른 피연산자도 문자열로 변환되어 문자열 결합이 발생

  • Integer.parseInt() : 문자열을 정수 int타입으로 변환

  • Double.parseDouble() : 문자열을 실수 double타입으로 변환

  • 정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int타입 보다 작은 byte, short타입의 변수는 int타입으로 자동 타입 변환되어 연산을 수행합니다

byte타입 변수가 피연산자로 사용된 경우int타입 변수가 피연산자로 사용된 경우
byte x = 10;
byte y = 20;
byte result = x + y; ← 컴파일 에러
int result = x + y;
int x = 10;
int y = 20;
int result = x + y;

형식 문자열

형식화된 문자열설명출력 형태
%d
%7d
%-7d
%07d
정수
7자리 정수, 왼쪽 빈자리 공백
7자리 정수,오른쪽 빈 자리 공백
7자리 정수,왼쪽 빈자리 0 채움
123
___123
123___
000123
%10.2f
%-10.2f
%010.2f
소수점 이상 7자리, 소수점 이하 2자리,왼쪽 빈 자리 공백
소수점 이상 7자리, 소수점 이하 2자리, 오른쪽 빈자리 공백
소수점 이상 7자리, 소수점 이하 2자리, 왼쪽 빈자리 0 채움
____123.45
123.45____
0000123.45
%s
%7s
%-7d
문자열
7자리 문자열, 왼쪽 빈자리 공백
7자리 문자열,오른쪽 빈 자리 공백
abd
___abc
abc___

자바는 기본 타입(byte, short, int, long, float, double, boolean)의 값이 동일한지 비교할 때에는 ==를 사용하고, 문자열(String)이 동일한지 비교할 때에는 equals() 메소드를 사용한다

profile
Kickoff 22-10-19

0개의 댓글