⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newarray_overflow.java

📁 gcc的组建
💻 JAVA
字号:
/* This test checks for two slightly different overflow scenarios in * array allocation. * * The first is that the number of bytes needed for an array size * overflows on a 32 bit machine. * * The second is that on a 64 machine, the number of bytes silently * gets truncated, resulting in too small an object being * allocated.  */class newarray_overflow{  static boolean failed = false;  static void int_check()  {    int[] x;    try      {	x = new int [1 << 30];      }    catch (OutOfMemoryError e)      {	return;      }    /* If we really get away with it (64 bit machine), that's cool.  */    if (x == null) {      System.err.println ("int check: new returned null.");      failed = true;      return;    }    try      {	// Only check a few places so we don't thrash too badly.	for (int i = 0; i < x.length; i += (1 << 24))	  if (x[i] != 0)	    failed = true;      }    catch (Throwable e)      {	System.err.print ("int check: ");	System.err.println (e);	failed = true;      }  }  static void object_check()  {    Object[] x;    try      {	x = new Object [1 << 30];	System.err.println ("Alloc succeeded.");	System.err.println (x);      }    catch (OutOfMemoryError e)      {	return;      }    /* If we really get away with it (64 bit machine), that's cool.  */    if (x == null) {      System.err.println ("Object check: new returned null.");      failed = true;      return;    }    try      {	for (int i = 0; i < x.length; i += (1 << 24))	  if (x[i] != null)	    failed = true;      }    catch (Throwable e)      {	System.err.print ("Object check: ");	System.err.println (e);	failed = true;      }  }  public static void main (String[] ignore)  {    int_check();    object_check();    if (!failed)      System.out.println ("ok");  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -