Programing

Java int to String - Integrity.toString(i) 대 새 정수(i.toString()

c10106 2022. 4. 16. 09:16
반응형

Java int to String - Integrity.toString(i) 대 새 정수(i.toString()

가끔 Java가 나를 곤혹스럽게 한다.
나는 엄청난 의 초기화를 해야 한다.

진짜 차이점이 뭐야?

  1. Integer.toString(i)
  2. new Integer(i).toString()

Integer.toString 수업시간에 정적인 방법을 호출하다.의 예가 필요 없다.Integer.

호출할 경우 유형의 인스턴스를 생성하십시오.Integer인트 값을 캡슐화하는 전체 Java 개체 입니다.그리고 나서 당신은 전화를 한다.toString자신의 문자열 표현을 반환하도록 요청하는 방법

만약 당신이 원하는 것이 단지 인쇄하는 것이라면int첫 번째 것은 더 가볍고 빠르며 추가 메모리를 사용하지 않기 때문에 (반환된 문자열에서 가져온) 첫 번째 것을 사용할 것이다.

예를 들어 정수 값을 나타내는 객체를 원할 경우(예: 이를 집합에 넣기 위해) 두 번째 객체를 사용할 수 있는데, 이 객체는 맨손으로 수행할 수 없는 모든 종류의 작업을 수행할 수 있는 완전한 객체를 제공하기 때문이다.int.

new Integer(i).toString()먼저 주위에 래퍼 개체를 생성하십시오.i(그 자체가 포장된 물체일 수 있음)Integer).

Integer.toString(i)불필요한 물체를 만들지 않기 때문에 선호된다.

또 다른 옵션은 정적 방법이다.

String.valueOf(i)

보다 약간 더 옳게 느껴진다.Integer.toString(i)나에게. 예를 들어, 나의 타입이 바뀔 때,intdouble코드는 정확할 것이다.

  1. new Integer(i).toString();

    이 문장은 정수 객체를 만든 다음 그 메소드를 호출한다.toString(i)정수 값의 문자열 표현을 반환하십시오.

  2. Integer.toString(i);

    특정 int(integer)나타내는 String 개체를 반환하지만 여기서toString(int)a이다static방법

요약은 첫 번째 경우에 객체 문자열 표현을 반환하며, 두 번째 경우에는 정수의 문자열 표현을 반환한다.

나는 또한 사용하기를 강력히 추천한다.

int integer = 42;
String string = integer + "";

간단하고 효과적이다.

비록 나는 후초의 추천을 좋아하지만

String.valueOf(i)

아이러니한 것은 이 방법이 실제로

Integer.toString(i)

그러므로, 사용String.valueOf(i)만약 당신이 그것이 읽히는 방식을 좋아하고 당신이 라딕스를 필요로 하지 않는다면, 그리고 또한 그것이 보다 덜 효율적이라는 것을 알고 있다.Integer.toString(i).

성능 측정에 있어 시간 성능을 고려한다면 Integr.toString(i); 1억 회 미만으로 전화를 걸면 비용이 많이 든다.그렇지 않으면 1억 통화 이상이 되면 새로운 정수(10).toString()가 더 좋은 성능을 발휘할 것이다.

아래는 성능측정을 시도할 수 있는 코드 입니다.

public static void main(String args[]) {
            int MAX_ITERATION = 10000000;
        long starttime = System.currentTimeMillis();
        for (int i = 0; i < MAX_ITERATION; ++i) {
            String s = Integer.toString(10);
        }
        long endtime = System.currentTimeMillis();
        System.out.println("diff1: " + (endtime-starttime));

        starttime = System.currentTimeMillis();
        for (int i = 0; i < MAX_ITERATION; ++i) {
            String s1 = new Integer(10).toString();
        }
        endtime = System.currentTimeMillis();
        System.out.println("diff2: " + (endtime-starttime));
    }

기억력 면에서는

새 정수(i).toString();

매번 개체를 만들 것이기 때문에 더 많은 메모리가 필요할 것이고 그래서 메모리 조각화가 일어날 것이다.

더 나은 방법:

Integer.valueOf(i).toString()

간단한 방법은 연결만 하면 된다.""정수:

int i = 100;

String s = "" + i;

지금 당장s을 가질 것이다100문자열 값으로

여기Integer.toString정수 클래스의 정적 메서드를 호출한다.그것은 그 물체가 호출할 필요가 없다.

전화하면new Integer(i)먼저 Int i 값을 캡슐화하는 전체 Java 개체인 정수 유형의 인스턴스를 만드십시오.그리고 나서 당신은 전화를 한다.toString자신의 문자열 표현을 반환하도록 요청하는 방법

1.Integer.toString(i)

Integer i = new Integer(8);
    // returns a string representation of the specified integer with radix 8
 String retval = i.toString(516, 8);
System.out.println("Value = " + retval);

2.new Integer(i).toString()

 int i = 506;

String str = new Integer(i).toString();
System.out.println(str + " : " + new Integer(i).toString().getClass());////506 : class java.lang.String

참조URL: https://stackoverflow.com/questions/3930210/java-int-to-string-integer-tostringi-vs-new-integeri-tostring

반응형