변수, 타입, 문자열

seongmin·2022년 9월 12일
0

Java

목록 보기
1/30
post-thumbnail

타입

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

  • 타입은 저장하고자 하는 값을 그대로 저장하는 기본타입과, 저장하고자 하는 값을 임의의 메모리 공간에 저장한 후, 그 메모리 공간의 주소를 저장하는 참조타입으로 분류된다.

  • 기본 타입은 데이터의 실제 값을 저장하고, 참조타입은 데이터가 저장된 곳을 나타내는 주소값이 저장된다.

타입의 종류

  • 정수 타입 : 숫자를 나타내는 타입으로 byte , short , int , long 의 총 4개의 타입으로 분류한다.

  • 실수 타입 : 소수점을 가지는 값을 의미하며, float 형과 double 형으로 분류된다.
    double형 리터럴에는 접미사 d를 붙여도, 붙이지 않아도 되지만, float형 리터럴에는 반드시 접미사 f를 붙여주어야 한다.

// float형 리터럴을 float형 변수에 할당
float num1 = 3.14f;

// double형 리터럴을 double형 변수에 할당
double num2 = 3.141592d;
double num2 = 3.141592;

double형은 float형보다 정밀도가 더 높고, 더 큰 실수를 저장할 수 있으며, 더 정확하게 저장할 수 있다.

  • 논리 타입 : boolean 형 한가지 뿐이며, 참 또는 거짓을 저장할 수 있는 데이터 타입으로, 오직 true 혹은 false를 값으로 가진다.

  • 문자 타입 : char 형 하나만 존재한다. 문자형 리터럴을 작성할 때에는 반드시 큰 따옴표 ”” 가 아닌 작은 따옴표 ’’ 를 사용해야 한다. 큰 따옴표를 사용한 리터럴은 문자형 리터럴이 아니라 문자열 리터럴로 인식되기 때문이다.

타입의 변환

  • 다음의 경우에 타입이 자동으로 변환된다.
  1. 바이트 크기가 작은 타입에서 큰 타입으로 변환할 때 (예 : byte → int)

  2. 덜 정밀한 타입에서 더 정밀한 타입으로 변환할 때 (예 : 정수 → 실수)


변수

  • 값을 저장할 수 있는 메모리 공간을 확보하고, 사람이 식별할 수 있는 이름을 붙인 것

상수

  • 재할당이 금지된 변수다. 즉, 변수와 같이 선언하고 할당하여 사용할 수 있지만, 재할당이 금지되어져 있다. 상수는 final 이라는 키워드를 사용해 선언할 수 있으며, 관례적으로 대문자에 언더바 _ 를 넣어 구분하는 SCREAMING_SNAKE_CASE 를 사용한다.

  • 상수를 사용하는 이유

  1. 프로그램이 실행되면서 값이 변하면 안되는 경우
  2. 코드 가독성을 높이고 싶은 경우
  3. 코드 유지관리를 손쉽게 하고자 하는 경우

리터럴

  • 문자가 가리키는 값 그 자체를 리터럴이라고 함.

  • float 타입의 변수에 실수형 리터럴을 할당할 때, 리터럴 뒤에 접미사 f 를 붙여주어야 한다.

  • long 타입의 변수에 정수형 리터럴을 할당할 때, 리터럴 뒤에 접미사 L 을 붙여주어야 한다.
    소문자 l을 붙여도 되지만, 숫자와의 혼동을 방지하기 위해 보통 대문자 L을 사용한다.

float weight = 74.5f;
final long LIGHT_YEAR = 9460730472580L;

float = 9460730472580.0F;
double = 9460730472580.0D;

문자열(String)

  • String 타입은 큰따옴표 "" 로 감싸진 문자열을 의미한다.

  • String 타입의 변수는 String 변수명; 으로 선언할 수 있다.

String 메서드

  • charAt() 메서드
    해당 문자열의 특정 인덱스에 해당하는 문자를 반환한다. 만약 해당 문자열의 길이보다 큰 인덱스나 음수를 전달하면 오류가 발생한다.
String str = new String("Java");
System.out.println("문자열 : " + str); // "문자열 : Java"

System.out.println(str.charAt(0)); // 'J'
System.out.println(str.charAt(1)); // 'a'
System.out.println(str.charAt(2)); // 'v'
System.out.println(str.charAt(3)); // 'a'
  • compareTo() 메서드
    해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교한다. 이 메서드는 문자열을 비교할 때 대소문자를 구분하여 비교한다. 만약 두 문자열이 같다면 0을 반환하며, 해당 문자열이 인수로 전달된 문자열보다 작으면 음수를, 크면 양수를 반환한다. 만약 문자열을 비교할 때 대소문자를 구분하지 않기를 원한다면, compareToIgnoreCase() 메서드를 사용하면 된다.
public class CompareToTest{
    public static void main(String[] args){

        Integer x = 3;
        Integer y = 4;
        Double z = 1.0;

        System.out.println( x.compareTo(y) );  // -1
        System.out.println( x.compareTo(3) );  //  0
        System.out.println( x.compareTo(2) );  //  1
        System.out.println( z.compareTo(2.7) );  //  -1

    }
}
  • concat() 메서드
    해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열을 반환한다. concat은 concatenate의 약자로, 사전적으로 연결한다는 의미를 가집니다. 만약 인수로 전달된 문자열의 길이가 0이면, 해당 문자열을 그대로 반환한다.
String str = new String("Java");  
System.out.println("문자열 : " + str);  //  문자열 : Java
System.out.println(str.concat("수업"));  // Java수업
System.out.println("concat() 메서드 호출 후 문자열 : " + str); 
// concat() 메서드 호출 후 문자열 : Java
  • indexOf() 메서드
    해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환한다. 만약 해당 문자열에 전달된 문자나 문자열이 포함되어 있지 않으면 -1을 반환한다.
String str = new String("Oracle Java");            
System.out.println("문자열 : " + str);   // 문자열 : Oracle Java
System.out.println(str.indexOf('o'));  // -1
System.out.println(str.indexOf('a'));   //  2
System.out.println(str.indexOf("Java"));  //  7
System.out.println("indexOf() 메서드 호출 후 원본 문자열 : " + str);   
// indexOf() 메서드 호출 후 원본 문자열 : Oracle Java
  • trim() 메서드
    해당 문자열의 맨 앞과 맨 뒤에 포함된 모든 공백 문자를 제거해준다.
String str = new String(" Java     ");
System.out.println("문자열 : " + str);  // 문자열 :  Java 
System.out.println(str + '|'); // Java     |
System.out.println(str.trim() + '|'); // Java|
System.out.println("trim() 메서드 호출 후 문자열 : " + str);  // trim() 메서드 호출 후 문자열 :  Java 
  • toLowerCase() 메서드
    해당 문자열의 모든 문자를 소문자로 변환시켜준다. 또한, toUpperCase() 메서드는 해당 문자열의 모든 문자를 대문자로 변환시켜 준다.
String str = new String("Java");
System.out.println("문자열 : " + str);   // 문자열 : Java
System.out.println(str.toLowerCase());  // java
System.out.println(str.toUpperCase()); // JAVA
System.out.println("두 메서드 호출 후 문자열 : " + str);  // 두 메서드 호출 후 문자열 : Java

0개의 댓글