변수, 타입, 문자열

Backend kwon·2023년 3월 25일

bit : 이진수 한자리의 정보단위
byte : 8bit

메모리는 메모리셀의 집합체로 각 메모리셀은 주소를 가진다
ex) 0x(8자리 16진수)

변수

데이터를 저장할 수 있는 메모리 공간을 확보하고 그 메모리 공간에 사람이 식별하기 쉽게 이름을 붙인 것이다.
데이터 종류에 따라 필요한 메모리 공간의 크기가 다르다.

그래서 변수를 선언할 때에는, 데이터의 유형(데이터 타입)을 같이 알려줘야 한다.

초기화 : 변수 선언 후 처음 값을 할당하는 것
재할당 : 이후 다른 값 할당하는 것

변수 명명 규칙
1. 두번째 단어부터 대문자 시작 ex) sumArr
2. 소문자/대문자 구분됨
3. 영문자, 숫자, _, $, 사용가능
4. 숫자로 시작하는 변수명 사용 X
5. 자바에서 사용중인 예약어는 사용 X

변수 이외에도 상수라는 것이 있다.

상수는 재할당이 금지된 변수로 final로 선언하고 관례적으로 대문자에 _를 넣는다.
ex)final double CALCULATOR_PI = 3.14;

타입

어떤 값의 유형 및 종류이다.
타입에 따라 값이 차지하는 메모리 공간 크기와 값이 저장되는 방식이 결정된다.

  • 기본타입 : 데이터 실제값
    -정수타입(byte, short,int,long), 문자(char), 실수(float,double), 논리타입(boolean)

  • 참조타입 : 값이 저장된 주소를 값으로 갖음
    -문자열(String), 배열...

유의사항
1. float 사용시 변수에 리터럴 할당할 때 리터럴 뒤에 f붙여줘야 함.
2. long 변수에 리터럴 할당 시 리터럴 뒤에 L붙여줘야 함.

<정수 타입> : byte, short(2byte), int(4byte), long(8byte)
오버 플로우 : 표현범위 넘어감 -> 최솟값으로 값이 순환
언더 플로우 : 표현범위 최솟값 넘어감 -> 최대값으로 값이 순환

<실수 타입> : float(4byte), double(8byte)
double은 float에 비해 더 큰 실수 저장하고 더 정확하게 저장한다.
오버 플로우 : 값이 음 최소범위, 양 최대 범위 벗어나면 무한대 값
언더 플로우 : 값이 음 최대범위, 양의 최소범위 벗어나면 값은 0

<논리 타입> : boolean(1byte) true나 false만 가짐

<문자 타입> : char(2byte)

  • 문자형 리터럴은 단 하나의 문자만 저장하고 작은따옴표('') 사용하여야 함.
  • 자바는 문자를 유니코드로 저장함
    ex) char letter = 'a'; -> letter에 a의 유니코드 숫자 값이 저장
    ex) char letter = 65; -> 출력시 A가 출력됨.

<타입변환>
byte -> short/char -> int -> long / float -> double

  • 자동 타입 변환
  1. 바이트 크기가 작은 타입 -> 큰 타입 변환 할 때
  2. 덜 정밀 -> 더 정밀한 타입 변환할 때 (정수 -> 실수)
  • 수동 타입 변환 : 캐스팅() 연산자 사용

문자열(String)

클래스는 그 자체로 타입으로 사용될 수 있다. String 클래스는 문자열 타입으로 사용된다

  • String 타입은 큰 따옴표("")로 감싸서 표현

클래스는 일종의 거푸집이며, 그 거푸집을 통해 찍어낸 것이 인스턴스이다.
클래스로 인스턴스 찍어낼 때, new 연산자를 사용
ex) String name1 = "stringname"; / String name2 = new String("문자열");

String클래스의 인스턴스 생성하여 할당하는 방법:

  • 변수 = new String("문자열");

String 클래스의 메서드

charAt() : 해당 문자열의 특정 인덱스에 해당하는 문자 반환

compareTo() : 사전 편잔순으로 비교(대소문자 구분) 같으면 0, 작으면 음수, 크면 양수 반환

compareToIgnoreCase() : 대소문자 구분X 비교

concat() : 문자열 연결

indexOf() : 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스 반환.
만약 포함되어 있지않으면 -1 반환

trim() : 해당 문자열에 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거

toLowerCase() : 해당 문자열의 모든 문자 소문자 변환

toUpperCase() : 해당 문자열의 모든 문자 대문자 변환

toString() : String 타입변수가 저장하고 있는 주소값에 위치한 String 인스턴스의 내용을 문자열로 반환

equals() : 문자열 같은지 비교

equalsIgnoreCase() : 대소문자 구분없이 문자열 비교

String.format() : 문자열 형식 지정

profile
백엔드개발자를 향해서

0개의 댓글