Java 자바
객체지향 프로그래밍 언어 중 하나로, 운영체제에 독립적으로 실행이 가능하다는 큰 장점으로 전 세계적으로 많이 쓰이는 언어이다.
특징
#1. OS에 독립적
JRE(Java Runtime Environment)가 설치되어 있는 모든 운영체제에서 실행이 가능하도록 만들어짐.
JRE는 JVM(자바 가상 머신)과 표준 클래스 라이브러리로 이루어져 있음.
#2. 객체 지향 언어(OOP, Object Oriented Programming)
객체지향 프로그래밍 개념을 사용하여, 모든 기능은 객체로 만들어 사용됨.
따라서, 유지보수가 쉽고 확장성이 높음
#3. 함수형 프로그래밍 지원
자바 8버전부터 람다식과 스트림을 추가하여, 컬렉션의 요소를 필터링/매핑/집계 처리가 쉬워지고 코드가 간결해지는 장점이 생김.
#4. 자동 메모리 관리(Garbage Collection)
자동으로 사용하지 않는 메모리를 가비지 컬렉터가 수거하여 메모리 관리가 편해지고 핵심 코드에 집중할 수 있음.
JVM(Java Virtual Machine)
특정 프로그래밍 언어를 기계가 이해할 수 있는 언어로 옮기는 과정을 컴파일이라고 하며,
자바 코드로 작성한 프로그램을 해석하고 실행하는 과정을 JVM이 수행한다.
즉, OS 위에 JVM을 설치함으로써 운영체제에 독립적일 수 있다.
JDK(Java Develoment Kit)
JRE와 개발에 필요한 도구 전체를 말함.
변수의 타입
기본 타입(Primitive Type)
: 데이터의 실제 값을 저장
① 논리형 → boolean
true or false를 값으로 가짐.
② 문자형 → char
하나의 문자만 저장 가능함.
③ 정수형 → byte, short, int, long
int는 CPU가 가장 효율적으로 처리할 수 있는 타입으로 정수형 중에 주로 사용되며,
각각 1byte, 2byte, 4byte, 8byte의 크기를 가짐.
④ 실수형 → float, double
float은 접미사가 없으면 컴파일 에러가 발생하므로 주로 double을 사용함
참조 타입(Reference Type)
: 데이터가 저장된 주솟값을 저장 (※ 자바는 참조형 변수 간의 연산이 불가능하다.)
- 클래스이름 변수이름;
Ex. Student name = new Student();
객체를 생성하여 해당 주소를 변수에 저장함으로서 초기화함.
String 클래스
하나의 문자만을 다룰 수 있는 char과 달리 문자열을 다룰 수 있는 타입이다.
다른 타입과 달리 클래스를 통해 다뤄지는데, 이는 클래스가 제공하는 관련 메서드들을 쉽게 사용하기 위함이다.
또, 문자열이 담겨 있는 주소가 변수에 저장된다.
선언방식
1. 문자열 리터럴을 대입하는 방법
String string = "안녕하세요";
※리터럴, Literal : 문자가 가리키는 값 자체를 의미하여, 컴퓨터 내부에 해당 값 자체가 생성됨.
2. new 연산자로 객체를 생성하여 대입하는 방법
String string = new String("안녕하세요");
< 대표적인 String 메서드 >
☆ charAt(int index)
문자열에서 특정 인덱스에 해당하는 문자를 반환하며, 문자열의 길이보다 큰 인덱스나 음수를 전달하면 오류가 발생함.
☆ compareTo(String str) / compareToIgnoreCase(String str)
문자열을 인수로 전달된 문자열과 비교하여 같으면 0, 다르면 1을 반환함.
대소문자를 구분하지 않고 비교하려면 compareToIgnoreCase를 이용해야 함.
☆ concat(String str)
두 문자열을 연결하여 새로운 문자열로 만듬.
☆ indexOf(int ch) / indexOf(String str, inf fromIndex)
특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환함.
포함되지 않은 문자열이면 -1을 반환함.
☆ trim( )
맨앞, 맨뒤에 포함된 공백을 제거함.
☆ toLowerCase( ) / toUpperCase( )
모든 문자를 소문자 또는 대문자로 변환함.
☆ length( )
문자열의 길이를 반환함.
☆ isEmpty( )
문자열의 길이가 0이면 true, 0이 아니면 false.
☆ split(String regex)
인수로 전달된 표현식에 따라 문자열을 나누어 줌.
☆ substring(int beginIndex) / substring(int begin, int end)
해당되는 인덱스를 통해 구간을 지정하여 새로운 문자열로 만듬.
# StringTokenizer 클래스
문자열을 특정 구분자를 기준으로 나누어주는 클래스로, 쪼개진 문자열들을 토큰(token)이라고 한다.
countTokens( ) : 남은 토큰의 개수를 반환함.
hasMoreElements( ), hasMoreTokens( ) : 현재 위치 뒤에 하나 이상의 토큰이 있으면 true, 아니면 false를 반환함.
nextElements( ), nextToken( ) : 다음 토큰을 반환하나, 반환형이 각각 Object, String으로 다름.
# StringBuilder 클래스
여러 개의 문자열을 하나의 객체에 append( ) 메서드를 통해 연결해주는 클래스이다.
출력 시에는 toString( )을 통해 확인할 수 있다.
# StringBuffer 클래스
생성된 인스턴스는 String클래스로 생성된 것과 달리 값을 변경하거나 추가할 수 있다.
16개(기본) 이상의 문자를 저장할 수 있는 내부 버퍼를 가지므로, 문자열 추가시 공간의 낭비가 없고 속도 효율이 높다.
append( ) : 문자열의 가장 뒤에 인수로 전달된 값을 추가함. (*concat( )과 같은 결과지만, 처리 속도가 훨씬 빠르다.)
capacity( ) : 인스턴스의 현재 버퍼 크기를 반환함.
delete( ) / deleteCharAt( ) : 인덱스에 해당하는 부분 문자열을 원래 문자열에서 제거함.
insert( ) : 원래 문자열의 중간에 다른 문자열을 삽입함.
'▶CodeStates Back-End > Section 1' 카테고리의 다른 글
TIL [0509] 배열 (0) | 2022.05.12 |
---|---|
TIL [0506] 제어문 (0) | 2022.05.12 |
TIL [0503] Git (0) | 2022.05.03 |
TIL [0502] Linux (0) | 2022.05.03 |
TIL [0427] HTML, CSS (4) | 2022.04.28 |