Java 불변 유형에 대한 자세한 설명

2104 단어
먼저 다음 예를 살펴보겠습니다.
 
  
    import java.math.BigInteger; 
    public class BigProblem { 
        public static void main(String[ ] args) { 
            BigInteger fiveThousand  = new BigInteger("5000"); 
            BigInteger fiftyThousand = new BigInteger("50000"); 
            BigInteger fiveHundredThousand = new BigInteger("500000"); 
            BigInteger total = BigInteger.ZERO; 
            total.add(fiveThousand); 
            total.add(fiftyThousand); 
            total.add(fiveHundredThousand); 
            System.out.println(total); 
        } 
    } 

너는 이 프로그램이 555000을 출력할 것이라고 생각할 수도 있다.결국, 토탈은 빅인터내셔널로 표시된 0으로 설정된 다음에 5000, 50000, 500000을 이 변수에 추가했다.만약 이 프로그램을 실행한다면, 555000이 아니라 0으로 인쇄된 것을 발견할 수 있을 것이다.이 모든 덧셈은 토탈에 아무런 영향을 미치지 않았다는 것이 분명하다.
BigInteger 인스턴스는 변경될 수 없습니다.String, BigDecimal, 패키지 유형: Integer, Long, Short, Byte,Character,Boolean, Float, Double도 마찬가지입니다. 값을 수정할 수 없습니다.우리는 기존 실례의 값을 수정할 수 없습니다. 이런 종류의 조작은 새로운 실례를 되돌려줍니다.처음에는 변하지 않는 유형이 부자연스러워 보일 수 있지만 그에 대응하는 변하지 않는 유형보다 장점이 많다.불변 유형은 설계, 실현, 사용이 더욱 쉽다.오류 발생 가능성이 적고 더욱 안전합니다[EJ Item 13].
변하지 않는 대상에 대한 인용을 포함하는 변수에서 계산을 실행하기 위해서, 우리는 계산된 결과를 이 변수에 부여해야 한다.이렇게 하면 다음 프로그램이 만들어집니다. 이 프로그램은 우리가 원하는 555000을 출력합니다.
 
  
    import java.math.BigInteger; 
    public class BigProblem { 
        public static void main(String[] args) { 
            BigInteger fiveThousand  = new BigInteger("5000"); 
            BigInteger fiftyThousand = new BigInteger("50000"); 
            BigInteger fiveHundredThousand = new BigInteger("500000"); 
            BigInteger total = BigInteger.ZERO; 
            total = total.add(fiveThousand); 
            total = total.add(fiftyThousand); 
            total = total.add(fiveHundredThousand); 
            System.out.println(total); 
        } 
    } 

좋은 웹페이지 즐겨찾기