교재 목차
Chapter01. 자바를 시작하기전에
Chapter02. 변수(Variable)
Chapter03. 연산자(Operator)
Chapter01. 자바를 시작하기 전에
1. 자바란?
1-1. 자바에 대하여...
- 1996년 썬 마이크로 시스템즈 사에서 개발한 객체지향 프로그래밍 언어
- 2010년 해당 기업이 오라클 사에 인수되면서 자바는 오라클 제품이 되었다.
1-2. 자바의 특징
- 운영체제에 독립적이다. → JVM
- 객체지향언어이다. → 상속, 캡슐화, 다형성
- 비교적 배우기 쉽다. → C++에서 연산자 및 기본구문, Small Talk 에서 객체지향관련 구문을 따와 불필요한 부분을 제거하고 장점만 취해 만든 언어!
- 자동 메모리 관리 → Garbage Collector
- 네트워크와 분산처리를 지원한다. → Java API, 대규모 분산환경에 적합
- 멀티스레드를 지원한다. → Java API, 시스템프리, 스케쥴링
- 동적로딩을 지원한다. → 필요한 시점에만 코드 재로딩
- 느린 처리 속도 → JIT Compiler, Hostpot등의 신기술 도입으로 JVM 속도가 향상되어 속도문제가 상당히 개선됨
1-3. JVM
- JVM은 OS에 종속적이므로 해당 OS에서 실행가능한 JVM이 필요하다.
2. 자바 실행 환경
2-1. JAVA API
- 해당 JDK 버전 + API로 검색 시 해당 버전 클래스의 자세한 설명을 볼 수 있다.
2-2. 자바 실행 순서
- 프로그램 실행에 필요한 클래스 파일 로드
- 클래스 파일 검사
- 지정된 클래스에서 main함수 호출
2-3. public/static/void/main/String[] args 일명, PSVM!
💕 public
JAVA는 어플리케이션이 실행되면 제일 먼저 메인(main)함수를 실행시키고 메인함수는 모든 실행프로그램에 기본이 되는 함수이기 때문에 어디에서나 접근이 가능해야한다.
그렇기 때문에 접근제한자를 public을 써주어서 모든 클래스에서 접근이 가능하도록 한다.
💕 static
자바는 변수나 함수를 메모리에 할당하는 방법이 2가지 있다.
하나는 static영역에 선언하는 것이고, 다른 하나는 heap영역에 선언(new 연산자 사용)하는 것이다.
main 메소드는 프로그램에 없어서는 안되는 기본이 되는 함수이기 때문에 static을 사용하여 메모리에 항상 살아있을 수 있게 선언해주어야 한다.
💕 void
void는 함수가 끝날 때 리턴값이 없이 끝내라는 의미이다.
💕 main
자바의 시작은 main 함수명으로 시작해야 한다. 이것은 자바의 규칙이다
💕 String[] args
"main 메소드를 실행하는 데 필요한 값들을 args이라는 문자열을 배열을 통해서 main 메소드에 전달하겠다"
라는 의미이다. args는 변수명이기 때문에 꼭 args가 아니여도 상관은 없다. "String[] 변수명" 구문은 필수.
출처: https://velog.io/@tae_in/posts
Chapter02. 변수(Variable)
1. 변수의 선언과 초기화
1-1. 변수란?
값을 저장하는 공간
구분
|
선언방법
|
초기화
|
형식
|
변수타입 변수명;
|
변수타입 변수명 = 담을 값;
|
예시
|
int age;
|
int age = 25;
|
1-2. 변수의 명명규칙
1. 대소문자가 구분되며 길이에 제한이 없다.
2. (예약어=키워드=리져브드워드)를 사용해서는 안 된다.
3. 숫자로 시작해서는 안 된다.
3. 특수문자는 '-', '$'만을 허용한다.
1-3. 변수의 선언과 초기화
int a; // 선언 a = 1 // 초기화
2. 변수의 타입
2-1. 변수란?
데이터를 저장하기 위한 메모리 공간
2-2. 변수의 타입
- 기본형(primitive type) : 계산을 위해 실제 값을 저장한다.
- 참조형(reference type) : 객체의 주소를 저장한다. null 또는 객체의 주소
기본형(primitive type)
- 기본형 바이트 수 및 값의 범위
|
1byte
|
2byte
|
4byte
|
8byte
|
논리형
|
boolean
|
|
|
|
문자형
|
|
char
|
|
|
정수형
|
byte
|
short
|
int
|
long
|
실수형
|
|
|
float
|
double
|
자료형
|
저장 가능한 값의 범위
|
bit
|
byte
|
boolean
|
false, true
|
8
|
1
|
char
|
'\u0000' ~ '\uffff' (0 ~ 65535)
|
16
|
2
|
byte
|
-128 ~ 127
|
8
|
1
|
short
|
-32768 ~ 32767
|
16
|
2
|
int
|
-2147483648 ~ 2147483647
|
32
|
4
|
long
|
-9223372036854775808 ~ 9223372036854775807
|
64
|
8
|
float
|
1.4E-45 ~ 3.4E38
|
32
|
4
|
double
|
4.9E-324 ~ 1.8E308
|
64
|
8
|
- 기본형 특징
1. 모두 소문자로 시작된다.
2. 비객체 타입이므로 null 값을 가질 수 없다. (기본값이 정해져 있음)
3. 변수의 선언과 동시에 메모리 생성
4. 모든 값 타입은 메모리의 스택(stack)애 저장됨
5. 저장공간에 실제 자료 값을 가진다.
참조형(reference type)
타입
|
기본값
|
할당되는 메모리 크기
|
배열(Array)
|
Null
|
4 byte
(객체의 주소값을 저장하니까)
|
열거(Enumeration)
|
Null
|
|
클래스(Class)
|
Null
|
|
인터페이스(Interface)
|
Null
|
- 종류
- 배열 타입
- 열거 타입
- 클래스
- 인터페이스
- 특징
- 기본형과는 달리 실제 값이 저장되지 않고, 자료가 저장된 공간의 주소를 저장한다.
- 즉, 실제 값은 다른 곳에 있으며 값이 있는 주소를 가지고 있어서 나중에 그 주소를 참조해서 값을 가져온다.
- 메모리의 힙(heap)에 실제 값을 저장하고, 그 참조값(주소값)을 갖는 변수는 스택에 저장
- 참조형 변수는 null로 초기화 시킬 수 있다.
3. 형변환
boolean을 제외한 나머지 7개의 기본형은 서로 형변환이 가능하다.
기본형과 참조형은 서로 형변환할 수 없다.
서로 다른 타입의 변수간의 연산은 형변환을 하는 것이 원칙이지만,
값의 범위가 작은 타입에서 큰 타입으로의 형변환은 생략할 수 있다.
Chapter03. 연산자(Operator)
기본 연산자 종류와 우선순위
종류
|
연산자
|
우선순위
|
증감 연산자
|
++, --
|
1순위
|
산술 연산자
|
+, -, *, /, %
|
2순위
|
시프트 연산자
|
>>, <<, >>>
|
3순위
|
비교 연산자
|
>, <. >=, <=, ==, !=
|
4순위
|
비트 연산자
|
&, |, ^, ~
|
~만 1순위, 나머지는 5순위
|
논리 연산자
|
&&, ||, !
|
!만 1순위, 나머지는 6순위
|
조건(삼항) 연산자
|
?, :
|
7순위
|
대입 연산자
|
=, *=, /=, %=, +=, -=
|
8순위
|
반응형
'개념' 카테고리의 다른 글
[JAVA의 정석] Chapter06 (2) | 2024.09.07 |
---|---|
[JAVA의 정석] Chapter04 -05 (5) | 2024.09.07 |
동아리 '공간감각' 자바 스터디 (3) | 2024.09.06 |
[이것이 자바다] chapter.16 확인 문제 (0) | 2023.04.11 |
[이것이 자바다] chapter.15 확인 문제 (0) | 2023.04.04 |