[ 오늘 공부할 부분 ]

 

1. 자바 기본 이해
2. 자바 개발 도구 설치
3. 변수의 타입
4. 변수 타입 변환
5. 변수와 시스템 입출력


1.  Java 시작하기 전에

 

① Java 소개

  • 객체 지향 프로그래밍 언어 - 객체를 만들고 이 객체들을 연결해서 프로그램을 완성하는 방식
  • 메모리 자동 정리  ∴ 개발자가 코드 작성에 집중할 수 있다.
  • 오픈소스 라이브러리 풍부
  • 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여 운영체제와 독립적으로 동작할 수 있다. 
  • 따라서 자바는 모든 운영체제에서 실행 가능하다.

② Java 컴파일 과정

출처 : https://tutorial.eyehunts.com/java/how-java-program-run-java-work-compiler/

[기본 개념 정리]

  • 프로그래밍 언어 : 컴퓨터가 이해할 수 있는 기계어 (machine language)와 사람의 언어를 연결하는 다리 역할  ex) Java
  • 소스파일 (source file) : 프로그래밍 언어로 작성한 파일 ex) .java 파일
  • 컴파일 (compile) : Java Compiler에 의해 .java 파일을 .class 라는 Java bytecode로 만드는 과정
  • JVM (Java Virtual Machine) : 자바를 실행하기 위한 가상 기계

[ 컴파일 과정 ]

  • 개발자가 프로그래밍 언어로 소스파일 작성.
  • 자바 컴파일러가 자바 소스코드(.java)파일을 읽어 바이트코드(.class)코드로 컴파일
  • 컴파일된 바이트코드를 JVM의 클래스로더(Class Loader)에게 전달
  • 클래스 로더는 동적로딩(Dynamic Loading)을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역(Runtime Data area), 즉 JVM의 메모리에 올린다.
  • 실행엔진(Execution Engine)은 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 하나씩 가져와서 실행한다

 

2. 자바 설치 및 IDE (IntelliJ IDEA) 설치

 

① 자바 설치

https://www.azul.com/downloads/?package=jdk 

 

Downloads

No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.

www.azul.com

  • Azul 사이트에서 [무료버전 - Java 11(LTS) - mac OS - ARM 64-bit - JDK - .dmg]  순으로 다운로드 진행
  • 터미널 창을 열고 java -version 을 입력했을 때, 버전이 제대로 나온다면 설치 완료!

터미널창 모습

 

② IntelliJ IDEA 설치 (Ultimate version)

https://www.jetbrains.com/ko-kr/idea/download/#section=mac

 

다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE

 

www.jetbrains.com

  • IDE 란 ? IDE(Integrated Development Environment, 통합 개발 환경). 소스를 작성하는 것부터 서버를 실행, 터미널 사용, 각종 라이브러리 관리 등 다양한 기능이 통합되어 있는 툴

 

3. Java 변수 타입

 

① 변수 기초 지식

  • 변수 : 값을 저장할 수 있는 메모리 번지에 붙인 이름. 변수를 통해 프로그램은 메모리 번지에 값을 저장하고 읽을 수 있다.
  • 변수 선언 : 변수의 타입과 이름을 정하는 것. 자바 언어의 변수 선언의 규칙은 아래와 같다. (출처 : www.oracle.com)
Except for variables, all instance, class, and class constants are in mixed case with a lowercase first letter. Internal words start with capital letters.
Variable names should not start with underscore _ or dollar sign $ characters, even though both are allowed.
Variable names should be short yet meaningful. The choice of a variable name should be mnemonic- 
that is, designed to indicate to the casual observer the intent of its use.
One-character variable names should be avoided except for temporary "throwaway" variables.
Common names for temporary variables are i, j, k, m, and n for integers; c, d, and e for characters.
  • 변수 사용 범위 : 변수는 자신이 선언된 위치에서 자신이 속한 블록 내부까지만 사용이 가능하고 밖에서는 사용할 수 없다. 

변수 사용 범위 에러 예시

  • 변수 초기화: 변수에 최초로 값이 저장될 때 변수가 생성되는 것. 초기화되지 않은 변수는 컴파일 에러를 발생시킨다.

변수 초기화 에러 예시

 

 

 

② Java 변수 타입

 

출처 : https://vertex-academy.com/tutorials/en/types-variables-java-create-variable/

 

  • 정수 타입: 정수를 저장할 수 있는 타입. byte, short, int, long 타입
  • char 타입: 작은따옴표(')로 감싼 하나의 무자 리터럴을 저장할 수 있는 타입
  • String 타입: 큰따옴표(")로 감싼 문자열을 저장할 수 있는 타입
  • 실수 타입: 실수를 저장할 수 있는 타입. float, double
  • boolean 타입: 참과 거짓을 의미하는 true와 false를 저장할 수 있는 타입

 

4. 변수 타입 변환

 

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

 

 

  • 정수 타입 연산에서  int 타입 보다 작은 byte타입의 변수는 int타입으로 자동 타입 변환되어 연산 수행
  • char/short 타입도 마찬가지로 int 타입으로 지동 타입 변환 된다.
  • 반면, long타입의 경우 int타입 보다 허용범위가 크기 때문에 변수결과를 long 타입으로 변수에 저장 한다.

 

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

 

강제 타입 변환 예시
실수 연산에서의 강제 타입 변환 예시

③ 문자열 결합 연산: 문자열과 + 연산을 하면 다른 피연산자도 문자열로 변환되어 문자열 결합이 일어남

 

 

  • 문자열 연산은 앞에서 부터 순차적으로 + 연산 수행
  • 피연산자 중 하나가 문자열일 경우 나머지 피연산자도 문자열로 자동 변환된다.
  • 만약 우선 연산하고 싶은 부분이 있다면 해당 부분을 괄호()로 감싸주고 연산을 수행

 

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

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

※문자열 타입 변환 연습 문제

Q) var1 부터 var4 까지 + 연산을 수행해서 int 타입 result 변수에 9 가 저장되도록 ()에 들어갈 코드를 작성하시오.

long var 1 = 2L;
float var2 = 1.8f;
double var3 = 2.5;
String var4 = "3.9";
int result = ( 이곳의 답안을 작성하기! );
System.out.println(result);

더보기

답안 : (int)(var1 + var2 + var 3+ (int)(Double.parseDouble(var4)));

 

5. 변수와 시스템 입출력

 

① System.out.println(): 괄호에 주어진 매개값을 모니터로 출력하고 개행

② System.out.print( "형식문자열", 값1, 값2, ... ): 괄호에 주어진 매개값을 모니터로 출력하고 개행하지 않음

③ System.out.printf() : 괄호에 주어진 형식대로 출력

출처 : wikifidia

* printf() 참고할 만한 자료 : https://www.baeldung.com/java-printstream-printf

 

Formatting Output with printf() in Java | Baeldung

Learn how to format output using Java's PrintStream.printf() method

www.baeldung.com

 

④ System.in.read(): 키보드에서 입력된 int 타입의 키코드를 읽음

⑤ Scanner: 키보드에 입력된 String 타입의 문자열을 읽음

 

 

'Coding > Java' 카테고리의 다른 글

[06] Java 참조 타입  (0) 2022.11.11
[05] Java 조건문과 반복문  (0) 2022.11.11
[04] Java 연산자와 연산  (0) 2022.11.11
[02] 생활코딩 Java 입문 강의 정리 (2)  (0) 2022.11.04
[01] 생활코딩 Java 입문 강의 정리 (1)  (0) 2022.11.04

+ Recent posts