☭DEVELOPER/#2 웹개발(자바기반 풀스택)

[BACKEND]JAVA_ECLIPSE24 기본 API 클래스

조반짝 2023. 8. 30. 18:15
728x90
반응형

JAVA.lang 계층 구조

API 도큐먼트

Overview (Java Platform SE 8 ) (oracle.com)

 

Overview (Java Platform SE 8 )

This document is the API specification for the Java™ Platform, Standard Edition. Submit a bug or feature For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descr

docs.oracle.com


java.lang 패키지

객체생성의 근간이 되는 최상위 계층

자바는 다양한 패키지 라이브러리를 미리 만들어 놓음

자바 패키지에 있는 클래스와 인터페이스는 import 없이 사용 가능

https://docs.oracle.com/javase/8/

 

Home: Java Platform, Standard Edition (Java SE) 8 Release 8

 

docs.oracle.com

 

 


F1 으로 도움말 볼 수있다.


API 도큐먼트에서 클래스 페이지 읽는 방법

1.

2. 클래스에 final, abstract 키워드가 있으면 상속이나, 재정의가 불가능하다. 

3.


Object 클래스

클래스를 선언할 때 extends 로 상속을 하지 않더라도, 묵시적, 암시적, 자동적으로 java.lang.Object 클래스를 상속하게 된다.

▶ 자손클래스 : 자바의 모든 클래스는 Object 클래스의 자식 이거나 자손 클래스이다.

▶ Object : 자바의 최상의 부모 클래스에 해당한다.

따로 상속하지 않더라도 기본적으로 상속이 되어있다.


객체비교

 

 


obj1 과 obj2 를 다르게 인식


객체 동등 equals

MemberExample

Member. class

package chapter11.sec01.exam01;

// 객체 동등 비교(equals() 메서드 활용)
public class Member {

	// id 필드 선언
	public String id;

	
	// 매개 변수로 id 값을 처리하는 Member 생성자 선언
	public Member(String id) {
		this.id = id;
	}
	
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Member) { // 매개값 obj가 Member 타입인지 확인함
			Member member = (Member) obj; // Member 타입으로 강제 타입 변환하고,
			// id 필드값이 동일한지 검사한 후에,
			// 만약에(if문) 동일하다면 true 를 리턴처리하게 함
			if(id.equals(member.id)) {
				return true;
			}
			// 매개값 obj가 Member 타입이 아니거나 id 필드값이 다른 경우에는 false를 리턴하게 함
		}
		
		return false;
	}
}

MemberExample 실행클래스

package chapter11.sec01.exam01;

//객체 동등 비교(equals() 메서드 활용) 이해를 위한 MemberExample 실행클래스를 소스코딩합니다.
public class MemberExample {

	public static void main(String[] args) {
		
		Member obj1 = new Member("blue");
		Member obj2 = new Member("blue");
		Member obj3 = new Member("red");
	
		// 매개값이 Member 타입이고, id 필드값도 동일하므로 true 입니다!
		if (obj1.equals(obj2)) {
			System.out.println("obj1과 obj2는 동등합니다!");
		}else {
			System.out.println("obj1과 obj2는 동등하지 않습니다.");
		}
		
		// new 명령어로 생성된 두개의 객체는 == 메모리 비교에서 false를 나타냅니다.
		if (obj1 == obj2) {
			System.out.println("obj1과 obj2는 동등합니다!");
		}else {
			System.out.println("obj1과 obj2는 동등하지 않습니다.");
		}

		if (obj1.equals(obj3)) {
			System.out.println("obj1과 obj3는 동등합니다!");
		}else {
			System.out.println("obj1과 obj3는 동등하지 않습니다.");
		}
		
		if (obj1==obj3) {
			System.out.println("obj1과 obj3는 동등합니다!");
		}else {
			System.out.println("obj1과 obj3는 동등하지 않습니다.");
		}
	}
}

 


객체 해시코드 hashCode()

객체를 식별하는 하나의 정수값

 


// hashCode() 메서드를 재정의하지 않은 예시

 

Key. class

기존에 우리는 하나의 변수의 하나의 값을 넣었다.

HashMap 자료구조: 중복되는 값(Value)과 중복되지 않는 값(Key)을 한 쌍을 이루어 데이터를 처리하는 자료구조

ex) 이름 - 주민번호

Key.class

package chapter11.sec01.exam02;

// hashCode() 메서드를 재정의하지 않은 예시
public class Key {

	
	public int number;

	public Key(int number) {
		this.number = number;
	}
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Key) {
			Key compareKey = (Key) obj;
			if (this.number == compareKey.number) {
				return true;
			}
		}
		return false;
	}
	// page476 : hashCode() 메서드 재정의 추가
	// Object의 equals() 메서드만 재정의하지 않고, hashCode() 메서드도 재정의해서
	// 논리적으로 동등한 객체일 경우, 동일한 해쉬코드가 리턴되도록 처리해야합니다.
	@Override
	public int hashCode() {
		return number;
	}
}

KeyExample

package chapter11.sec01.exam02;

import java.util.HashMap;

// 다음 예제에서 new 명령어로 Key(1) 객체로 "장나라"를 저장하고,
// 다시 new 명령어로 Key(1) 객체로 저장된 "장나라" 읽으려고 하면결과가 null로 나타나느것을 확인해봅니다.
public class KeyExample {

	public static void main(String[] args) {
		// HashMap은 키(Key)와 값(Value)을 페어(한 쌍)으로 처리하는 자료구조를 활용합니다.
		// Key 객체를 식별키로 사용해서 String 값을 저장하는 HashMap 객체 생성
		HashMap<Key, String> hashMap = new HashMap<Key, String>();
	
		// 식별키 new Key(1)로 "장나라"를 저장합니다.
		hashMap.put(new Key(1), "장나라");
		
		// 식별키 new Key(1)로 "장나라"를 읽었습니다.
		String value = hashMap.get(new Key(1));
		System.out.println(value);
		
	
		
	}
}

객체 문자정보(toString())

toString() 메소드는 객체의 문자정보를 리턴한다.

 

 

package chapter11.sec01.exam04;

import java.util.Date;

import javax.xml.crypto.Data;

// 다음 예제는 Object 클래스와 Date 클래스의 toString()메서드의 리턴값을 출력해 본 예시입니다.
// 객체의 문자정보 : toString() 메서드 활용 예시
public class ToStringExample {
	
	public static void main(String[] args) {
		
		Object obj1 = new Object();
		System.out.println(obj1.toString()); //java.lang.Object@15db9742
		Date obj2 = new Date();
		System.out.println(obj2.toString()); // Wed Aug 30 13:44:21 KST 2023
	}

}

객체의 문자정보 toString() 메서드

SmartPhone.class

 

package chapter11.sec01.exam05;

// 다음 예제의 SmartPhone 클래스에서 toString() 메서드를 오보라이딩(재정의)하여
// 제작회사(company)와 운영체제(os)를 리턴 처리하도록 합니다.
// 객체의 문자정보: toString() 메서드 활용 예시
public class SmartPhone {

	private String company;
	private String os;
	
	public SmartPhone(String company, String os) {
		this.company = company;
		this.os = os;
	}
	
	// Object 클래스에 있는 toString() 메서드를 메서드 오버라이딩(메서드 재정의)해서 활용합니다.
	@Override
	public String toString() {
		
		return company + "," + os;
	}

}

SmartPhoneExample.class

package chapter11.sec01.exam05;

// 앞서 생성한 SmartPhone 클래스를 활용하여 객체의 문자 정보 처리합니다 : toString() 메서드 활용 예시
public class SmartPhoneExample {
	
	public static void main(String[] args) {
		
		SmartPhone myPhone = new SmartPhone("구글", "안드로이드 운영체제");
		
		String strobj = myPhone.toString(); // 오버라이딩(재정의)된 toString() 메서드 호출
		System.out.println(strobj); // 구글, 안드로이드 운영체제
		
		//오버라이딩(재정의)된 toString()을 호출하고 리턴값을 받아서 처리함
		System.out.println(myPhone); // 구글, 안드로이드 운영체제
	}

}

해쉬코드 확인


System 클래스

 

▶ exit() 메소드 : 현재 실행하고 있는 프로세스를 강제 종료시키는 역할 

 system.exit(0);

exit() 과 break의 차이점

package chapter11.sec01.exam06;

// 다음 예제는 for문이 10번 반복하다가 i가 5가 되면 System.exit(0)이 실해오디어
// 자바 프로그램(JVM)을 종료 처리합니다.
public class ExitExample {
	
	public static void main(String[] args) {
		
		// for문으로 i변수를 0 부터 9까지 10번 반복 처리하게 합니다.
		for (int i = 0; i < 10; i++) {
			// 만약에 (if문) i변수값이 5가 되었을 경우에는,
			if(i == 5) {
//				System.exit(0);  //시스템(자바프로그램)을 종료 처리합니다.
			break; // 구간을 종료할 때 사용
			}
		}
		System.out.println("마무리 코드!");
	}

}

현재 시각 읽기 (currentTimeMillis(), nanoTime())

 

package chapter11.sec01.exam07;

// System 클래스의 currentTimeMillis() 메서드와 nanoTime()메서드는
// 컴퓨터의 시계로부터 현재 시간을 읽어서 밀리세컨드(1/1000초) 단위와 나노세컨드(1/1000000000) 단위의
// long값을 리턴처리합니다. 이떄, 리턴값은 주로 프로그램의 실행요소 시간측정에 사용합니다.
// 프로그램 시작시 시각을 읽고, 프로그램이 끝날 때 시각을 읽어서 처리를 구하면 프로그램 실행 요소시간이 나옵니다.
//다음 예제는 for문ㅇ르 사용해서 1부터 1000000까지의 합을 구하는데 걸린시간을 출력하는 자바프로그램입니다.
// 자바 프로그램 실행 요소 시간 구하는 예시
public class SystemTimeExample {

	public static void main(String[] args) {
		
		long time1 = System.nanoTime(); //  시작 시간 읽기
		
		int sum = 0;
		for (int i = 1; i <= 1000000; i++) {
			sum += i; // sum = sum + i;
		}
		
		long time2 = System.nanoTime(); //  종료 시간읽기
		System.out.println("1 ~ 1000000 까지의 합" + sum);
		System.out.println("합계 계산에" + (time2 -time1) + "나노초가 소요 되었습니다");
	}
}

Class 클래스

▶ 메타데이터: 

 

객체얻기를 왜하는 걸까??

우리가 정보를 보기 위해서 하는 것이다.

더 중요한 것은 java도 이러한 경로를 이해한다. 애플리케이션을 경로를 이해해야한다. project가 경로를 이해하고 있는지 확인해야한다. java가 경로에 있는 것을 인지시키고 처리하게 해야한다.


// Class 객체 정보를 얻는 ClassExample 실행 클래스를 소스 코딩

 

package chapter11.sec01.exam08;

import chapter08.sec02.exam01.Car;

// Class 객체 정보를 얻는 ClassExample 실행 클래스를 소스 코딩합니다.
public class ClassExample {

	public static void main(String[] args) throws ClassNotFoundException {
		
		//Class 객체 정보를 얻는 첫번째 방법
		Class clazz = Car.class;
		System.out.println(clazz.getName());  //chapter08.sec02.exam01.Car
		
		//Class 객체 정보를 얻는 두번째 방법
		Class clazz2 = Class.forName("chapter08.sec02.exam01.Car");
		System.out.println(clazz2.getSimpleName());  //Car

		//Class 객체 정보를 얻는 세번째 방법
		Car car = new Car();
		Class clazz3 = car.getClass();
		
		System.out.println(clazz3.getPackage().getName()); //chapter08.sec02.exam01

	}
}

자바가 경로를 인식시키게한다.

 

 


// Class 클래스 활용 리소스(Resource) 절대 경로값 정보 얻기

package chapter11.sec01.exam09;

// Class 클래스 활용 리소스(Resource) 절대 경로값 정보 얻기
public class ResourcePathExample {

	public static void main(String[] args) {
		 
		Class clazz = Car.class;
		System.out.println(clazz.getName()); //chapter11.sec01.exam09.Car
		
		// 애플리케이션에서 경로를 인지해야한다.
		String photo1Path = clazz.getResource("photo1.jpg").getPath();
		System.out.println(photo1Path);
		String photo2Path = clazz.getResource("images/photo2.jpg").getPath();
		System.out.println(photo2Path);
	}
}


바이트 배열을 문자열로 변환

package chapter11.sec01.exam11;

import java.io.IOException;

// 다음 예제는 10라인에서 String(byte[] bytes, int offset, in length) 형태로
// 바이트 배열을 문자열로 변환하였는데, length 매개값으로 배열 길이에서 2를 빼준 이유는
// 캐리지리턴(\r)+라인피드(\n) 부분은 문자열로 만들 필요가 없기 때문입니다.
// 바이트 배열을 문자열로 반환처리하는 KeyboardToStringExample 실행 클래스 소스코딩입니다.
public class KeyboardToStringExample {

	public static void main(String[] args) throws IOException {
		
		byte[] bytes = new byte[100]; // 읽은 바이트를 저장하기 위한 배열 생성 
		System.out.print("입력 = ");
		// 배열에 읽은 바이트를 저장하고 읽은 바이트 수를 리턴처리함
		int readByteNo = System.in.read(bytes);
		
	// 아래에서 배열을 문자열로 변환 처리함. length 매개값으로 배열 길이에서 2를 빼준 이유는
	// 캐리지리턴(\r)+라인피드(\n) 부분은 문자열로 만들 필요가 없기 때문입니다.
		String str = new String(bytes, 0, readByteNo-2);
		System.out.println("문자열 변환 처리 결과 = " + str);
	}
}


// 실행결과
//입력 = hello
//문자열 변환 처리 결과 = hello

 


민등혹번호에서 남성과 여성 구분 처리

package chapter11.sec01.exam12;

// 다음 예제는 주민등록번호에서 7번째 인덱스 문자를 읽어서 남성과 여성을 구별하는 자바 프로그램입니다.
// charAt() 메서드 활용, 주민등혹번호에서 남성과 여성 구분 처리 자바 프로그램 예시를 소스 코딩합니다.
public class StringCharAtExample {

	public static void main(String[] args) {
			// index = 012345678910(7)11(6)12(2)13(4)
		String ssn = "010624-2357645";
		char gender = ssn.charAt(7);
//		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(0)); // 0
//		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(6)); // -
		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(7)); // 2
//		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(13)); // 5
	
		switch (gender) {
		case '1':
		case '3':
			System.out.println("남성입니다");
			break;

		case '2':
		case '4':
			System.out.println("여성 입니다");
			break;
		}
	}
}

scanner로 입력값 받아서 출력하기

package chapter11.sec01.exam12;

import java.util.Scanner;

// 다음 예제는 주민등록번호에서 7번째 인덱스 문자를 읽어서 남성과 여성을 구별하는 자바 프로그램입니다.
// charAt() 메서드 활용, 주민등혹번호에서 남성과 여성 구분 처리 자바 프로그램 예시를 소스 코딩합니다.
public class StringCharAtExample {

	public static void main(String[] args) {
			// index = 012345678910(7)11(6)12(2)13(4)
//		String ssn = "010624-2357645";
		
		Scanner scan = new Scanner(System.in);
		System.out.print("주민등록 번호를 - 문자 포함해서 14자리로 입력해주세요==>");
		String ssn= scan.next();
		
		char gender = ssn.charAt(7);
//		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(0)); // 0
//		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(6)); // -
		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(7)); // 2
//		System.out.println("charAt() 메서드 처리값 = " + ssn.charAt(13)); // 5
	
		switch (gender) {
		case '1':
		case '3':
			System.out.println("남성입니다");
			break;

		case '2':
		case '4':
			System.out.println("여성 입니다");
			break;
		}
	}
}

 

package chapter11.sec01.exam13;

// 문자열 비교 이해를 위해 StringEqualsExample 실행 클래스를 소스 코딩합니다.
public class StringEqualsExample {

	public static void main(String[] args) {

		String strVar1 = new String("장나라");
		System.out.println(strVar1.hashCode()); // equals 메서드는 같다.
		String strVar2 = "장나라";
		System.out.println(strVar2.hashCode()); // equals 메서드는 같다.
		
		if(strVar1 == strVar2) {
			System.out.println("같은 String 객체를 참조합니다.");
		}else {
			System.out.println("다른 String 객체를 참조합니다.");
		}
				
		if(strVar1.contentEquals(strVar2)) {
			System.out.println("같은 String 객체를 참조합니다.");
		}else {
			System.out.println("다른 String 객체를 참조합니다.");
		}
	}

}

 


바이트 배열로 변환

EUC-KR 과 UTF-8 비교

▶ EUC-KR : 알파벳 1바이트, 한글 2바이트로 변환

▶ UTF-8 : 알파벳 1바이트, 한글 3바이트로 변환

 


바이트 배열로 변환 처리하는 StringGetBytesExample

package chapter11.sec01.exam14;

import java.io.UnsupportedEncodingException;

// 다음 예제에서는 문자열을 바이트 배열로 인코딩하고 길이를 출력해 봅니다.
// 그리고 다시 String 생성자를 이용해서 문자열로 디코딩 처리해봅니다.
// 바이트 배열로 변환 처리하는 StringGetBytesExample 실행 클래스를 소스코딩합니다. 
public class StringGetBytesExample {

	public static void main(String[] args) {

		String str = "안녕하세요!";
		
		byte[] bytes1 = str.getBytes(); // 사람이 이해하는 문자열을 컴퓨터가 이해하는 문자열로 변환
		System.out.println("bytes1.length = " + bytes1.length); //bytes1.length = 16(3*5)+1 = 16

		String str1 = new String(bytes1);
		System.out.println("bytes1 -> String = " + str1); //bytes1 -> String = 안녕하세요!
		
		try {
			// EUC-KR을 이용해서 인코딩 및 디코딩 처리확인
			byte[] bytes2 = str.getBytes("EUC-KR");
			System.out.println("bytes2.length = " + bytes2.length); //bytes2.length = 11(2*5)+1 = 16
			
			String str2 = new String(bytes2, "EUC-KR");
			System.out.println("bytes2 -> String = " + str2); //bytes2 -> String = 안녕하세요!

			// EUC-KR을 이용해서 인코딩 및 디코딩 처리확인
			byte[] bytes3 = str.getBytes("UTF-8");
			System.out.println("bytes3.length = " + bytes3.length); //bytes3.length = 11(2*5)+1 = 16
			
			String str4 = new String(bytes3, "UTF-8");
			System.out.println("bytes3 -> String = " + str4); //bytes2 -> String = 안녕하세요!
			
		} catch(UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}

}

 

문자열 찾기  indexOf( )

 

▶ - 1 : 문자열이 포함되어 있지 않으면 , 검색할 데이터가 없을 때 나온다.


// indexOf() 메서드를 활용하여 문자열 포함 여부를 파악하는 자바프로그램을 소스 코딩합니다.



★★★★★ 문자열 대치 replace()

String 객체의 문자열은 변경이 불가능한 특성을 갖기 때문에 replace() 메서드가 리턴하는 문자열은 원래 문자열의 수정본이 아니라 완전히 새로운 문자열이다. 따라서 newStr 변수는 새로운 문자열을 참조한다.

 


// replace() 메서드를 활용하여, 문자열을 대체하여 처리하는 자바 프로그램 소스 코딩을 합니다.

package chapter11.sec01.exam17;

// replace() 메서드를 활용하여, 문자열을 대체하여 처리하는 자바 프로그램 소스 코딩을 합니다.
public class StringReplaceExample {
	
	public static void main(String[] args) {
		
		String oldStr = "자바는 객체 지향 언어입니다! 자바는 풍부한 API 를 지원합니다.";
		System.out.println(oldStr);
		String newStr = oldStr.replace("자바", "JAVA");
		System.out.println(newStr);
				
	}

}

package chapter11.sec01.exam17;

import java.util.Scanner;

// replace() 메서드를 활용하여, 문자열을 대체하여 처리하는 자바 프로그램 소스 코딩을 합니다.
public class StringReplaceExample {
	
	public static void main(String[] args) {
		
		String oldStr = "자바는 객체 지향 언어입니다! 자바는 풍부한 API 를 지원합니다.";
		
		Scanner scan = new Scanner(System.in);
		System.out.println("oldStr에서 변경할 문자를 입력해 주시기 바랍니다==>");
		String changeStr = scan.next();
		System.out.println("oldStr에서 변경된 문자를 입력해 주시기 바랍니다==>");
		String completeStr = scan.next();
		
		System.out.println(oldStr);
//		String newStr = oldStr.replace("자바", "JAVA");
		String newStr = oldStr.replace(changeStr, completeStr);
		System.out.println(newStr);
				
	}

}

/*
 실행결과 oldStr에서 변경할 문자를 입력해 주시기 바랍니다==> 자바 oldStr에서 변경된 문자를 입력해 주시기 바랍니다==>
java 자바는 객체 지향 언어입니다! 자바는 풍부한 API 를 지원합니다. java는 객체 지향 언어입니다! java는 풍부한 API 를
지원합니다.
 */

 



 


StringToLowerUpperCaseExample


문자열 앞뒤 공백 잘라내기 trim()

package chapter11.sec01.exam20;

// trim() 메서드 활용 문자열의 앞뒤 공백 제거를 처리하는 자바 프로그램소스를 코딩합니다.
public class StringExample {

	public static void main(String[] args) {

		String tel1 = "  02";
		String tel2 = "123  ";
		String tel3 = "  1234   ";

		String tel = tel1.trim() + tel2.trim() + tel3.trim();
		System.out.println(tel); //021231234
	}

}

 

 

 


 

 

 

package chapter11.sec01.exam21;

// 기본타입 값을 문자열 반환 처리를 위해 valueOf() 메서드를 활용해 봅니다.
public class StringValueOfExample {

	public static void main(String[] args) {
		
									// int = 10
		String str1 = String.valueOf(10);
		System.out.println(str1);  // 10
								   // double =10.5
		String str2 = String.valueOf(10.5);
		System.out.println(str2);  //10.5
									// boolean =true
		String str3 = String.valueOf(true);
		System.out.println(str3);  //true
	}
}

Wrapper(포장) 클래스


// 기본 타입(primitive type)의 값을 박싱(Boxing)하고 언박싱(Unboxing) 처리하는 예시입니다.

package chapter11.sec01.exam22;

// 기본 타입(primitive type)의 값을 박싱(Boxing)하고 언박싱(Unboxing) 처리하는 예시입니다.
public class BoxingUnBoxingExample {

	public static void main(String[] args) {

		// 박싱 처리
		Integer obj1 = new Integer(100);  // 100은 int형입니다. 그것을 객체로 생성처리 합니다!
		
		// "200"은 String형입니다. 그것을 정수형 객체로 생성처리합니다!
		Integer obj2 = new Integer("200"); 
		
		// "300"은 String형입니다. 그것을 정수형 객체로 생성처리합니다!
		Integer obj3 = new Integer("300");
		
		// 언박싱 처리
		int value1 = obj1.intValue(); // 객체로 생성된 100데이터를 기본 int형 100값으로 처리합니다!
		System.out.println(value1);
		int value2 = obj2.intValue(); // 객체로 생성된 200데이터를 기본 int형 200값으로 처리합니다!
		System.out.println(value2);
		int value3 = obj3.intValue(); // 객체로 생성된 300데이터를 기본 int형 300값으로 처리합니다!
		System.out.println(value3);
		
	}

}

 

package chapter11.sec01.exam23;

// 자동 박싱과 언박싱 활용 예시입니다.
public class AutoBoxingUnBoxingExample {

	public static void main(String[] args) {

		//자동 박싱
		Integer obj =100;
		System.out.println("value = " + obj.intValue());
	
		// 대입 시 자동 언박싱
		int value = obj;
		System.out.println("value = " + value);
		
		// 연산 시 자동 언박싱
		int result = obj + 100;
		System.out.println("result: " + result);
	}
	

}

package chapter11.sec01.exam24;

// 문자열을 기본 타입(primitive type) 값으로 변환 처리하는 자바 프로그램 소스코딩
public class StringToPrimitiveValueExample {

	public static void main(String[] args) {

		int value1 = Integer.parseInt("10");
		System.out.println("value1 = " + value1); //value1 = 10
		double value2 = Double.parseDouble("3.14");
		System.out.println("value2 = " + value2); //value2 = 3.14
		boolean value3 = Boolean.parseBoolean("true");
		System.out.println("value3 = " + value3); //value3 = true

	}

}

 


포장객체 비교

ㅗ자

package chapter11.sec01.exam25;

// 포장 객체에 정확히 어떤 값이 저장될지 모를 상황이라면 == 과 != 연산자는 사용하지 않는 것이 좋습니다.
// 직접 내부 값을 언박싱해서 비교하거나, equals() 메서드로 내부 값을 비교하는 것이 좋습니다.
// 참고로, 포장 클래스의 equals() 메서드는 내부의 값을 비교하도록 재정의 되어 있습니다.
// 포장 객체 비교를 이해하기 위한 ValueCompareExample 실행 클래스를 소스 코딩합니다.
public class ValueCompareExample {

   public static void main(String[] args) {
      
      System.out.println("[-128~127 초과값일 경우]");
      Integer obj1 = 300;
      Integer obj2 = 300;
      System.out.println("== 결과: " + (obj1 == obj2)); // == 결과 : false
      System.out.println("언박싱후 == 결과 : " + (obj1.intValue() == obj2.intValue()));
      // 언박싱후 == 결과 : true
      System.out.println("equals() 처리 결과: " + obj1.equals(obj2));
      // equals() 처리 결과: true
      
      System.out.println("======================================");
      
      System.out.println("[-128~127 범위값일 경우]");
      Integer obj3 = 10;
      Integer obj4 = 10;
      System.out.println("== 결과: " + (obj3 == obj4)); // == 결과 : true
      System.out.println("언박싱후 == 결과 : " + (obj3.intValue() == obj4.intValue()));
      // 언박싱후 == 결과 : true
      System.out.println("equals() 처리 결과: " + obj3.equals(obj4));
      // equals() 처리 결과: true
      
   }

}

 

Math클래스

 


Math Example

package chapter11.sec01.exam26;

// Math의 수학 메서드 활용 MathExample 실행 클래스를 소스 코딩합니다.
public class MathExample {

	public static void main(String[] args) {

		int v1 = Math.abs(-5);
		System.out.println("v1 = " + v1);  //v1 = 5
		double v2 = Math.abs(-3.14);
		System.out.println("v2 = " + v2);  //v2 = 3.14
		
		double v3 = Math.abs(5.3);
		System.out.println("v3 = " + v3);  //v3 = 5.3
		double v4 = Math.abs(-5.3);
		System.out.println("v4 = " + v4);  //v4 = 5.3
		
		double v5 = Math.abs(5.3);
		System.out.println("v5 = " + v5);  //v5 = 5.3
		double v6 = Math.abs(-5.3);
		System.out.println("6v = " + v6);  //6v = 5.3
		
		//max
		int v7 = Math.max(5, 9);
		System.out.println("v7 = " + v7); // v7 = 9
		double v8 = Math.max(5.3, 2.5);
		System.out.println("v8 = " + v8); //v8 = 5.3
		
		int v9 = Math.min(5, 9);
		System.out.println("v9 = " + v9); //v9 = 5
		double v10 = Math.min(5.3, 2.5);
		System.out.println("v10 = " + v10); //v10 = 2.5
		
		//random
		double v11 = Math.random();
		System.out.println("v11 = " + v11); //v11 = 0.5605948528201716
		
		//rint
		double v12 = Math.rint(5.3);
		System.out.println("v12 = " + v12 ); //v12 = 5.0
		double v13 = Math.rint(5.7);
		System.out.println("v13 =" + v13); //v13 =6.0
		
		//round
		long v14 = Math.round(5.3);
		System.out.println("v14 = " + v14);  //v14 = 5
		long v15 = Math.round(5.7);
		System.out.println("v15 = " + v15);  //v15 = 6

		// 소수 둘째 자리까지(소수점 셋째 자릿수에서 반올림하는) 반올림 표현 예시 코드
		double value = 12.3456;
		double temp1 = value * 100;
		long temp2 = Math.round(temp1);
		double v16 = temp2 / 100.0;
		System.out.println("v16 = " + v16);  //v16 = 12.35
		
	}
}

 


MathRandomExample

 

package chapter11.sec01.exam27;

import java.util.Scanner;

// 임의의 주사위의 눈값을 얻는 자바 프로그램 소스 코딩합니다.
public class MathRandomExample {

	public static void main(String[] args) {
		
//		int num = (int) (Math.random()*6) + 1;
//		System.out.println("주사위 눈 = " + num);
		
		// 주사위 번호 뽑기(1, 2, 3, 4, 5, 6)
		// int num = (int) (Math.random()*6) + 1;
		
		// 로또 번호 뽑기(1,2,3, ... 43, 44, 45)
		// int num = (int) (Math.random() * 45) + 1;
		
		// 참가자들의 이벤트 당첨 번호를 화면으로 알려주는 자바프로그램을 소스 코딩해봅니다.
		Scanner scan = new Scanner(System.in);
		System.out.println("참가자들의 숫자를 입력해주세요 ==>");
		int eventNum = scan.nextInt();
		
		int eventResultNum = (int)(Math.random()*eventNum)+1;
		System.out.println("참가자들 중에서 이벤트 당첨자 번호 = " + eventResultNum);
		
		
	}
}
728x90
반응형