`

高级开发

    博客分类:
  • J2ME
阅读更多
高级开发

异常处理
异常的出现
程序运行时由于一些不可预知的原因出现异常(如文件找不到,用户输入参数格式不对)
异常的特点:掠过该块内余下的代码
常见的异常
  ArithmeticException: 算术异常,如除数为0
  ArrayIndexOutOfBoundsException:数组越界异常
  ArrayStoreException:数组存储异常
  ClassCastException:类型转换异常
  IllegalArgumentException:无效参数异常
  NegativeArraySizeException:数组尺寸为负异常
  NullPointerException:未分配内存异常
  NumberFormatException:数字格式异常
  StringIndexOutOfBoundsException:字符串越界异常

捕获异常
try{
  //可能出现异常的代码
  }
  catch(Exception1 ex1){/*处理1*/}
  catch(Exception2 ex2){/*处理2*/}
  catch(Exception3 ex3){/*处理3*/}
  …..
  finally{ //可选
  }
异常的两种处理方式
就地处理:用try---catch
抛出,给客户端处理
  在相应函数定义上增加:throwsXXXException,在代码内抛出该异常对象
  客户端用try---catch来处理异常
自定义异常

多线程
线程及其实现
让应用程序看起来同时能做好几件事情,怎么办?
你可以开一个线程
线程实现的方法
方法1:Thread继承法
  定义一个类,继承Thread
  重写其run函数
  对象调用start方法
方法2:Runnable实现法
  定义一个类,实现Runnable
  重写其run函数
  定义一个Thread对象,将该对象传进去,调用start方法

线程的安全问题
1:线程协作
     等待一个线程运行完毕: join
2:线程同步
     线程同步的重要关键字: synchronized

数值运算,字符串处理,时间管理
数值运算
java.lang.Math类
  static double E :自然对数e
  static double PI :圆周率
  static double abs(double/float/int/long a):计算绝对值
  static double ceil(double a) :不小于一个数字的最小整数
  static double floor(double a) :不大于一个数字的最大正整数
  static double max(double/float/int/long a, double/float/int/long b) :两数中较大的那个
  static double min(double/float/int/long a, double/float/int/long b) :两数中较小的那个
  static doublesqrt(double a) :开方
  static double sin(double a) :正弦
  static doublecos(double a) :余弦
  static double tan(double a) :正切
  static doubletoDegrees(doubleangrad) :弧度转角度
  static doubletoRadians(doubleangdeg) :角度转弧度
  注意:有些函数来源于CLDC1.1,CLDC1.0不支持

字符串处理:String
String: 处理不可变的字符串
  charcharAt(intindex) :返回某位置的字符
  boolean endsWith(String suffix)/startsWith(String prefix) :是否以某串结尾/开头
  booleanequals(ObjectanObject) /equalsIgnoreCase(StringanotherString) :字符串相等/不区分大小写情况下是否相等
  byte[]getBytes()/getBytes(String enc) :根据默认/相应字符集转成字节数组
  byte[]getBytes(String enc):根据相应字符集转成字节数组
  int indexOf(int ch) /int indexOf(int ch,int fromIndex):返回字符在串中位置
  int indexOf(Stringstr) /int indexOf(Stringstr,int fromIndex) :返回字符串在串中位置
  intlength() :长度
  String replace(charoldChar, charnewChar) :替换字符
  Stringsubstring(int beginIndex) /substring(int beginIndex,int endIndex) :截取某段
  char[]toCharArray() :转为字符数组
  StringtoLowerCase()/toUpperCase() :转小写/大写
  String trim() :去掉两边空格
  static StringvalueOf(各种类型):将各种类型转为字符串

字符串处理:StringBuffer
StringBuffer:处理可变的字符串(相关函数作了同步处理)
  StringBufferappend(各种类型):在末尾添加字符
  StringBufferinsert(intoffset, 各种类型):在其中添加字符
  StringBufferdelete(intstart,intend) /deleteCharAt(intindex) :删除字符
  intlength() 包含的字符数
  intcapacity() :剩余容量
  charcharAt(intindex) :返回某位置的字符
  voidgetChars(int srcBegin,int srcEnd, char[]dst,int dstBegin):得到一段字符
  StringBufferreverse() :反转
  voidsetCharAt(intindex, charch):替换某个位置的字符
  StringtoString() :转为字符串

时间管理
java.util.TimeZone:管理时区
  staticTimeZone getTimeZone(String ID) :根据ID得到时区
  static String[]getAvailableIDs() :得到系统支持的时区ID
  abstractboolean useDaylightTime() :该时区是否支持夏令时
java.util.Calendar:日历
  static CalendargetInstance()/getInstance(TimeZonezone) :得到日历对象
  intget(intfield) :得到日期内的某个值,参数为静态变量
java.util.Date:管理时间

随机数,集合和定时器
随机数:Random
  常用方法:nextInt(n)
  生成某个范围内的随机数

集合
  一维集合:java.util.Vector: 可以添加,删除,修改,获得对象
  二维集合:java.util.Hashtable: 利用key=value的形式进行数据存储,可以添加,删除,修改,获得对象

定时器
要让某个组件每隔一段时间做一件事情,也许你觉得线程方法比较麻烦,可以用定时器
要点:
  定义一个类,继承TimerTask,重写run方法
  定义一个Timer
  void schedule(TimerTasktask, Date time) :某时刻触发
  void schedule(TimerTasktask, DatefirstTime, long period):某个时刻开始执行,指定重复执行的周期,单位是毫秒
  void schedule(TimerTasktask, long delay) :某段时间之后触发
  void schedule(TimerTasktask, long delay, long period),某段时间之后触发开始执行

灯光闪烁和震动功能
  Display的flashBackLight函数
  Display的vibrate函数
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics