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
'교육 (Today I Learned) > SeSAC' 카테고리의 다른 글
SeSAC 9일차 / 자바 기초(클래스, 상속) (0) | 2023.07.28 |
---|---|
SeSAC 8일차 / 자바 기초(조건문, 반복문, 클래스) (0) | 2023.07.27 |
SeSAC 6일차 / SQL 기본(SQL 문-5) (0) | 2023.07.25 |
SeSAC 5일차 / SQL 기본(SQL 문-4) (0) | 2023.07.22 |
SeSAC 4일차 / SQL 기본(SQL 문-3) (0) | 2023.07.21 |