※ 변수명 짓는 규칙
- 숫자로 시작 불가
- 특수문자는 _ & 만 가능
- int, class, return 등 키워드는 변수명으로 사용 불가
- 카멜 케이스 ex) getBackGround
※ 클래스명 짓는 규칙
- 명사로 할 것
- 대문자로 시작
- 파스칼케이스 ex) ChocoCookie
※ 메서드명짓는 규칙
- 동사로 할 것
- 소문자로 시작
- 카멜 케이스 ex) getBackGround
■ 원시 자료형(Primitive type) 과 참조 자료형(Reference type):
- 원시자료형 : 변수에 실제 값을 가지는 자료형
- 참조자료형 : 실제 값을 갖는 것이 아닌 데이터가 저장된 메모리의 주소 값을 가지는 자료형
| 구 분 |
자료형명 |
자 료 형 |
특 징 |
사 용 예 시 |
원시 자료형 |
int |
정수형 |
-2147483648 ~ 2147483647 |
int a = 0; |
| long |
-9223372036854 775808 ~ 9223372036854 775807 |
long a = 123; |
| float |
실수형 |
-3.4 *10^38 ~ 3.4*10^38 |
float a = 1.234; |
| double |
-1.7*10^308 ~ 1.7*10^308 |
double a = 1.234; |
| boolean |
불 |
True, False |
boolean a = true; |
| char |
문자형 |
문자, 아스키코드, 유니코드 (문자로 출력함) |
char a = "d"; |
참조 자료형 |
String |
문자열 |
원시자료형에 포함되지 않으나, 리터럴표기 가능 |
String a = "Geun";
★ 자주 쓰는 메서드 - a.equals(b): a와 b가 같은지 (true/false) - a.indexOf("문자열"): a에 특정 문자열이 시작되는 위치값 리턴 - a.contains("문자열): a에 특정 문자열이 포함되는지 - a.charAt(인덱스): 특정 인덱스에 위치한 문자 리턴 - a.replaceAll("문자열1","문자열2"): 문자열1을 문자열2로 바꿈 - a.substring(시작위치,끝위치): 해당위치의 문자값을 뽑아냄 - a.toUpperCase(): 모두 대문자로 변경 - a.split(":"): a의 문자들을 :로 나누어 문자열 배열로 리턴 |
| StringBuffer |
문자열 |
문자열 추가하거나 변경할 때 사용 |
StringBuffer sb = new StringBuffer(); sb.append("hello"); // sb에 문자열 추가 sb.append(" World"); String result = sb.toString(); // String 자료형으로 변경
★ 자주 쓰는 메서드 - sb.inesert(인덱스, "문자열"): 원하는위치에 특정문자열 삽입 - sb.substring(시작위치, 끝위치): 해당위치의 문자값 뽑아냄 |
| type [] |
배열 |
- 크기, 순서 O |
String[], int[], float[] ... = {1, 2, 3, 4, 5};
★ 자주 쓰는 메서드 a.length(): 배열의 길이 반 |
| ArrayList |
리스트 |
- 크기, 순서 X - 새로운 값 추가 가능 |
ArrayList<Integer> a = new ArrayList<>() ArrayList<Integer> a = new ArrayList<>(Arrays.asList(1,23,326)) // 선언과 동시에 바로 값 넣을 수도 있음
★ 자주 쓰는 메서드 a.add(요솟값): 원하는 요솟값 추가 a.get(인덱스): 특정 인덱스 값 추출 a.size(): 요소의 개수 리턴 a.contains(요솟값): 특정 항목이 있는지 판별 a.remove(인덱스): 해당위치 항목 삭제, 그 요솟값 리턴 a.remove(객체): 해당 요솟값을 삭제, true/false리턴 String.join("구분자",리스트명): 해당 리스트에 구분자를 넣어 하나의 문자열로 만듦 a.sort(Comparator.naturalOrder()): 오름차순 정렬 .reverseOrder()): 내림차순 정렬 |
| HashMap |
맵 |
key - value 쌍 |
HashMap<String, Integer> a = new HashMap<>() key값 value자료형
★ 자주 쓰는 메서드 a.put(key값, value값): key와 value 추가 a.get(key값): key에 해당하는 value값 반환 a.getOrDefault(key값,얻을값): key에 해당하는 value값이 없을 때, null대신 얻을값을 반환 a.containsKey(key값): a에 해당 key 있는지 판별(true, false) a.remove(key값): 해당 key의 항목을 삭제하고 value값 리턴 a.size(): a의 요소의 개수 리턴 a.keySet(): 모든 key값을 모아 집합 자료형으로 리턴 |
| HashSet |
집합 |
중복 X, 순서 X |
HashSet a = new HashSet<>() |
■ 리터럴 표기란?
객체를 생성하지 않고 고정된 값을 그대로 대입하는 방식. 원시자료형에서 사용
ex) String a = "Geun's blog"
>> a라는 변수에 "Geun's blog"라는 문자열 값을 그대로 대입
■ 참조자료형에서는?
new키워드를 사용하여 객체 만들어 사용. 객체 중심으로 코드 작성에 유리
ex) String a = new String("Geun's blog")
>> 항상 새로운 String 객체를 만든다.
■ Wrapper 클래스
원시자료형을 객체로 다루기 위해 객체화 시키는 클래스. 객체 지향 프로그래밍의 모든 기능을 활용할 수 있게 한다.
| 원시자료형 |
Wrapper 클래스 |
| int |
Integer |
| long |
Long |
| double |
Double |
| float |
Float |
| boolean |
Boolean |
| char |
Char |
■ 형 변환
(1) 문자열 → 정수
int n = Integer.parseInt(문자열)
*정수 형태로 이루어진 문자열이어야 한다. (실수형태의 문자열은 정수형태로 변환 불가)
(2) 정수 → 문자열
String num = "" + (정수) *정수 앞에 빈 문자열("") 더하기
String num = String.valueOf(정수)
String num = Integer.toString(정수)
(3) 실수 → 정수
int n = (int) (실수) *실수 앞에 (int) 붙임