[Java] 용어의 이해
Java
자바의 특성
- 호환성
- 데이터 파악
- 변수 선언 + 초기화
- 지역 변수의 사용은 초기화 필수 : 메서드 안에 선언 되어 있는 변수 : 실행이 되야 자리가 생긴다.
- 전역 변수는 선언하면 기본값이 세팅된다. static, new를 이용해서 메모리에 올린다. 기본 값 : 숫자 = 0, 참조형 변수 = null, 문자 = ‘ ‘ (문자는 공백문자가 있어야 함.), boolean = false
용어의 이해
** 자바용어
-
- Package - 위치 (폴더 - 디렉토리) - 소문자로 작성 : 큰 -> 작은
- 도메인 사용 naver.com -> com.naver.board.controller
-
Class(객체) - 맨 앞자는 대문자로 사용 - 단어 여러개를 말하듯이 작성. 한단어의 맨 앞은 대문자로 한다. : PrintInfo
- 변수 : 맨 앞 자는 소문자로 사용 - 뒤에 단어들의 앞은 대문자로 한다.
1. 기본형 변수 - 고정 길이 - 값을 가지고 있음.
a. 숫자 - byte, short, int(기본값), long (l) / float(f), double(기본값)
- int 타입을 double 타입으로 캐스팅 : 10 -> (double) 10 -> 10.0 / 10 * 1.0 -> 10.0
- String 타입을 int 타입으로 변환 : "10" -> integer.parseInt("10") -> 10
- int 타입을 String 타입으로 변환 : 10 -> String.vlaueOf(10) or 10 + "" -> "10"
- scanner.nextLine() -> 입력 받은 것은 모두 문자열 : web으로 통신 받은 것은 모두 문자열
- char - 2byte 숫자 (양수) -> int
- 캐스팅 - 형변환 - 관련이 있는 데이터끼리. 자동 - 큰 -> 작은(손실이 없다.), 강제 - 작 -> 큰 : (타입) 데이터
2. 참조형 변수 - 가변 길이 - 주소를 가지고 있음. : static - Class.변수 / new Class(); // 생성자
a. 배열 [] - 같은 타입 여러 개(주소는 1개) - index 사용 ex - scores[3].length
배열의 모든 데이터 출력
for문 : for(int i = 0; i < scores.length; i++) System.out.println(scores[i]);
foreach문(향상된 for문) : for(score : scores) System.out.println(scores[i]); // 변수 1개를 더 선언하여 사용
데이터가 나중에 생기는 경우. 인덱스 사용 : int [] scores = new int[10];
ex - int [] scores = {100, 90, 80}; == new int[] {100,90,80};
ex - 1 ~ 10 까지 숫자를 더해 보세요. :
```java
int sum = 0;
for(int i = 1; i <= 10; i++) sum += i; // ( sum = sum +1 같은 의미)
```
ex - 점수 합계와 평균을 구해 보세요 :
```java
int sum = 0; int [] scores = {100, 90, 80};
// 합계 구하기
for(int i = 1; i <= 10; i++) sum += scores[i]; // for 문 사용
for(int score : scores) sum += scores[i]; // foreach 문 사용
// 평균 구하기 (int)
int avg = sum / scores.length; -> 90
// 평균 구하기 (double)
double avg = ((double) sum) / scores.length; -> 90.0 // sum을 (double)을 사용하여 강제 캐스팅
```
b. class - 변수들, 메서드들()
- 다른 타입의 여러개를 저장할 수 있다. : 연관이 있는 여러 개
c. String - char[] : index 관련 처리, length() 를 가지고 있음.
- .charAt(3) - 위치(3)에 해당하는 문자열
- .length() - 문자열 길이
- .replace() - 데이터 바꾸기
- .indexOf - 찾는 글자의 위치 찾기
- .contains() - 포함되어 있는지 확인,
- .substring() - 문자 잘라내기
- .lastIndexOf() - 뒤에 부터 위치 찾기
3. 컬렉션 & Map
- 자바에서는 컬렉션 프레임워크를 통해 다양한 자료구조를 제공합니다.
이 프레임워크는 데이터를 효율적으로 관리하기 위한 클래스들의 집합입니다.
• List:
□ 순서가 있는 데이터를 저장하는 인터페이스입니다.
□ 중복된 값을 허용하며, 인덱스로 객체를 관리합니다.
□ 대표적인 구현 클래스: ArrayList, LinkedList, Vector
• Set:
□ 순서가 없는 데이터를 저장하는 인터페이스입니다.
□ 중복된 값을 허용하지 않습니다.
□ 대표적인 구현 클래스: HashSet, TreeSet
• Map:
□ 키(key)와 값(value) 쌍으로 데이터를 저장하는 인터페이스입니다.
□ 키는 중복되지 않으며, 값은 중복 저장 가능합니다.
□ 대표적인 구현 클래스: HashMap, TreeMap
- 컬렉션 프레임워크를 사용하여 데이터를 효율적으로 관리할 수 있습니다.
각 인터페이스와 클래스는 다양한 메서드를 제공하여 데이터 추가, 삭제, 검색, 저장 등을 수행할 수 있습니다. 😊
4. 연산자
a. % - 배수를 찾아낼 때 사용. 3의 배수 : num % 3 == 0
b. i++ (후증가), ++i (선증가), i-- (후감소), --i (선감소)
ex - 1증가 시키고 출력한다.
i = i + 1; == i += 1; == i++;
System.out.prinln(i)
-- System.out.println(++i);
c. 삼항 연산자(조건 연산자) : (조건) ? True : false
(조건) ? True. (조건) ? Ture : false
d. && 연산자 : 둘 다 True 일 경우 True
e. | | 연산자 : 둘 중 1개가 True 면 True
f. instanceof : 타입이 같은지 물어볼 때
5. 제어문
a. 조건문 - if, switch
- if - if ~ true 면 실행, else 면 false 조건 실행, else if 면 조건문 안에 조건문 생성 가능.
- switch - 라벨을 이용해 이동하고 아래로 실행
• switch (변수 & 수식) { case 값 : 처리문; break;} // break 를 사용하면 다음 case로 넘어가지 않고 종료 됨.
// break - switch, for ,while 문을 빠져나감.
b. 반복문 - for, while
- for - 규칙, 반복 횟수 정해져 있는 조건
• for ( 초기값, 초기값 ; 반복조건 ; 증감, 증감) for ( ; ; ) // 초기값은 int 타입
• foreach - for ( 변수 : 변수들 [ ] ), 컬렉션도 사용 가능. // 향상된 for == foreach
- while - while(조건) - while(true) : 무한 반복 // 메뉴 선택 처리하기 위해 사용 - Controller
6. 패키지
a. java.lang - 자주 import 되는 패키지
System(클래스).out(변수).println(메서드)(“test”);
// package - 꾸러미(묶음) : 위치 = 폴더
// class - 방 : 파일 (~.java)
package thisisjava;
// public - 공통, 공유 : 다른 장소(package)에서도 사용 가능하다.
public class Hello {
// public - 공동, 공유 : 다른 장소(package)에서도 사용 가능하다.
// static - 정적인, 고정된 <-> non-static(아무 표시가 없음) -> new (새로 만들 때 : 생성자)
// - 자동으로 메인 메모리에 올라가고 쫓겨나지 않아서 주소가 고정되어 있다.
// - 사용하려면 Hello(클래스, 패키지).main()로 사용한다. (JVM이 사용)
// void - 비어있다. : 메서드(처리 명령어 들의 집합) 처리 후 돌려 받는 것이 없다.
// main - 주된, 주요한 : 시작되는 부분의 처리문이 있는 곳. 뒤에 ()이 있다.
// - main에서 처리해야할 명령어는 여러개로 묶은 한개로 만들기 위해서 {~~~}
// - main 메서드에 처리할 때 사용되는 데이터를 () tkdldp sjgdjwnsek.
// String - 문자열. 끈 줄, 이어지다. "" 안에 있는 데이터 또는 new String()
// [] - 여러개를 의미. 베열 - 똑같은 데이터 타입이 여러개 나열 되어 있는 선언
// args - arguments의 약자. 논재아, 논의, 논거 - if 문의 결정되게 한느 근거 데이터
// -- 이곳이 처음 시작하는 부분 : JVM이 처음 찾아서 실행하는 부분
public static void main(String[] args) {
// System - 체계, 컴퓨터 조직 : 컴퓨터 시스템을 의미
// System.out - System. 안에 out이 있다. (.의 의미)
// out - 표준 출력(모니터) 처리를 담고 있는 변수 : Printstream
System.out.println("Hello! java");
}
}
주석
// 주석
/**
* 외부에서 보이는 범위 주속으로 작성된다.(클래스에 해당)
* 문서를 만들 때도 사용.
*/
/*
* 외부에서 보이지 않는 범위 주석 (소스를 보는 사람)
*/
// 이후 부터 줄이 끝날 때까지 주석 (한줄 주석)