글 작성자: 취업중인 피터팬
728x90
기본 환경
JDK : 1.8.0_261 버전
JRE : 1.8.0_261 버전
JAVA VERSION : 8 업데이트 261
Eclipse IDE VERSION : 2020-06버전

 

목표

 자바의 기본 자료형 문자열 대해 이해한다.

참조형변수와 기본자료형변수에 대해 이해한다.


코드
package ex02variable;

public class E04StringType {

	public static void main(String[] args) {
		/*
		String 타입 : 참조형 변수로써 기본자료형이 아님
			문자열을 저장할 수 있는자료형으로 실제로는 class임.
			자바에서는 문자열을 표현할때 " 으로 감싸면 되고, 연결할때
			 + 기호를 사용한다.
		 */
		
		int number;
		number = 99;
		
		/*
		참조형변수와 기본자료형병수 사이에서는 형변환이 불가능하다.
		서로 사용하는 메모리 공간이 다르기 때문이다.
			기본 자료형 : 스택(stack) 영역 사용
			참조형(클래스) : 힙(heap) 영역 사용
		 */
		
		//int stringNumber1 = (int)"100";
		//String stringNumber2 = (String)100;
		
		/*
		문자열 + 정수 => 문자열
		즉 문자열에 정수가 연결된 형태로 출력된다.
		 */
		
		String strNumber = "100";
		System.out.println(strNumber + number);
		
		/*
		String은 클래스이므로 new 키워드를 이용해서 인스턴스(객체)를 
		생성한 후 문자열을 참조한다.
		 */
		
		String newString = new String("new 키워드 사용");
		System.out.println(newString);
		
		String stringBasic = "클래스지만";
		String plusString = "기본 자료형처럼 사용";
		System.out.println(stringBasic + " " + plusString);
		
		/*
		문자열 + 숫자 => 우선순위가 없다면 일반적으로 문자열로 출력된다.
						단, 산술연산의 결과를 출력하고 싶다면 아래와 같이 소괄호를
						이용해서 우선순위에 대한 변화를 주면된다.
		 */
		int kor = 100, eng = 99, math = 98;
		System.out.println("총첨 : " + kor + eng + math);
		System.out.println("총첨 : " + (kor + eng + math));
	}

}

String 기본적을 클래스 입니다. 클래스의 모든 속성을 따라가지만 자료형으로 쓰기 쉽게 만들어 놓은 듯합니다. 클래스와 좀 다른 점은 문자열을 기본 자료형 같이 초기화 해줄때 그 초기화된 값이 갔다면 두개의 변수 모두 stack에서 같은 heap데이터 주소를 가리킨다는 것입니다. 이건 뒤에 클래스를 공부하면서 더 자세히 하도록 하겠습니다. 지금은 String이 참조형 변수라는 것과 클래스 이기 때문에 기본 자료형과 형변환이 불가능 하고 서로 계산이 안된다는 것 정도만 알고 있도록 하겠습니다. 

 

결과 값