## 자바 기본 개념 복습
1. 자료형 : 자료의 형태(Data Type)
- "Hello World", "안녕하세요" : 문자열(String)
- 12, -34, 3.14 : 숫자 자료형(int, double...)
- true, false : 불리안 자료형(boolean)
2. 자료형 종류
- 기본 자료형 : 실제 데이터 값을 저장하는 타입.
: (int(정수,4byte), long(정수,8byte), float(실수,4byte),
double(실수,8byte), boolean(참/거짓,1byte), char(문자,2byte) ...)
- 참조 자료형 : 데이터가 저장된 메모리 주소 값을 저장
: (클래스(class), 인터페이스(interface), 배열, 열거형 .. (String))
3. 변수
- 자료(값)을 저장하기 위한 공간
ex) int a = 3; [ 자료형 변수명 = 값 ]; <-- 선언과 동시에 초기화
ex) int a;
a=3; [ 선언 따로, 값 저장 따로 ]
4. 변수명
- 값을 가장 잘 표현하는 이름
: 밑줄(_) , 문자(abc), 숫자(123) 사용 가능(공백은 사용 불가)
: 밑줄(_) 또는 문자로 시작 가능
: 한 단어 또는 2개 이상 단어의 연속 (권장 사항)
: 소문자로 시작, 각 단어의 시작 글자의 대문자(첫 단어 제외)(권장 사항)
: 예약어 사용 불가 (public, static, void, int, double, 등)
: 대소문자 구분함 ( myName과 myname은 다른 변수)
5. 상수
- 변하지 않는 값
ex) final 자료형 변수명 = 값;
final int a = 3;
: a = 5; //값 변경 불가
6. 형변환
- 정수, 실수, 문자열간의 변환을 한다.
ex) (자료형) 변수명 or 값
: int score = 93; 정수에서 실수로 변환을 원한다.
: float score_f = (float)score; // 변환할 자료형으로 변수 선언 후 (자료형)변수명!
: double score_d = (double)93; //값
- int -> long / long -> float / float ->double로 형변환시 (float) 생략이 가능하다 <-- 묵시적 형변환 (=자동 형변환)
- int -> long / float -> double 데이터 손실 없을 때 자동으로 변환
ex) double score = 95.5; -> int score = (int)score 할때 데이터 손실 발생!! 생략 불가능 .5가 손실돼서 (명시적형변환)
: double -> int 소수점 등 손실 발생 가능하다!
7. 연산자
- 값의 계산을 위해 사용되는 기호
: ++num, --num num의 값 1증가, 1감소 후 다음 작업 실행
: num++, num-- 작업 후 num의 값 1증가, 1감소
8. 삼항 연산자
- 물음표 왼쪽의 조건이 참이면 : 왼쪽, 거짓이면 : 오른쪽
ex) 조건?참일 때 : 거짓일 때
-- int x = 3; int y = 5; int max = (x>y)?x:y
-- (조건) ? 조건이 참일 때 : 조건이 거짓일 때.
9. 문자열
- 여러 문자들의 집합이다.
- String s = "I like Java";
: 문자열 기능
- length() : 길이 ex) s.length();
- toUpperCase : 대문자로 ex) s.toUpperCase();
- toLowerCase : 소문자로 ex) s.toLowerCase();
- contains : 포함여부 ex) s.contains("Java"); : s 문자열에 Java가 포함되어 있는지 확인.
- indexOf : 위치정보 ex) s.indexOf("Java"); : s 문자열에 Java가 어디에 위치되어있는지 확인.
- lastIndexOf : 마지막 위치정보 ex) s.lastIndexOf("a");
- startsWith : 문자열로 시작하는가? ex) s.startsWith("I like"); true
- endsWith : 문자열로 끝나는가? ex) s.endsWith("."); false
- replace : 문자열 변환 ex) s.replace("I","You");
- substring : 문자열 자르기 ex) s.substring(7);
- trim : 앞뒤 공백 제거 ex) s.trim();
- concat : 문자열 결합 ex) s.concat(" and Python"); I like Java and Python
10. 정수 비교
ex) int num1 = 3;
int num2 = 3;
if (num1 == num2) true
11. 문자열 비교
ex) String s1 = "Java";
String s2 = "Java" ;
-- 메모리상으로는 한 곳을 참조한다. 객체 선언을 안 하면 메모리는 같은 곳을 참조한다.
-- 같은 곳을 바라봐서 [ s1 == s2 : true ] 이렇게 비교하면 안 된다.
ex) String s1 = new String("Java");
ex) String s2 = new String("Java");
-- 서로 다른 공간에 메모리로 저장한다. 그래서 참조하는 곳은 달라서 비교했을 때 false
-- s1 == s2 : false (주소비교) == 주소를 비교하는 거고.
-- s1.eqauls(s2) : 문자열 비교!! true 문자열 같다 (값비교)
**equalsIgnoreCase()은 대소문자 무시하고 비교한다.
12. 특수 문자
- 특별한 기능을 수행하는 문자
13. IF문
- 조건에 따른 분기.
방법1) if(조건)
명령문
방법2) if(조건){
명령문
}
14. Switch Case
- 케이스(경우)에 따른 분기.
switch(조건){
case 값 : 명령문
break;
case 값 : 명령문
continue;
...
default: 명령문
}
break, default 생략도 가능 생략시 다음 문장으로 이동
break, continue
15. for
- 반복문
1) for(선언;조건;증감)
명령문
2) for(선언;조건;증감){
명령문1
명령문2
}
ex) for(int i=0; i<5; i++){
Sout("안녕");
}
16. while
1) while(조건)
명령어
2) while(조건){
명령어1
명령어2
}
ex) int i=0;
while(i<5){
sout("안녕");
i++;
}
: i가 5보다 작다는 조건을 만족하는 동안
17. Do while
- 또 또 다른 반복문
1)do
명령문
while(조건);
2) do{
명령문1
명령문2
}while(조건);
일단 한번은 무조건 실행 후 while조건이 만족시 계속 이행
거짓이면 한번만 돌고 넘어간
18. 이중반복문
- 반복문의 중첩
for(int i=0; i<2; i++){
for(int j=0; j<3; j++){
sout("안녕");
}
}
i=0
안녕
안녕
안녕
--------
i=1
안녕
안녕
안녕
Break : 반복문 탈출
ex) 인사를 3번만 해야 한다면?
for(int = 0; i < 5; i++){
if(i==3){
break; (반복문 탈출)
}
sout("안녕");
}
19. Continue
- 반복문 뛰어넘는다.
ex) 3번째 인사는 하지 않으려면
for(int = 0; i < 5; i++){
if(i==2){
continue; 인사하지않고 다음 회차로 건너뛰기.
}
sout("안녕");
}
20. Java 배열
[배열]
- 같은 자료형의 값이 여러 개
선언1)
- 자료형[] 변수명 = new 자료형[크기]
ex) int[] numbers = new int[5];
ex) String[] names = new String[3];
선언2)
변수명[인덱스] = 값;
ex) int[] numbers = new int[5];
- numbers[0] =1;
- numbers[1] =2;
- numbers[2] =3;
...
선언3)
자료형 변수명[] = new 자료형[크기];
ex) int numbers[] = new int[5];
ex) String names[] = new String[3];
선언4)
자료형[] 변수명 = new 자료형[] {값,값2,값3,...}
ex) int[] numbers = new int[]{1,2,3,4,}
ex) String[] names= new String[]{"A","B","C"};
ex) int[] numbers = {1,2,3,4,}
ex) String[] names= {"A","B","C"};
new 자료형[] 생략도 가능
21. 배연 순회
- 반복문을 이용한 배열의 각 요소 접근
방법1)
int[] num = new int[5];
for(int i=0; i<num.length; i++){
...//배열[i]
...//num[i];
}
ex) int[] numbers = {1,2,3,4,5}
for(int i=0; i<numbers.length; i++){
sout(numbers[i]);
}
**sout : system.out.println("");
방법2)
for(int i : 배열){
...//i
}
ex) int[] numbers = {1,2,3,4,5}
for(int number : numbers){
sout(number);
}
22. 다차원 배열
- 2차원 이상의 배열
- (1차원)배열
변수명[인덱스] = 값;
ex) int[] numbers = new int[5];
numbers[0]=1;
numbers[1]=2;
numbers[2]=3;
numbers 배열 --> 1 | 5 | 10
(2차원)배열
선언1)
자료형[][] 변수명 = new 자료형[세로][가로];
ex) int[][] numbers = new int[2][5];
ㅁ ㅁ ㅁ ㅁ ㅁ (0,0) (0,1), (0,2)~~
ㅁ ㅁ ㅁ ㅁ ㅁ (1,0) (1,1), (1,2)~~ 세로2 , 가로5
numbers[0][2] = 3
선언2)
int[][] numbers = new int[][]{
{1,2,3,4,5}, //세로,가로줄에 들어갈 데이터
{6,7,8,9,10}//세로,가로줄에 들어갈 데이터
}
다차원 배열 순회
for(int i=0; i<세로; i++){
for(int j=0; j<가로: j++){
..// 배열[i][j];
}
}
int[][] numbers = new int[][]{
{1,2,3,4,5},
{6,7,8,9,10} // 세로는 2, 가로는 5
};
for(int i=0; i<2; i++){
for(int j=0; j<5: j++){
..// 배열[i][j];
}
}
for(int i=0; i<numbers.length; i++){
numbers.length - 배열의 세로크기를 알 수 있고
for(int j=0; j<numbers[i].length; j++){
numbers[i].length - 배열 세로의 가로크기를 알 수 있다.
..// 배열[i][j];
}
}
'JAVA 공부' 카테고리의 다른 글
| 02 - JAVA 기초&기본 개념 공부 (0) | 2025.03.10 |
|---|---|
| 01- JAVA 기초&기본 개념 공부 (0) | 2025.03.09 |
| [프로그래머스 - Java] 숫자 비교하기. (0) | 2025.02.27 |
| [프로그래머스 - Java] 정수 부분 (0) | 2025.02.26 |
| [프로그래머스 - Java] 문자열을 정수로 변환하기. (0) | 2025.02.26 |