[복습] Java - 자료형

5w31892p·2023년 1월 10일
0

점프 투 자바

목록 보기
2/3

:: Number

  • 숫자
  • 정수 : int, long (1L)
  • 실수 : float(0.1F), double
  • 8진수 : 0 으로 시작
  • 16진수 : 0x로 시작
  • +, -, /, * 사칙연산 가능
  • % 나누기의 나머지 반환
자료형표현범위
int-2147483648 ~ 2147483647
long-9223372036854775808 ~ 9223372036854775807
float-3.4 1038 ~ 3.4 1038
double-1.7 10308 ~ 1.7 10308

증감 연산자 ++, --

++, -- 는 연산자의 위치가 중요하다.

  • ++ : 1만큼 증가
  • -- : 1만큼 감소
  • i++ or i-- : 값 참조 후에 증감, 더하거나 뺀 후 다음꺼에 증감
  • ++i or --i : 값 참조 전에 증감, 증감된 후 더하고나 뺀다.

:: boolean

  • true or false
  • 참과 거짓 판단
  • 주로 조건문의 판단 기준으로 많이 사용

:: char

  • 문자 ( 한글자 )
  • 작은 따옴표 사용 'a'
  • 문자로 표현 or 아스키코드로 표현 of 유니코드로 표현

:: String

  • 문자열
  • 큰 따옴표 사용 "apple", "a"
  • new는 객체를 만들 때 사용

문자열 내장 메서드

문자열설명
equals                                  문자열 비교                                          
indexOf문자열 시작 위치 리턴
contains포함 여부
charAt해당 위치의 문자 리턴
replaceAll문자열 바꾸기
substring뽑아내기
toUpperCase대문자로
split나누기
  • equals : 두 개의 문자열 동일한지 비교
    • == : 동일한 객체인지 판별할 때 사용
    • equals : 문자열 값 비교할 때 사용
  • indexOf : 특정 문자열 시작되는 위치 리턴
    a.indexOf("Java")
  • contains : 특정 문자열 포함 여부 리턴
    a.contains("Java")
  • charAt : 특정 위치의 문자(char) 리턴
    • 어떤 문자가 있는지 알고 싶은 위치를 적어야 함
    a.charAt(6)
  • replaceAll : 문자열 바꾸기
    a.replaceAll("뭐바꿀래", "이걸로바꿔")
  • substring : 특정 부분 뽑아내기
    a.substring(시작위치, 끝의 하나 뒤 위치)
  • toUpperCase : 모두 대문자로 변경
    a.toUpperCase()
  • split : 특정 구분자로 나누기
    a.split(" ")

문자열 포매팅

  • 문자열 안에 값 삽입하기
  • %s 는 어떤 형태든 변환해서 넣기 가능
  • System.out.printf 사용시 String.format 메서드 없이 사용 가능
    // String.format 사용
    System.out.println(String.format("I eat %d apples.", 3));
    
     // System.out.printf 사용
    System.out.printf("I eat %d apples.", 3); 
    코드설명
    %sString
    %ccharacter
    %dInteger
    %f부동소수
    %o8진수
    %x16진수
    %%문자 % 자체

:: StringBuffer

  • 문자열 추가 or 변경시 사용
  • append : 문자열 추가
  • toString() : String 자료형으로 변경
  • insert : 해당 위치에 문자열 삽입
    sb.insert(넣을 위치, "넣을 문자열");
  • substring : 뽑아내기
  • StringBuffer는 문자열 변경 작업이 많은 경우 사용
  • 멀티스레드 환경에서 안전
    cf. StringBuilder
    StringBuffer보다 우수한 성능
    동기화 고려할 필요 없을 땐 StringBuilder 사용이 유리
    StringBuffer sb = new StringBuffer();
    sb.append("hello");
    String result = sb.toString();
    System.out.println(result);

:: Array

  • 배열
  • 자료형의 종류가 아닌 자료형의 집합
  • 배열은 자료형 타입 바로 옆에 [] 사용해 표현
  • 배열의 길이는 고정되어 있음
    • new 자료형타입[길이]
    • 타입[] var = {값, 값, 값, 값, ...}
  • 배열 값에 접근은 해당 위치, 즉 인덱스 이용
  • 배열의 길이는 .length;를 이용
  • 길이가 7갠데 8번째 값 얻으려고 시도하면 오류 ( ArrayIndexOutOfBoundsException )

:: List

  • 리스트
  • 배열과 다르게 크기가 정해지지 않고 동적으로 변한다.
  • 원하는 만큼 값을 담을 수 있다.

ArrayList

  • add : 값 추가
  • get : 특정 인덱스 값 추출
  • size : 길이, 즉 갯수
  • contains : 포함 여부
  • remove : 삭제
    • remove (객체(=값)) : 삭제 후 true or false 리턴
    • remove (인덱스) : 삭제 후 삭제된 값 리턴

Generics

ArrayList<자료형 타입> var = new ArrayList<>(); 
  • (Arrays.asList(값, 값, 값, ...) : ArrayList 생성
  • String.join : ArrayList 를 문자열로
  • sort(Comparator.naturalOrder()) : 오름차순 (순)
  • sort(Comparator.reverseOrder()) : 내림차순 (역)

:: Map

  • key를 통해 values 얻는다.
  • 순서 없음

HashMap

HashMap<type, type> map = new HashMap<>();
  • put : 값 추가
    var.put(key, values)
  • get : 값 얻기 , get 뒤에 key값 적으면 됨
  • containsKey : 포함 여부, key값 적기
  • remove : 삭제, key값 적고 삭제하면 values 리턴
  • size : 갯수, 길이
  • keySet : 모든 key 모아서 리턴

LinkedHashMap

  • 입력된 순서대로 데이터를 저장

TreeMap

  • key의 오름차순 순서로 데이터를 저장

:: Set

  • 집합 자료형
  • 중복 불허
  • 순서 없음

교집합, 합집합, 차집합

기준 . retainAll, addAll, removeAll( 비교 )

  • 교집합 : retainAll
  • 합집합 : addAll
  • 차집합 : removeAll

집합 자료형 관련 메서드

  • add : 값 추가
    set.add("값");
  • addAll : 여러 값 한번에 추가
    set.addAll(Arrays.asList("값", "값", ...));
  • remove : 값 제거
    set.remove("값");

TreeSet

  • 오름차순으로 값을 정렬

LinkedHashSet

  • 입력한 순서대로 값을 정렬

:: Enum

  • 상수 집합
  • 서로 관련 있는 여러개의 상수 집합 정의
  • 매직넘버(상수로 선언하지 않은 숫자)을 사용할 때보다 코드 명확
  • 잘못된 값 사용하여 발생하는 위험성 사라짐

점프 투 자바

0개의 댓글