본문 바로가기

KOSA FullStack 교육/java

KOSA fullStack 교육 4일차(Scanner, 메모리 할당)

 

KOSA 교육 4일차

간단한 복습을 한 후 Scanner의 개념을 배움

/**
 * ShirtTest는Shirt 객체를 생성할 때 인자값으로 실제값을 바로 입력했다.
 * 즉, 컴파일 시점에 실제값이 입력되었다.
 * 프로그램은 실행할때마다 서로다른 값을 받아들일 수 있는 통로를 가져야 한다. 
 * 
 *  실행 시점에서 값을 받아들이기 위해서는 Scanner를 사용할 수 있어야 한다.
 *  우리는 실행할 때 키보드를 통해서 원하는 값을 읽어들이는 Scanner를 사용할 것이다. 
 *  
 *  1. Scanner 객체 생성 (Scanner의 필드와 메소드가 메모리에 올라간다)
 *  2. Scanner 메소드 사용 
 *  
 */
 
 Scanner sc = new Scanner(System.in);
		String maker = sc.next();
		String s = sc.next();
		int size = Integer.parseInt(s);
		// 자동생성 시 s라고 쓰여있는 메소드는 메모리에 올리지않고, 즉 객체생성을 하지 않고
		// 바로 가져다 쓸 수 있음 메모리에 이미 올려져 있다는 뜻
		String ls = sc.next();
		boolean longSleeved = Boolean.parseBoolean(ls);
//		Integer, Boolean, Byte, Float, Character... 얘네들을 Wrapper Class라고 한다.

 

 

 

이렇게 주소를 찍어보면, 

Programmer james = new Programmer("James", "java", 1000000.0, 2000);
Programmer anna = new Programmer("김안나", "python", 3000000.0, 1000);

		System.out.println(james);
		System.out.println(anna);

 

다음과 같이 주소(String형식)가 나온다 

여기서의 @ 앞 부분은 객체의 (패키지를 포함한) 클래스 이름이고 

@는 자바의 연결 기호이고, 

@이후는 객체의 해시코드 (hashCode)를 16진수로 표현한 값이다.

 

 

메모리 할당 업그레이드 버전 

Garbage Collector, 쓰레기 객체의 의미, Memory Allocation

 

5일차 내용은 간단한 문법 개념이라 블로그에 따로 적지 않았다.