#01 자바 프로그래밍의 기본
자바의 특징
- 객체 지향 언어
: 하나의 기능을 객체로 만들고, 이러한 객체들을 결합해서 하나의 프로그램을 완성하는 기법 (상속, 캡슐화, 다형성)
- 이식성
: 운영체제 종류와 상관없이 어느 환경에서나 실행가능
- 멀티 스레드(Multi-Thread)
: CPU를 최대한 활용하기 위해 프로그램의 2가지 이상을 동시에 실행할 수 있는 기능
1) 동시성 : 멀티 작업을 위해 하나의 코어에서 멀티 스레드가 번갈아 가며 실행
2) 병렬성 : 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행
- 메모리 자동 정리
: 자동으로 가비지 컬렉터(GC : Garbage Collector)가 사용하지 않는 메모리를 주기적으로 수거하고 관리
- 풍부한 오픈소스 라이브러리
: 무료로 제공하는 라이브러리가 많이 개발되어 있음
자바의 단점
- 실행을 위해 자바 가상 머신을 거쳐야 하므로 다른 언어들에 비해 실행 속도가 느림
- 예외처리가 잘 되어 있으나 개발자가 처리를 지정해줘야 함
#02 변수와 자료형
1. 변수
- 메모리 : 컴퓨터가 프로그램을 실행하는 데 필요한 것들을 미리 올려놓고 사용하는 저장 공간
- 변수 : 메모리에 값을 저장하기 위해 할당해 놓은 특정 공간
- 변수 선언 : 자료형 + 변수명;
- 변수에 데이터 입력 : 자료형 + 변수명 = 값 (대입 연산자 "=" 사용)
- 변수의 사용 범위 : 선언되는 중괄호{} 안에서만 사용 가능, scope 이슈 고려해서 변수 선언 위치 정하기
++ 예약어 : 변수로 사용 xx
분류 | 예약어 |
논리값 | true, false |
접근 제한자 | public, private, protected |
클래스 관련 | class, abstract, interface, extends, implements, enum |
객체 관련 | new, instanceof, this, super, null |
기본 자료형 | boolean, byte, char, short, int, long, float, double, string |
메서드 관련 | void, return |
제어문 관련 | if, else, switch, case, default, for, do, while, break, continue |
예외 처리 관련 | try, catch, finally, throw, throws |
기타 | package, import, synchronized, final, static |
2. 자료형
1) 기본 자료형 : 실제 데이터 값을 저장. 각각 저장 크기가 다르며 기본값이 정해져 있음. 정수형, 실수형, 논리형
2) 참조 자료형 : 데이터가 저장되어 있는 메모리 번지를 저장. 기본값이 정해져 있지 않기 때문에 null값이 존재.
- 프로그램을 실행할 때 필요한 메모리는 Stack, Heap 이라는 두 공간으로 나뉘어 있음
- 기본 자료형은 Stack이라는 공간에 자리를 할당받고 데이터를 저장
- 참조 자료형은 Heap이라는 공간에 데이터를 저장하고, 그 주소를 Stack에 저장
- 참조 자료형의 대표적인 형태 : 배열, 클래스, 인터페이스가 있음
++ 참조 자료형 - String
String 변수를 선언할 때, 생략된 구문이 있음.
"객체"를 생성하였다.
ex) String a = "apple"; -----> String a = new String("apple");
3. 형 변환
1) 자동 형 변환(Promotion)
- 크기가 작은 자료형에서 큰 자료형으로 변환
2) 강제 형 변환(Casting)
- 크기가 큰 자료형에서 작은 자료형으로 변환
#03 연산자
1. 연산자 종류
연산자 분류 | 종류 | 연산자 | 기능 |
단항 | 부호 | +, -, *, /, % | 사칙연산, 나머지 계산 |
증감 | ++, -- | 음수, 양수 부호 | |
논리 | ! | 논리 부정 | |
이항 | 논리 | &, |, &&, || | 논리곱, 논리합 |
문자열 | + | 문자열 연결 | |
대입 | =, +=, -=, *=, /=, %= | 우변의 값을 좌변에 대입 | |
비교 | ==, !=, >, <, >=, <=, instanceof | 값 비교 | |
삼항 | 조건식 | 조건식 ? A : B | 조건식 결과에 따라 A, B 선택 |
2. 연산자 우선순위
우선순위 | 종류 | 연산자 |
높음 ↑ 낮음 |
최우선 연산자 | 괄호((), []) |
단항 연산자 | 증감(++, --), 부호(+, -), 비트(~), 논리(!) | |
산술 연산자 | 산술(*, /, %) | |
산술(+, -) | ||
쉬프트(>>, <<, >>>) | ||
비교 연산자 | 비교(<, >, <=, >=, instanceof) | |
비교(==, !=) | ||
논리 연산자 | 비트 논리(&, ^, |), 논리(&&, ||) | |
삼항 연산자 | 조건(? :) | |
대입 연산자 | 대입(=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=) | |
콤마 연산자 | 콤마(,) |
'개발 > Java' 카테고리의 다른 글
JAVA_07_클래스 (0) | 2024.07.15 |
---|---|
JAVA_04~06_제어문(조건문, 반복문), 배열 (0) | 2024.07.15 |
[JavaScript] - for in 문 (0) | 2023.07.21 |
Java의 Wrapper 클래스 (0) | 2023.07.20 |
Java의 StringBuilder/StringBuffer 클래스 (0) | 2023.07.20 |