본문 바로가기

WINK-(Web & App)/JAVA 스터디

[2024-2 Java 스터디] 정채은 #1주차

반응형

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  

  1. 숫자 시작 X
  2. _ 와 $ 이외 특수 문자 X
  3. 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가지 특징>>

  1. 중복 허용 X
  2. 순서 X

<<교집합, 합집합, 차집합 구하기>>

교집합 구하기 : retainAll 메서드 ---> intersection 출력

 

합집합 구하기 :  addAll 메서드

 

차집합 구하기 : removeAll 메서드

 

<<집합 자료형과 관련된 메서드 - add, addAll, remove>>

add 메서드 : 집합 자료형에 값을 추가할 때 사용

addAll 메서드 : 값을 한꺼번에 여러 개 추가할 때 사용

remove 메서드 : 특정 값 제거할 때 사용

 

 

10. 상수 집합

enum 자료형 : 연관된 여러개 상수 집합 정의할 때 사용

 

<<enum이 필요한 이유 --> 사용시 장점>>

  • 매직 넘버 사용할 대 보다 코드 명확
  • 잘못된 값 사용해 생기는 오류 막기 가능 O

 

11. 형 변환과 final

 

<< 형 변환 >>

정수 ---> 문자열 : " "

                            String.valueOf(정수) Integer.toString(정수)

 

<<final>>

자료형에 값 단!!! 한번 설정하는 키워드

 

 

 

 

 

 

 

 

 

반응형