교육 (Today I Learned)/SeSAC

SeSAC 7일차 / 자바 기초(변수, 연산)

Bay Im 2023. 7. 26. 00:39
SeSAC 7일차(2023-07-25)
자바 기초(변수, 연산)


컴퓨터 구조

 

- CPU

명령어를 해석하여 실행하는 하드웨어

 

- 주기억장치(Memory)

실행되고 있는 프로그램의 데이터를 저장하기 위한 기억장치

 

- 보조기억장치(Disk)

프로그램을 실행시키기 위해 각종 데이터를 저장하기 위한 기억장치

 

- GPU

그래픽 연산을 빠르게 처리하여 결과값을 모니터에 출력하는 연산 장치

 

 

 

- 운영체제

하드웨어, 시스템 리소스를 제어하여 사용자에게 인터페이스 제공

커널 영역에서 프로세스와 스레드, 스케줄러, 파일관리자 등을 통해 프로그램 실행 관리

Window, Max os, Linux 등이 대표적인 OS

 

- 셸 프롬포트

운영체제 상의 다양한 기능과 서비스를 사용자가 사용할 수 있게 제공되는 인터페이스

 

 

 

 

 

자바의 실행 구조

 

- 자바 실행과정

Code-> Compiler-> JVM-> Mobile, Window, Mac, Linux

 

 

- 자바의 목적

역사: 1991년 제임스 고슬링에 의한 그린 프로젝트 시작

1995년 자바 발표

 

IOT 목적으로 출시

플랫폼 호환성 문제 해결

플랫폼 독립적인 언어 개발

 

 

 

 

 

자바 기초

 

- 변수(variable)

 

기본 타입:

논리형: boolean(1 byte)

문자형: char(2 byte)

정수형: byte(1 byte), short(2 byte), int(4 byte), long(8 byte)

실수형: float(4 byte), double(8 byte)

 

 

레퍼런스 타입:

배열(array)에 대한 레퍼런스

클래스(class)에 대한 레퍼런스

인터페이스(interface)에 대한 레퍼런스

 

문자열(String)은 레퍼런스 타입

 

 

 

- 자바 변수 정의

변수의 데이터타입을 선언한 후 변수이름 정의

변수는 할당된 데이터를 바꿀 수 있음(참조 변환)

변수를 먼저 정의한 후 나중에 데이터 할당 가능(필드의 경우 null 값으로 자동 초기화)

 

기본 형태)

데이터타입 변수이름 = 데이터;

 

ex)

Int myNumber = 100;

String myName = “최원칠”;

 

Int myNumber = 100;

myNumber = 200;

 

String myString;

myString = “문자열 할당”;

 

 

 

- 변수 재할당

 

ex)

int num1 = 10;

int num2 = num1;

num1 = 20;

System.out.println(num1);  => 20 출력

System.out.println(num2);  => 10 출력

 

 

 

- 상수

값이 변하지 않는 변수

변수 정의 앞에 final 선언하여 변수의 값을 고정

한번 초기화된 상수는 이후 재할당 불가

 

Final 데이터타입 변수이름(대문자) = 데이터;

 

 

 

- 데이터 출력

println(): 변수의 할당된 데이터 또는 데이터 자체를 터미널에 출력하고자 하는 경우

 

ex)

int myNumber = 100;

System.out.println(myNumber);  => 100 출력

 

 

 

 

 

자료형

 

- 리터럴(literal):

데이터를 직접적인 값으로 표현하는 방법

정수, 실수, 문자, 논리, 문자열 리터럴이 있음

 

 

 

-연산자

데이터 간의 연산을 수행해주는 기호문자

 

산술 연산: +, -, *, /, %

대입 연산: =, +=, -=, *=, /=, %=

비교 연산: ==, !=, <, >, <=, >=

논리 연산: !, &, |, &&, ||

 

 

 

- 정수(int, long)

일반적인 숫자 리터럴은 int형으로 정의

long 타입 정의 시 숫자에 L을 붙인 리터럴 사용

 

ex)

int num1 = 10;

long num2 = 30L;

 

 

 

- 실수(float, double)

소수점 형태나 지수 형태의 리터럴 사용

일반적인 실수 리터럴은 double 형으로 정의

 

float 타입 정의 시 실수에 f를 붙인 리터럴 사용

 

ex)

double num1 = 0.1234;

float num2 = 0.1234f;

 

 

 

- 문자(char)

작은 따옴표를 활용하여 리터럴

 

ex)

char c1 = ‘a’;

char c2 = ‘’;

 

 

 

- 문자열(String)

레퍼런스 타입으로 여러 문자인 문자열을 표현

큰 따옴표를 활용하여 리터럴

문자열에서 +는 연결 연산자

 

ex)

String s1 = “abc”;

String s2 = “안녕”;

String s3 = s1 + s2;

 

 

 

-부울(Boolean)

true false를 표현

 

논리 연산자 사용 가능

&&: and 연산

||: or 연산

!: not 연산

 

 

 

- 타입 변환

( ) 안에 변환할 타입 지정하여 강제 변환

강제 변환은 값 손실 우려

 

ex) int num1 = (int) 10.1;

 

 

 

- Null 타입

레퍼런스 타입 변수만 할당 가능

아무것도 초기화 되지 않았다는 의미

ex) String str = null;

 

 

 

- Scanner 클래스

System.in에게 키를 읽게 하고 읽은 바이트를 문자, 정수, 문자열 등 다양한 타입으로 변환하여 리턴

 

메소드에 따라 원하는 타입으로 읽어올 수 있음.

next(): String으로 읽음

nextInt(): int로 읽음

nextDouble(): double로 읽음

nextBoolean(): boolean으로 읽음

 

ex)

import java.util.Scanner

 

Scanner scanner = new Scanner(System.in);

 

String name = scanner.next();

System.out.print(name);

int num = scanner.nextInt();

System.out.print(num);

 

Scanner.close();

 

 

 

 

 

오늘의 실습 코드: https://github.com/yubin-im/SeSAC/tree/70824d99509fce2e956827f73f694834377df7a1/20230725