J2ME KJava的基础知识面试要点
一:整型(byte,short,int,long)
byte 类型为8 位,存储范围为 –2(7)~~~ 2(7)-1,及-128~~127(经过测试的),如果数值超出-128~127这个范围,则
数值会转为-128~127中的一个数值,特别适合于表示网络和文件的字节流.
short类型为16位,存储范围为 –2(15)~~~ 2(15)-1,及-32768~~32767,为了节省内存,可使用short代替int,但
是它限制数据的存储为高位在前,低位在后的数据格式,在某些机器中会出错.
int? 类型为32位,存储范围为 –2(31)~~~ 2(31)-1,及-2147483648~~2147483647,及二十多个亿,最常用的类型
long类型为64位,存储范围为 –2(63)~~~ 2(63)-1,需要在其数值后加上L或l,如:long? al=2L
当前 整型常量的默认为 int 类型
char 类型, 用于表示一个字符,java使用的是16位Unicode字符集,因此java字符是一个16位无符号整数,取
值范围0~65535,如:char? a=’z’,char? b=’王’,char? c=0xf0abc1
在java中,字符类型数据不能作为整数使用,因为java中没有无符号整数类型,但是字符数据可以
转换为整数来计算。
\uddd: 3位八进制数所表示的字符(ddd)
\uxxxx:4位十六进制数所表示的字符(xxxx),例如 \u0061表示ISO拉丁字符集中的a
\n:表示换行
二:进制数
十进制数:? 默认表示形式,是最长用的。
十六进制数:经常用到,其每一位数相当于4个二进制0和1的组合。范围0~F,十六进制整数必须以0x作为
开头,0xff:对应十进制为255,0xffL:对应十进制为255L
八进制:?? 每一位数值相当于3个二进制数0和1的组合,开头必须为O,如:O11 十进制为9,二进制为1001
三:浮点数
也被称为 实型,用来表示一个带小数的十进制数,它分为float和double两种.
单精度 float型数据范围为 32位,双精度 double类型数据范围为 64位
float类型: 3.14F
double类型:3.14或3.14D
在手机开发中,LCDC1.0规范中不支持float和double类型,只有CLDC1.0规范中才开始支持float和double类型
四:基本数据类型和对应类间的关系
五:
1:J2ME一般又称为Kjava,有两个虚拟机,KVM(K Virtual Machine? K虚拟机)和CVM(C Virtual Machine,C虚拟
机),都是JVM(Java Virtual Machine)的子集,KVM的功能比CVM的功能稍差,其上可以使用CLDC配置和MIDP
简表。
2:J2ME中有两个可选配置-CDC(Connected Device Configuration,连接设备配置)和CLDC(Connected Limited Device
Configuration,有限连接设备配置)
3:MIDlet(Mobile Information Devices let,移动信息设备小程序),就是可以在KVM上运行的应用程序.
4:J2ME程序需要MANIFEST.MF和JAD文件,很多开发工具,如NetBeans等都提供了自动完成的功能,能自动的
创建并更新这些文件.
5:JCP(Java Community Process,Java标准化组织)
JSR37: 属于MIDP1.0(Mobile Information Device Profile 1.0,移动信息设备简表)规范
JSR118:属于MIDP2.0(Mobile Information Device Profile 2.0,移动信息设备简表)规范
JSR120:属于WMA(Wireless Messaging API,无线信息规范)规范
JSR30:? 属于CLDC1.0规范
JSR139: 属于CLDC1.1规范
JSR135: 属于移动媒体开发的Mobile Media API规范
JSR184: 属于移动3D图形开发的Mobile 3D Graphics API规范
JSR75:? 属于手机文件系统API规范
六:多线程
1: 对多线程技术的支持是Java语言的一个特色,在手机开发中的很多地方都要使用多线程进行开发。
2: 线程同步方法:线程的同步,必须使用synchronized语句可以对共享数据的访问语句进行保护,synchronized语句
会在访问数据时为共享数据加一个锁,加锁后其它线程就不能访问该共享数据了。
3: 当在一个类中有三个方法,p1(),synchronized p2(),synchronized p3(),则当某个线程访问了p2()后,在p2()没
有执行完成的情况下,其它线程不可以访问p2(),也不可以访问p3(),但是可以访问p1(),因为p1()没有加s
ynchronized。
4: 当一个客户用synchronized块或synchronized方法操作一个共享变量时,其他线程就必须等待,直到该线程执行完
该方法或同步块。
七:简单的程序
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
public class Midlet extends MIDlet implements CommandListener{
Command commandTest;
public void startApp(){
Display display=Display.getDisplay(this);
Form form=new Form(”最简单的例子”);
commandTest=new Command(”测试”,Command.OK,1);
form.addCommand(commandTest);
form.setCommandListener(this);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command, Displayable displayable) {
if(command==commandTest){
System.out.println(”使用对象相等的比较,还是第一次见到!”);
}
}
}
八:JCP(Java Community Process,Java标准化组织)