1장. 자바란 ?
특징 8가지
simple
객체지향적
인터프리터 언어 ( 정확하게 컴파일 언어인 동시에 인터프리터 언어? 라고 합니다)
강력.
안전.
독립적인 플랫폼
멀티 스레드 지원(Multithreaded)
동적. (Dynamic)
이유는 없다 !!!!!!
2장. 자바 start!!!!!!!
1. 자바 코드 구조 살펴보기
/* 클래스 블록 */
public class 클래스명 {
/* 메서드 블록 */
[public|private|protected] [static] (리턴자료형|void) 메서드명1(입력자료형 매개변수, ...) { 명령문(statement); ... };
}
/* 메서드 블록 */
[public|private|protected] [static] (리턴자료형|void) 메서드명2(입력자료형 매개변수, ...) { 명령문(statement); ... };
}
}
가장 바깥쪽 영역: 클래스 블록 ---> 중괄호 {}
클래스명 내맘대루 but! 클래스명 == 소스 파일의 이름(클래스명.java)
내부 영역: 메서드 블록
메서드명 내맘대루, 무한 생성
메서드명 뒤 (입력인자 == ('입력자료형+매개변수명')) , 입력 인자 개수 제한 X
<<속성과 생성자 이해하기.>>
public class Sample {
/* 속성 */
private String message;
/* 생성자 */
public Sample(String message) {
this.message = message
}
}
속성 : 클래스의 상태 나타내는 변수
클래스 내부에 선언
생성자 : 클래스 인스턴스 생성할 때 실행되는 메서드
용도: 속성 초기화
클래스명 : Sample
메서드 이름 : main
명령문
문장 끝에 세미콜론 (;)
2. 변수와 자료형
<<변수>>
변수... is ... empty box
- 숫자 시작 X
- _ 와 $ 이외 특수 문자 X
- int, class, return등 자바 키워드 변수명 사용 X
<<자료형>>
변수에 대입하는 값의 형태
사용자 정의 자료형도 있다.
int a = 1;
String b = "hello java";
3. 이름 짓기. 작명!
클래스 이름 짓기
- 클래스명은 명사!
- 클래스명은 대문자 시작!
- 여러 개 단어 조합시 첫번째 글자는 대문자! ----> 파스칼 케이스(pascal case)
메서드 이름 짓기
- 메서드명은 동사!
- 메서드명은 소문자 시작!
- 여러 개 단어 조합시 맨첫글자 제외 나머지 단어 첫글자는 대문자! ----> 카멜 케이스(camel case)
변수 이름 짓기
- 순서를 의미하고 임시로 쓰이는 정수의 변수명은 i, j, k, m, n을 사용!
- 문자의 경우는 c, d, e 등을 사용
- 변수 이름은 짧지만 의미가 있어야함
4. 주석
/* 블록 주석 시작
*/ 블록 주석 끝
// 라인 주석
3장. 자바 자료형
1. 숫자
<<정수>>
long 자료형 변수에 값을 대입할 때 int 자료형의 최댓값보다 크면 숫자 끝에 접미사로 L 자를 붙이기.
<<실수>>
자바에서 실수형은 기본값이 double
float 변수에 값을 대입할 때 끝에 F 붙이기.
<<8진수와 16진수>>
int 자료형 사용
<<증감 연산>>
++ : 1 증가
-- : 1 감소
주의!
- i++ : 값을 참조한 후에 증가
- ++i : 값을 참조하기 전에 증가
2. 불(boolean)
참 or 거짓 의 값을 갖는 자료형
3. 문자
문자 자료형 : char
4. 문자열
문자열 자료형 : String
new 키워드 : 객체 생성시 사용
리터럴 표기방식 사용 ㄱㄱ(" ")
<<원시 자료형>>
원시 자료형 : int, long, double, float, boolean, char 자료형
new 키워드로 값을 생성 X
!!! String은 리터럴 표기 방식을 사용할 수 있지만 원시 자료형에 포함 X !!!
<<문자열 내장 메서드>>
equals :
문자열 2개가 같은지 비교후 결괏값 리턴( 메서드에서 값을 반환하는 작업을 한다는 뜻) 문자열의 값을 비교할 때 반드시 equals를 사용! ==연산자 X
indexOf : 문자열에서 특정 문자열이 시작되는 위치(인덱스값) 리턴 자바에선 인덱스를 0부터 매긴다!!!!!
contains : 문자열에서 특정 문자열 포함 여부 리턴
charAt :
문자열에서 특정 위치 문자 리턴
replaceAll : 문자열에서 특정 문자열을 다른 문자열로 바꿀 때 사용
substring : 문자열에서 특정 문자열을 뽑아낼 때 사용 but 끝번호의 문자는 포함 X
toUpperCase : 문자열을 모두 대문자로 변경할 때 사용
split : 문자열을 특정한 구분자로 나누어 문자열 배열로 리턴
<<문자열 포매팅>>
문자열 안의 특정한 값을 바꿀 수 있게 해주는 것
숫자,문자열 바로 대입하기
문자열 포매팅 : String.format 메서드 사용
%d : 문자열 포맷 코드
숫자를 넣기 위해서는 %d, 문자열을 넣으려면 %s
%s: 자동으로 전달되는 파라미터 값을 문자열로 바꾸어 사용
<<문자열 포맷 코드>>
<<문자열 포맷 코드 응용>>
1. 정렬과 공백 표현
%10s : 전체 길이가 10인 문자열 공간에서 대입되는 값을 가장 오른쪽으로 정렬 후 나머지는 공백으로 남김
%-10s : 왼쪽 정렬
2. 소수점 표현
문자열 포맷 코드에서 ‘.’ : 소수점, 그 뒤의 숫자는 소수점 뒤에 이어질 숫자의 개수
<<System.out.printf>>
String.format 메서드: 포매팅된 문자열 리턴!
System.out.printf 메서드 : String.format 메서드가 없어도 같은 형식으로 간단히 포매팅된 문자열 출력!
5. StringBuffer
- 문자열을 추가하거나 변경할 때 주로 사용하는 자료형
<<append>>
toString() 메서드 : StringBuffer ---> String 자료형
String 자료형 : 값이 한 번 생성되면 변경 X
StringBuffer 자료형 : 값 변경 O , 생성된 값을 언제든지 수정 O but!!!, 암데나 쓰지 ㄴㄴ 속도 느려짐. 즉 문자열 변경량 많을때만 사용 ㄱㄱ
<<insert>>
insert 메서드 : 특정 위치에 원하는 문자열 삽입 O
<<substring>>
String 자료형의 substring 메서드와 동일 동작
6. 배열
배열 : 자료형의 종류 X
자료형의 집합 의미
자료형 바로 옆에 [] 기호
<<배열 길이 설정>>
<<배열 길이 구하기>>
배열 : for 문 과 함께 사용 (배열 길이 알아야함, 이유: 배열 길이만큼 for문 반복)
7. 리스트
리스트 : 크기 정해져 있지 X
배열 : 크기 정해져 있음.
<<ArrayList>>
ArrayList를 사용하려면 import java.util.ArrayList와 같은 import 문을 작성해야함!
import 문 : 다른 패키지, 클래스를 현재 코드에서 사용하기 위해 선언하는 문장
Java.util 패키지 : 자바가 기본 제공하는 패키지
1. add
add 메서드 : 요솟값 추가
2. get
get 메서드 : 특정 인덱스 값 추출
3.size
size 메서드 : ArrayList의 요소 개수 리턴
4.contains
contains 메서드 : 리스트 안 해당 항목 여부 판별후 결과 boolean으로 리턴
5.remove
remove 메서드 :
객체 | 입력하는 파라미터 다름! | 객체 해당 항목 삭제후, 그 결과 T/F 리턴 |
인덱스 | 인덱스 해당 항목 삭제후, 그 항목 리턴 |
<<제네릭스>>
형 변환 오류를 방지하기 위해서 탄생!
<<다양한 방법으로 ArrayList 만들기>>
java.util.Arrays 클래스의 asList 메서드 : 이미 존재하는 문자열 배열로 ArrayList 생성 O
String 배열 대신 String 자료형을 여러 개 전달하여 생성
<<String.join>>
ArrayList의 각 요소 콤마(,)로 구분해 1개의 문자열 만들기 --> 요소 개수만큼 루프를 돌면서 뒤에 콤마를 더한 뒤, 마지막 콤마 제거 방법 but 불편.
이때 ! String.join("구분자", 리스트 객체)사용 --> 리스트의 각 요소에 구분자를 넣어 하나의 문자열 만들기 O
<<리스트 정렬하기>>
sort 메서드 사용 : 순서 정렬
(정렬 기준을 파라미터로 전달해야함)
8. 맵
대응 관계를 쉽게 표현할 수 있게 해주는 자료형
[[[[키(key)와 값(value)을 한 쌍으로 갖는 자료형]]]]
<<HashMap>>
1. put
put 메서드 : key, value 추가
2. get
get 메서드 : key 해당하는 value 얻을 때 사용
3. containsKey
containsKey 메서드 : 맵에 해당 key 여부 T/F 리턴
4.remove
remove 메서드 : 해당 key 항목 삭제 후 value 값 리턴
5.size
size 메서드 : 맵 요소 개수 리턴
6.keySet
keySet() 메서드 : 맵 모든 key 모아서 집합 자료형으로 리턴
9. 집합
<<집합 자료형의 2가지 특징>>
- 중복 허용 X
- 순서 X
<<교집합, 합집합, 차집합 구하기>>
교집합 구하기 : retainAll 메서드 ---> intersection 출력
합집합 구하기 : addAll 메서드
차집합 구하기 : removeAll 메서드
<<집합 자료형과 관련된 메서드 - add, addAll, remove>>
add 메서드 : 집합 자료형에 값을 추가할 때 사용
addAll 메서드 : 값을 한꺼번에 여러 개 추가할 때 사용
remove 메서드 : 특정 값 제거할 때 사용
10. 상수 집합
enum 자료형 : 연관된 여러개 상수 집합 정의할 때 사용
<<enum이 필요한 이유 --> 사용시 장점>>
- 매직 넘버 사용할 대 보다 코드 명확
- 잘못된 값 사용해 생기는 오류 막기 가능 O
11. 형 변환과 final
<< 형 변환 >>
정수 ---> 문자열 : " "
String.valueOf(정수), Integer.toString(정수)
<<final>>
자료형에 값 단!!! 한번 설정하는 키워드
'WINK-(Web & App) > JAVA 스터디' 카테고리의 다른 글
[2024-2 Java 스터디] 김지나 #2주차 "~제어문" (0) | 2024.10.16 |
---|---|
[2024-2 Java 스터디] 김태일 #2주차 (4) | 2024.10.15 |
[2024-2 Java 스터디] 강보경 #1주차 (0) | 2024.10.10 |
[2024-2 Java 스터디] 이민형 #1주차 (1~3장) (6) | 2024.10.10 |
[2024-2 Java 스터디] 김재승 #1주차 (0) | 2024.10.10 |