Java ME中是否提供所有Java SE类?

gam*_*ver 4 java java-me

我是一个Java新手.想知道所有Java SE课程是否可用Java ME.如果不是为什么会这样?

Jer*_*ome 9

不,只有一个子集可用,请参阅http://java.sun.com/javame/technology/index.jsp以获取介绍.

http://i.stack.imgur.com/doIiv.gif

本维基百科文章中给出了简要概述:

值得注意的限制

Java SE环境相比,几个API完全不存在,并且一些API被更改,使得代码需要显式更改以支持CLDC.特别是,某些更改不仅仅是缺少类或接口,而且实际上更改了基类库中现有类的签名.这方面的一个例子是缺少Serializable接口,由于反射使用的限制,接口没有出现在基类库中.因此,java.lang.*通常实现的所有类Serializable都不实现此标记接口.

其他限制示例取决于所使用的版本,因为某些功能是在CLDC 1.1版中重新引入的.

CLDC 1.0和1.1

  • 不支持Serializable接口.
  • Java标准版的部分反射功能:
    • java.lang.reflect不支持的包和它的任何类.
    • 在方法java.lang.Class其获得或者构造方法或字段.
  • 没有最终确定.CLDC不包含Object.finalize()方法.
  • 有限的错误处理.通过终止应用程序或重置设备来处理非运行时错误.
  • 没有Java本机接口(JNI)
  • 没有用户定义的类加载器
  • 没有线程组或守护程序线程.


mar*_*ton 6

值得注意的是,J2ME版本的J2SE类显然可用,它们通常具有减少的API.因此,您不能总是假设使用"可用"类的代码将直接移植.

如果内存服务,也有一两种方法也有不同的名称.内存现在还不能很好地回忆起一个具体的例子.