기본 유형 포장 유형 더미 와 창고 의 차이
package cn.nubia;
public class Demo1
{
/**
* == , JDK , 。 , str1 str2 。
* from:http://baike.baidu.com/view/93201.htm?fr=aladdin
*
* @param args
*/
public static void main(String[] args)
{
String str1 = "I love Java";
String str2 = "I love Java";
String str3 = "I love Java too";// String ,
System.out.println(str1 == str2);// str2 , str1 , , , ,
String str4;
str4 = str2;
System.out.println(str3 == str4);
String str5 = new String("I love Java");// str5 , :java , ,
// , , ( )
// new() , , , , 。
System.out.println(str1 == str5);// false: new() , ,
// , , 。
System.out.println(new String("I lova Java") == str1);
System.out.println(str1.equals(str5));
// :
/**
* java RAM , C++ ,java , ,C++ :
* http://www.cnblogs.com/lln7777/archive/2012/03/14/2396164.html
* : (
* ), , new、newarray ,java ;
* : , , , str1 str2, String str1 =
* "I love Java";
* str1 , "I lova Java" , ,
* <span style="white-space:pre"> </span>( , str1 str5, str5 , ), String
* <span style="white-space:pre"> </span>str2="I love java"
* <span style="white-space:pre"> </span>, str2 , "I love java" , str2
* <span style="white-space:pre"> </span>"I love java", str1 str2 , str1==str2 true;
*/
// java , !
}
}
신청 제한
창고: 윈도 에서,
창고
낮은 주소 로 확 장 된 데이터 구 조 는 연속 적 인 메모리 영역 입 니 다.이 말 은 스 택 꼭대기 의 주소 와 스 택 의 최대 용량 은 시스템 이 미리 정 해 놓 은 것 이 고, WINDOWS 에서 스 택 의 크기 는 2M (1M 라 고도 하 는데, 한 번 컴 파일 할 때 정 해진 상수) 이 며, 신청 한 공간 이 스 택 의 남 은 공간 을 초과 할 경우 overflow 를 알려 준 다 는 뜻 이다.따라서 스 택 에서 얻 을 수 있 는 공간 이 적다.
쌓다
높 은 주소 로 확 장 된 데이터 구 조 는 불 연속 메모리 영역 입 니 다.이것 은 시스템 이 링크 로 저 장 된 남 은 메모리 주소 이기 때문에 당연히 연속 되 지 않 는 다.
링크 의 이동 방향 은 낮은 주소 에서 높 은 주소 로 간다.쌓 인 크기 는 컴퓨터 시스템 의 효과 적 인 가상 메모리 에 제한 을 받는다.이 를 통 해 알 수 있 듯 이 쌓 아 올 린 공간 이 비교적 유연 하고 크다.따라서 안 드 로 이 드 프로그램 에서 신청 한 배열 의 크기 가 제한 되 어 있 습 니 다.
Max Heap Size 는 메모리 의 상한 값 이 고 Android 의 부족 값 은 16M (일부 기종 은 24M) 입 니 다.
예시:
import java.util.Vector;
public class Demo1 {
/**
* @param args
*/
public static void main(String[] args) {
Vector<String> vs = new Vector<String>();
while (true) {
vs.add("a");
}
}
}
오류 보고:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Vector.ensureCapacityHelper(Unknown Source)
at java.util.Vector.add(Unknown Source)
at OOM .Demo1.main(Demo1.java:13)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.