Java

자바 step1 - 기본 8가지 타입(문자형(string), )

코딩탕탕 2022. 10. 24. 21:16

 

package test.main;
/*
 *  [ Java 참조 데이터 type ]
 *  
 *  String type
 *  
 *  - 문자열을 다룰때 사용하는 데이어 type 이다.
 */
public class MainClass05 {
	public static void main(String[] args) {
		// "김구라"라는 String type 객체를 heap 영역에 만들고 그 참조값을 변수에 담기
		String name="김구라";
		// name 안에 있는 참조값을 tmp 변수에 복사해주기
		String tmp=name;
		// "원숭이" 라는 String type 객체를 heap 영역에 만들고 그 참조값을 name 변수에 덮어쓰기
		name="원숭이";
		// name 변수를 비우기 ( null 은 참조 데이터 type 이 담길수 있는 빈 공간을 의미한다.)
		name=null;
		int num=10;
		boolean isRun=true;
	}
}

한 글자가 아닌 문자열을 넣을 때는 string을 사용한다. 빈 값을 넣으려면 null을 사용한다.

 

 

package test.main;

public class MainClass06 {
	public static void main(String[] args) {
		System.out.println("main 메소드가 시작 되었습니다.");
		
		// Javascript에서는 값을 안 넣어도 만들어지지만 Java에서는 만들어지지 않는다.
		int num1=10;
		String name1;
		
		// 아직 만들어 지지 않았기 때문에 num1 은 참조 불가
		// int result=10+num1;
		
		// 아직 만들어 지지 않았기 때문에 name1 은 참조 불가
		//System.out.println("name:"+name1);
		
		System.out.println("main 메소드가 종료 됩니다.");
	}
}

Javascript에서는 값을 안 넣어도 만들어지지만 Java에서는 만들어지지 않는다. 값을 꼭 넣어놔야 된다.

name1은 아무런 값을 넣어두지 않았기 때문에 참조가 불가능하다.

 

 

package test.main;

public class MainClass07 {
	public static void main(String[] args) {
		// 지역변수를 미리 만들고 필요한 값을 나중에 넣고 싶으면 초기값을 대입하는 것이 좋다.
		
		int num1=0;
		// 참조 데이터 type 이 담길 수 있는 빈 공간은 null 을 대입하면 된다.
		String name1=null;
		
		// 필요시에 값 넣기
		num1=999;
		name1="김구라";
		
	}
}

그렇기 때문에 미리 값을 넣어주어야 되는데 그 값은 0이 되어도 되고 null을 넣어두어도 된다. 나중에 필요시 값은 변경 가능하다.

 

 

package test.main;
/*
 *  java 에서 기본 데이터 type 8 개를 제외한 나머지는 모두 참조 데이터 type 이다.
 *  
 *  참조 데이터 type 객체는 heap 영역(사물함영역) 에 만들어진다.
 *  
 *  모든 객체는 저장소(필드) 와 기능(메소드) 로 구성되어 있을 수 있다.
 *  어떤 저장소와 어떤 기능을 가지게 될 지는 해당 type 객체가 어떻게 설계 되었냐에 따라 다르다.
 *  
 *  잠조값에 . 을 찍으면 저장소를 참조 하거나 기능을 사용할 수 있다.
 *  참조값에 . 을 찍으면 필드를 참조하거나 메소드를 호출할 수 있다.
 *  메소드 호출은 javascript 에서 함수 호출과 유사하다.
 */
public class MainClass08 {
	public static void main(String[] args) {
		String str="abcde12345";
		str.length();
		int result=str.length();
		char result2=str.charAt(4);
		String lesult3=str.toUpperCase();

		
		String str1="hello, hi";
		String str2 = str1.toUpperCase();
		/*
		 *  String 객체의 메소드를 활용해서
		 *  Str 변수 안에 있는 문자를 모두 대문자로(UpperCase)로 변환해서
		 *  Str2 라는 이름의 변수에 담아보세요.
		 */
		
		String greet="Hello! mimi, Bye! mimi";
	
		String greet2=greet.replaceAll("mimi", "mama");
		// 위의 문자열에서 mimi 라는 문자열을 mama 라는 문자열로 교체해서 결과를 greet2 에 담아보세요
		// String 객체의 메소드를 활용해서
		
		String message="My name is Kimgura";
		boolean isStart=message.startsWith("My");
		
		int index=message.indexOf("i");
		/*
		 *  1. 위의 문자열이 My 라는 문자열로 시작하는지 여부를 isStart 라는 변수에 담아보세요
		 *  
		 *  2. 위의 문자열에서 i 가 문자열의 몇번째 인덱스에 위치하고 있는지를 index 라는 변수에 담아보세요.
		 */
	}
}

 java 에서 기본 데이터 type 8 개를 제외한 나머지는 모두 참조 데이터 type 이다. length() 메소드는 값의 총 갯수를 나타낸다. UpperCase 메소드는 모든 문자를 대문자로 변환시켜준다.

replaceAll 메소드는 해당 문자를 다른 문자로 변경시켜준다.

startsWith 메소드는 맨 앞자리 문자열이 해당 문자열이 맞으면 true, 맞지 않으면 false를 반환해준다.

indexOf 메소드는 해당 문자열이 몇번째 인덱싱인지 알 수 있다.