자바란?
객체지향 프로그래밍(OOP, Object Oriented Programming Language) 언어이다.
자바의 특징
운영체제(OS)에 독립적이다.
자바 응용프로그램은 자바가상머신(JVM, 컨테이너)하고만 통신하고 JVM이 자바 응용프로그램으로 부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
자바로 작성된 프로그램은 운영체제에 독립적이지만, JVM은 운영체제에 종속적이다.
객체향 언어이다.
자동 메모리 관리(GC, Garbage Collection)
동적 로딩이 가능하다.
자바 개발도구(JDK, Java Develop Kit)
JRE
Java Compiler
*.java 파일을 *.class라는 Java Byte Code 변환해주는 역할을 수행한다.
*.class파일은 기계어가 아니기 때문에 OS에서 바로 실행되지 않고 JVM에서 실행되고 JVM이 OS가 ByteCode가 이해할 수 있도록 해석 해준다.
자바 개발에 유용한 도구
JRE는 Java API Library와 Java Class Loader, JVM이 포함되어 있다.
클래스패스(Class Path)
클래스를 찾기 위한 경로를 말한다. JVM이 자바 어플리케이션(프로그램, ex. SpringBoot)을 실행할 때, 클래스 파일을 찾는데 기준이 되는 파일 경로를 말한다.
java
또는 jre
로 바이트 코드 파일을 실행하면 해당 class 파일을 찾는다.소프트웨어 개발에서 실행 가능한 애플리케이션으로 만드는 작업은 정형화 되어 있다. 자바 애플리케이션 개발을 예로 들면 다음과 같은 일련의 작업들이 필요하다.
작업 목록
빌드 도구(Build Tool)
그레이들
정의
스크립트 작성법
build.gradle
이 핵심 파일이다.변수
변수란?
컴퓨터 언어에서 변수란, 값을 저장할 수 있는 메모리상의 공간을 의미한다. 변수를 사용하기 전에 먼저 변수를 선언해야한다.
변수가 선언되면 메모리에 변수의 타입에 알맞은 크기의 저장공간이 확보되어, 값을 저장할 준비가 된다.
변수 선언 방법은 변수의 타입과 이름을 함께 작성해주면 된다. 단, 변수타입은 변수에 담을 값의 종류와 범위를 충분히 고려하여 결정해야 한다.
//선언방식: 변수타입 변수이름;
int number=0;
int a=1, b=2;
변수를 사용하기에 앞서 적절한 값을 저장해주는 것이 필요하다. 이것을 변수 초기화 라고 한다. 변수 초기화를 하지 않는다면 쓰레기 값이 들어가기 때문에 적절한 값을 초기화 하는 것이 중요하다.
명명 규칙(Naming Convention)
변수의 이름, 메서드의 이름, 클래스의 이름 등 모든 이름을 정의할 때는 반드시 지켜야하는 규칙이 있다.
대소문자가 구분되며 길이에 제한이 없다.
예약어를 사용하면 안된다.
숫자로 시작해서는 안된다.
특수문자는 '_'와 $만을 허용한다.
클래스 이름의 첫 글자는 항상 대문자로 한다.
-변수와 메소드의 이름은 항상 소문자로 한다.
여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
-e.g: lastIndex, StringBuffer
상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_(언더바)'로 구분한다.
-e.g: PI, MAX_NUMBER, MIN_NUMBER
변수 타입(Type)
모든 변수는 타입이 있으며, 타입에 따라 저장할 수 있는 값의 종류와 범위가 결정된다.
변수의 타입은 크게 기본형(Primitive Type)과 참조형(Reference Type) 2가지로 나뉜다. 기본형은 실제 값(data)을 저장하는 반면, 참조형 변수는 어떤 값이 저장되어 있는 주소 값을 저장한다.
<aside> 💡 기본형(Primitive type)
</aside>
3.1 기본형(primitive type)
기본형에는 크게 논리형, 문자형, 정수형, 실수형 총 4가지로 구분한다.
<aside> 💡 리터럴(Literal)
</aside>
논리형: true와 false 중 하나를 값으로 갖는다. 조건식과 논리적 계산에 사용된다.
-boolean(1 byte)
문자형: 문자를 저장하는데 사용되며, 변수 당 하나의 문자만을 저장할 수 있다. 자바에서는 유니코드(Unicode) 문자체계를 사용하기 때문에 크기가 2byte 이다.
-char(2 byte)
정수형: 정수 값을 저장하는데 사용된다. 대표적으로 int와 long 타입이 있다.
-byte(1 byte), short(2 byte), int(4 byete), long(8 byte)
-기본형은 int형이다. 그렇기 때문에 long 타입으로 변수를 선언하고 값 할당 시, 접미사(L 또는 l)를 붙이지 않으면 기본적으로 int형으로 간주한다.
실수형: 실수 값을 저장하는데 사용된다.
-float(4 byte), doublet(8 byte)
-가수와 지수형태로 구분해서 저장한다.
-기본형은 double이다. 그렇기 때문에 "접미사"를 사용하지 않으면 자동으로 double 형으로 간주한다.
연산자는 프로그래밍 언어에서 가장 기본적이면서도 중요한 요소이다. 각 연산자의 특징과 실행결과, 그리고 우선순위에 대해서 잘 알고 있어야 한다.
연산자 우선순위
제어문
배열
같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열(Array)'이라고 한다.
배열의 특징
배열은 길이만큼 요소들을 가지고, 각각의 요소는 인덱스(Index)와 값(Value)를 가진다.
인덱스는 해당 요소에 접근하여 값을 선택(Select) / 수정(Modify) / 삭제(Delete)를 할 수 있다.
배열의 선언
원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[ ]를 붙이면 된다. 대괄호는 타입 뒤에 붙여도 되고 변수이름 뒤에 붙여도 되지만, 가능하면 타입의 뒤에 붙이는 것이 좋다.
int[] score;
String[] students_name;
배열의 생성
배열을 선언 후, 생성 해야 한다. 배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이다. 배열을 생성해야 비로소 데이터를 저장할 수 있는 공간이 만들어진다.
int [] score;
score = new int[5];
// or
int[] score = new int[5];
배열의 생성 단계
int[] score;
int 형 배열 참조변수 score를 선언한다. 데이터를 저장할 수 있는 공간은 아직 할당되지 않았다.
score = new int[5];
연산자 'new'에 의해서 메모리의 빈 공간 5개의 int 형 데이터를 저장할 수 있는 공간이 할당된다. int 형의 Default 값인 0으로 초기화 된다.
마지막으로 대입연산자('=')에 의해 배열의 주소가 int 형 배열 참조변수 score에 저장된다.
배열의 값 초기화 방법
2차원 배열
함수
클래스
객체지향 프로그래밍