Day21 :) java.lang패키지 - System, Wrapper, Math

System 클래스

  • 표준에러 출력장치, 입력자잋, 출력장치과 연결된 스트림

err.print("String")

import java.io.IOException;

	public static void main(String[]args){
		System.err.print("문자열");
	}
  • 에러메세지 출력
System.err.println("표준 에러출력장치");
System.err.println("표준 에러출력장치");
System.out.println("표준 출력장치");
System.err.println("표준 에러출력장치");
System.err.println("표준 에러출력장치");
  • 해당 코드를 실행하면 다음과 같이 순서대로 출력되지 않음
  • 에러코드(err)를 처리하는 통로 따로, 정상메세지 처리하는 통로(out)의 처리순서가 제각각이기때문

CurrentTimeMillis()

import java.util.Date;

	public static void main(String[]args){
		System.currentTimeMillis();
    }
  • 유닉스타임 제공
  • 유닉스 타임이란, 1970년 1월 1일을 기준으로 1/1000단위(1초에 1000번)로 시간을 세는 단위
  • 반환타입은 long

arraycopy(Object[] src, int srcPos, Object[] dest, int destPos, int length)

import java.util.Arrays;
	
    public static void main(String[]args){
    	System.arraycopy(원본배열, 복사시작위치, 대상배열, 원본배열이 저장될 위치, 대상배열에 저장할 원본배열의 데이터길이)
    }
  • 배열을 복사
1. 원본배열
int[] s = {10,20,30,40,50,};

2. 복사할 배열
int[] d = new int[10];

System.arraycopy(s, 0, de, 0, s.length);
// 원본배열(s)의 0번부터 대상배열(d)의 0번째 칸에 복사. 복사할 총 데이터 갯수는 원본배열의 모든 데이터

Wrapper 클래스

  • 기본자료형 값을 객체로 만들 수 있음
class Person1{
	Integer age;
}

class Person2{
	int age;
}
Person1 p1 = new Person1();	// age = null;
Person2 p2 = new Person2();	// age = 0;

오토박싱, 오토언박싱

  • 오토박싱: 변수타입이 Wrapper이고 저장할 값의 타입이 기본자료형일때
    자동으로 Wrapper객체에 기본자료형을 대입하는 것
Integer a1 = 10;
// 형변환 없이 간단하게 객체에 값 저장 가능
// 실제 실행되는 내용 Integer c1 = new Integer(10);
  • 오토언박싱: Wrapper클래스타입 객체의 값을 기본자료형 타입의 변수에 대입하면
    자동으로 Wrapper객체가 갖고 있는 기본자료형의 값이 대입됨
Integer c1 = 1000;	// 오토박싱(Integer c1 = new Integer(1000);
int c2 = c1;	// 자동으로 c1객체 내의 정수값을 꺼내 c2에 저장
  • 즉, Wrapper로 들어가는 것은 오토박싱, 기본자료형으로 들어가는것은 오토언박싱
  • 연산도 가능
Integer d1 = 20;
Integer d2 = 30;
int d3 = 40;
int sum = d1 + d2 + d3	// 90출력
// d1, d2가 언박싱 되어 기본자료형인 d3과의 연산 실행

진수변환

  • 10진수를 기타 진수로 변환
Integer.toBinary(값);		// 2진수
Integer.toOctalString(값);	// 8진수
Integer.toHexString(값);	// 16진수
  • 기타진수를 10진법으로 변환
Integer.parseint("값",2);	// 2진법인 값을 10진법으로 변환
Integer.parseint("값",8);	// 8진법인 값을 10진법으로 변환
Integer.parseint("값",16);	// 16진법인 값을 10진법으로 변환

문자열↔기본자료형

1. 기본자료형으로 변환
기본자료형.parse자료형("문자열")
2. 객체로 변환
기본자료형.valueOf("문자열")
  • 문자열을 기본자료형으로 변환
  • int로 변환시, 숫자가 아닌 어떠한 값도 들어가있으면 안됨(언더바, 소수점, 공백 등)
  • double로 변환 시, 소수점값 허용(123.->123.0 / 123->123.0으로 변환)
1. String.valueOf(값)
2. +""빈문자열을 더함
  • 기본자료형을 문자열로변환

Math 클래스

  • 수학계산과 관련된 기능 제공
  • 모든 메서드가 정적메서드

random()

Math.random();
  • 0.0<=1.0 값을 랜덤으로 반환
(int)(Math.random()*10)+1	// 1~10사이의 정수 랜덤으로 얻음
(int)(Math.random()*3)+1	// 1~3사이의 정수 랜덤으로 얻음

ceil()

Math.ceil(double값)
  • 올림값 반환
  • 보통 int로 형변환하여 사용함
double a1 = Math.ceil(3.3)	// 4.0

floor()

Math.floor(double값)
  • 내림값 반환
  • 역시 보편적으로 int로 형변환하여 사용

round()

Math.round(double값)
  • 소수점 첫째자리에서 반올림한 값 반환
  • 중간값일 경우 큰 값 반환
double a1 = Math.round(123.3);	// 123
double a2 = Math.round(123.5);	// 124

rint()

Math.rint(double값)
  • 반올림값 반환
  • 중간값일 경우 짝수값 반환
double a1 = Math.rint(1.2);	// 1
double a2 = Math.rint(4.5);	// 4

좋은 웹페이지 즐겨찾기