`
vvznj72m
  • 浏览: 12406 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

2011-9-13

 
阅读更多

2011-9-13
2011年09月13日
  JavaSE知识集[/b]
  [b]一、
异常[/b]
  1、Java异常是Java提供的用于处理程序在运行过程中发生的一些异常事件(如:数组下标越界、所要读取文件不存在等)的一种机制。
  2、异常的分类:
  3、异常的捕获和处理:
  4、自定义异常的生成:
  5、注意:重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常。
  [b]二、容器
[/b]
  1、容器:Java API所提供的一系列类的实例,用于在程序中存放对象。(存放的是对象,不能是基础数据类型:因为栈上的数据随时有可能被清空)
  2、Collection接口定义了存去一组对象的方法,其子接口Set和List分别定义了存储方式:a、Set类及其子类在存储时,其存储对象之间是无序的且不可重复的;b、List类及其子类在存储时,其存储对象之间是有序的且可以重复的。(这里的重复是两个对象之间的互相equals())
  3、Map接口定义了存储“键(key)―值(value)映射对”的方法。
  4、容器类对象在调用remove、contains等方法时,需要比较对象是否相等。这会涉及对象类型的equals方法和hashCode方法;对自定义的类型,需要重写equals和hashCode方法以实现自定义的对象相等规则。(注意:相等的对象应该具有相等的hash codes。)(java.lang.Object中的equals的默认方法是判断两个对象是否为同一对象。)
  5、Iterator接口:所有实现了Collection接口的容器都有一个iterator方法用于返回一个实现了Iterator接口的对象。此对象被称为迭代器,用以方便的事项对容器内元素的遍历操作。Iterator接口定义了如下方法:
  boolean hasNext();//判断游标右边是否是元素
  Object next();//返回游标右边的元素并将游标移动到下一个位置
  Void remove();//删除游标左边的元素,在执行完next之后该操作只能执行一次
  Iterator中游标情况如下图:
  注意:Iterator对象的remove方法是在迭代过程中删除元素的唯一安全的方法。
  6.关于数组与Collection遍历的补充:
  7、Set接口:
  注意:Set接口可以完成数学集合中的运算。
  8、List接口:
  9、Map接口:
  注意:键值不能重复,是通过equals和hashCode方法来确定的。
  10、Auto―boxing/unboxing(自动打包,解包)(在java1.5之后才有的)
  在合适的时机自动打包、解包:a、自动打包就是自动的将基础数据类型转换为相应的对象;b、自动解包就是自动的将相应的基础数据类型对象转换为基础数据类型。
  11、泛型:
  容器结构说明图:
  [b]三、
IO
  1、在Java程序中,对于数据的输入/输出操作以“流”(stream)方式进行;J2SDK提供了各种各样的“流”类,用以获取不同种类的数据;程序中通过标准的方法输入或输出数据。
  2、java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同的角度对其进行分类:
  a、按数据流的方向不同可以分为输入流和输出流;
  b、按处理数据单位不同可以风味字节流和字符流;
  c、按照功能不同可以分为节点流和处理流。
  3、节点流为可以从一个特定的数据源(节点)读写数据,如文件、内存等(即,直接从数据源上读写数据,并且数据是没有经过处理的字节或字符)。处理流是“连接”在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能(即,嵌套在其他流之上的流)。
  4、InputStream:继承自InputStream的流都用于向程序中输入数据,且数据的单位为字节(8bit);下图中深色为节点流,浅色为处理流。
  InputStream的基本方法:
  int read() throws IOException//读取一个字节并以整数的形式返回,读到末尾返回-1。
  int read(byte[] buffer) throws IOException//读取一系列的字节并存储在buffer中。返回值是实际读取了多少个字节数,读到末尾返回-1。
  int read(byte[] buffer,int offset,int length) throws IOException//读取length个字节在buffer中从offset位置开始存放。返回值是实际读取了多少个字节数,读到末尾返回-1。
  int close() throws IOException//关闭释放内存资源。
  Long skip(long n) throws IOException//跳过n个字节不读,返回实际跳过的字节数。
  5、OutputStream:继承自OutputStream的流都用于程序向外输出数据,且数据的单位为字节(8bit);下图中深色为节点流,浅色为处理流。
  OutputStream的基本方法:
  void write(int b) throws IOException//向输出流中写入一个字节数据,且为该参数b的低8位。
  void write(byte[] b) throws IOException//将一个字节类型的数组中的数据写入输入流。
  void write(byte[] b,int off,int length) throws IOException//将一个字节类型的数组中的数据从off位置开始写入length个字节到输入流。
  void close() throws IOException//关闭流释放内存资源。
  void flush() throws IOException//将数据流中缓冲的数据全部写出到目的地。
  注意:在关闭流之前最好调用flush()方法。
  6、Reader:继承自Reader的流都是用于向程序中输入数据,且数据的单位为字符(16bit);下图中深色为节点流,浅色为处理流。
  Reader的基本方法:
  int read() throws IOException//读取一个字符并以整数的形式返回,读到末尾返回-1。
  int read(char[] buffer) throws IOException//读取一系列的字符并存储在buffer中。返回值是实际读取了多少个字符数,读到末尾返回-1。
  int read(char[] buffer,int offset,int length) throws IOException//读取length个字符在buffer中从offset位置开始存放。返回值是实际读取了多少个字符数,读到末尾返回-1。
  int close() throws IOException//关闭释放内存资源。
  Long skip(long n) throws IOException//跳过n个字符不读,返回实际跳过的字符数。
  7、Writer:继承自Writer的流都是用于程序向外输入数据,且数据的单位为字符(16bit);下图中深色为节点流,浅色为处理流。
  Writer的基本方法:
  void write(int c) throws IOException//向输出流中写入一个字符数据,且为该参数c的低16位。
  void write(char[] c) throws IOException//将一个字符类型的数组中的数据写入输入流。
  void write(char[] b,int off,int length) throws IOException//将一个字符类型的数组中的数据从off位置开始写入length个字符到输入流。
  Void write(String string) throws IOException//将一个字符串中的字符写入到输出流。
  Void write(String string,int off,int length) throws IOException/将一个字符串中的字符从off位置开始写入length个字符到输入流。
  void close() throws IOException//关闭流释放内存资源。
  void flush() throws IOException//将数据流中缓冲的数据全部写出到目的地。
  注意:在关闭流之前最好调用flush()方法。
  8、针对文件进行操作的节点流有FileInputStream,FileOutputStream,FileReader,FileWriter。注意:关于文件路径的写法有如下两种方法:
  a、D:/DataBase/sbgl_1.LDF
  b、D:\\DataBase\\sbgl_1.LDF
  9、处理流:
  a、缓冲流(BufferedXXX,带有缓冲区的流,readLine()、writeLine() 在字符流中)。
  b、转换流将字节数据转换为字符数据(InputStreamReader和  OutputStreamWriter)。
  c、数据流:可以存取与机器无关的Java原始类型数据(如,int,double,   boolean等)的方法。(DataInputStream和DataOutputStream)。
  d、Print流(PrintStream和PrintWriter)都是输出流。PrintWriter和  PrintStream提供了重载的print,println方法用于多种数据的输出。    PrintWriter和PrintStream的输出操作不会抛出异常,用户通过检测错误    状态获取错误信息。PrintWriter和PrintStream有自动flush功能。
  e、Object流(ObjectInputStream和ObjectOutputStream):直接将Object   写入或读出。注意:Object流处理的对象必须实现Serializable接口,使  其可以序列化(其序列化得过程是由虚拟机控制的)。transient关键字的意    思是在序列化得时候忽略此项。
  四、多线程
  1、线程是进程中的一条执行路径。进程是系统中正在运行的程序。(进出是一个静态概念,线程是一个动态概念。)
  2、开启一个新的线程的方法:
  a、继承Thread类,并且重写Thread中的run方法。
  b、实现Runnable接口。
  注意:开启新线程是通过调用start方法,而直接调用run方法只是一般得方法调用。
  3、线程状态的转换:
  4、线程控制基本方法
  isAlive()判断线程是否还“活着”,即线程是否还未终止。
  getPriority()获得线程的优先级数值。
  setPriority()设置线程的优先级数值。
  Thread.sleep()见当前线程睡眠指定毫秒数。
  join()调用某线程的该方法,将当前线程与该线程“合并”,即等待该线程  结束,再回复当前线程的运行。
  yield()让出CPU,当前线程进入就绪队列等待调度。(只让一次)
  wait()但其线程进入对象的wait pool。
  notify()/notifyAll()唤醒对象的wait pool中的一个/所有等待线程。
  注意:线程的优先级取值范围1到10,默认为5。
  5、线程同步是为了防止多个线程访问同一个数据对象时,对数据造成破坏。
  实现线程同步的方法:
  a、代码块锁定:
  synchronized(this){......}
  b、方法锁定:
  public synchronised void XXX(...){......}
  6、线程死锁:是一种少见的、而且难于调试的错误,在两个线程对象对两个同步对象具有循环依赖时,就会出现死锁现象。
  五、网络
  1、IP是英文Internet Protocol(网络之间互连的协议)的缩写,中文简称为“网协”,也就是为计算机网络相互连接进行通信而设计的协议。(网络层)
  2、TCP是面向连接的通信协议,TCP提供两台计算机之间的可靠无差错的数据传输。(传输层)
  3、UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。(传输层)
  4、Socket是网络驱动层提供给应用程序编程的接口和一种机制。Socket在应用程序中创建,通过绑定机制与驱动程序建立关系,告诉自己所对应的IP和Port。此后,应用程序送给Socket的数据,由Socket交给驱动程序向网络上发送出去。计算机从网络上收到与该Socket绑定的IP+Port相关的数据后,由驱动程序交给Socket,应用程序便可从该Socket中提取接收到的数据。网络就是这样通过Socket进行数据的发送与接收。
  5、Java分别为UDP和TCP两种通讯协议提供了相应的编程类,这些类存放在java.net包中,与UDP对应的是DatagramSocket,与TCP对应的是ServerSocket(用于服务器端)和Socket(用于客户端)。
  6、TCP―Socket模型:
  7、UDP―Socket编程方法:
  a、通过DatagramPacket类对象来包装数据,包括IP、Port、数据。
  b、通过DatagramSocket类对象来发送DatagramPacket类对象,
  DatagramSocket.send(DatagramPacket p);
  c、通过DatagramSocket类对象来接收DatagramPacket类对象,
  DatagramSocket.receive(DatagramPacket p);
  d、根据需要对DatagramPacket类对象进行数据处理。
  专题[/b]
  [b]一、
日期处理
  1、日期的格式化(SimpleDateFormat);
  a、生成一个SimpleDateFormat类对象,并规定格式化格式。例如:
  SimpleDateFormat sdf = new SimpleDateFormate("yyyy年MM月dd日");
  b、调用SimpleDateFormat类对象format(...)方法进行格式化。例如:
  Date date = new Date();
  String dateFormat = sdf.format(date);
  2、分别获取时间的年、月、日、时、分、秒的方法。例如:(获取年的方法)
  Date date = new Date();
  Calender.setTime(date);
  Calender calender = Calender.getInstance();
  int year = calender.get(Calender.YEAR);
  3、将字符串时间转换时间类对象。例如:
  String s = "1989-09-10 04:54:20";
  DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  try {
  Date d = df.parse(s);
  System.out.println(d);
  } catch (ParseException e) {
  e.printStackTrace();
  }
  注意:字符串中的时间格式与SimpleDateFormat类对象中的格式要相一致,才可转换。否则,抛出异常(java.text.ParseException)。
  4、解决时间问题主要用到的类:
  [/b]
  [b]二、
正则表达式
  1、正则表达式说直白的是处理字符串的利器(进行字符串匹配用的)。
  2、关于正则表达式在Java中主要用到了java.lang.String,java.util.regex.Pattern和java.util.regex.Matcher这三个类。其写法主要有如下两种:
  a、String string = "sssss";
  string.matches(".*");//此字符串是否与".*"形式的正则表达式相匹配,如果            匹配返回true;反之亦然。
  b、Pattern pattern = Pattern.compile(".*");//产生一个以".*"正则表达式为模型的       模型类
  Matcher matcher = pattern.matcher("sssss");//产生一个匹配类
  matcher.matches();//进行匹配
  注意:a方法写法相比较b更方便,而b相比较a提供了更多的字符串匹配方法。
  3、正则表达式常用字符意义:
  [b][/b]
分享到:
评论

相关推荐

    Altek LEO 强制刷机包 v1.04 Date: 2011-9-30 第二分卷

    共两个分卷 软体版本:1.29300 基频版本:V02.1043 2011-Aug-05 13:50:24 感谢华晶群(184981468)的隐者友情提供

    Altek LEO 强制刷机包 v1.04 Date: 2011-9-30 第一分卷

    共两个分卷 软体版本:1.29300 基频版本:V02.1043 2011-Aug-05 13:50:24 感谢华晶群(184981468)的隐者友情提供

    ISO IEC 7816(1-13, 15)

    ISO/IEC 7816-13:2007 Identification cards — Integrated circuit cards — Part 13: Commands for application management in a multi-application environment". Iso.org. 2007-03-09. Retrieved 2011-11-12. ...

    jsvm9-19-13

    JSVM 源代码和用户手册,JSVM9-19-13 更新时间2011-3-29 这个代码不全,有部分文件没有添加。

    JSVM9-19-13

    jsvm9-19-13 更新时间为2011-3-29 JSVM全部数据,包含用户手册。 本人测试过vs2010可以编译通过。可能有部分警告。

    grub4dos-V0.4.6a-2017-02-04更新

    2016-04-13(yaya) 支持动画菜单 setmenu --graphic-entry=类型=菜单行数=菜单列数=图形宽(像素)=图形高(像素)=菜单行间距(像素) 菜单项0的路径文件名 类型: 位0:高亮指定颜色 位1:高亮颜色翻转 位2:高亮...

    xChariot使用手册V0.4-2011-01-28

    一、IxChariot软件的介绍 1 1、软件功能 1 2、软件内容 1 二、IxChariot软件的使用 5 1、初始界面 5 2、软件使用说明 9 2.1测试界面介绍 9 2.2应用实例 13 3、测试脚本分析 19 4、测试结果分析 26

    HTML+JS年会宴会抽奖系统 v3.0

    2011-09-13 奖项框除了可以填写样式名还可以直接填写样式代码,程序可以自动识别 2011-09-13 增加了手动和自动整理列表功能 ----------------------------------------------- V2.0.1 2011-12-09 bug处理:列表获取...

    深入理解Android:卷I--详细书签版

    上架时间:2011-9-13 出版日期:2011 年9月 开本:16开 页码:488 版次:1-1 编辑推荐  结合实际应用开发需求,以情景分析的方式有针对性地对Android的源代码进行了十分详尽的剖析,深刻揭示Android系统的工作原理...

    jlink驱动 4.34d

    jlink 驱动 4.34d 2011-9-13 官方版本

    GeodesyTools(更新日期2011-8-16)

    9. 点击"转换"按钮, 即可在转换后的坐标中看到空间直角坐标 X=-2727977.954, Y=4835593.792, Z= 3129212.957. 5. 联系地址 如果你有任何问题或建议,请立即与我们联系。 联系人 : zzh_my@163.com 主页 : ...

    信号与系统第四章-连续时间傅立叶变换.ppt

    信号与系统第四章-连续时间傅立叶变换.ppt

    XueTr 0.39 2011-3-6更新

    9.注册表编辑 10.进程iat、eat、inline hook、patches检测和恢复 11.文件系统查看,支持基本的文件操作 12.查看(编辑)IE插件、SPI、启动项、服务、Host文件、映像劫持、文件关联、系统防火墙规则、IME 13.Object...

    GeodesyTools(2011-8-25)(坐标转换更新)

    9. 点击"转换"按钮, 即可在转换后的坐标中看到空间直角坐标 X=-2727977.954, Y=4835593.792, Z= 3129212.957. 5. 联系地址 如果你有任何问题或建议,请立即与我们联系。 联系人 : zzh_my@163.com 主页 : ...

    IEC 60749-21-2011-第 21 部分:可焊性.rar

    ———第 9 部分:标志面耐久性 ———第 10 部分:机械冲击 ———第 11 部分:快速温度变化 双液槽法; ———第 12 部分:扫频振动; ———第 13 部分:盐雾; ———第 14 部分:引出端强度(引线牢固性); ———第...

    tonyCode抽奖系统(原HTML+JS抽奖系统)V4.0

    2011-09-13 奖项框除了可以填写样式名还可以直接填写样式代码,程序可以自动识别 2011-09-13 增加了手动和自动整理列表功能 V2.0.1----------------------------------------------- 2011-12-09 bug处理:列表获取...

    7lin精仿hao123源码.rar

    2011-9-30 重新整理了分类。  2011-5-8 增加电影分类,自动调用hao123电影数据。修复军事、旅游、酷站链接名。  2011-4-2 增加连续剧分类,自动调用hao123连续剧数据。  2011-4-1 改进天气自动调用...

    weblogic 漏洞统计 CVE

    9.CVE-2014-2480 10.CVE-2014-2481 11.CVE-2014-4256 12.CVE-2014-4242 13.CVE-2014-4253 14.CVE-2014-4267 15.CVE-2014-4255 16.CVE-2014-4254 17.CVE-2014-2479 18.CVE-2014-4210 19.CVE-2014-4241 20.CVE-...

    ISO/IEC 9075(1-4,9-11,13,14):2011

    数据库标准,最校标准。很全,不容易找到免费的。

    JIS C0617-13-2011 電気用図記号-第13部アナログ素子.pdf

    第1部概説 第2部図記号要素,限定図記号及びその他の一般用途 第3部導体及び接続部品 第4部基礎受動部 第5部半導体及び電子管 第6部電気エネルギーの発生及び変換 ...第7部開閉装置,制御装置及び...第13部アナログ素子

Global site tag (gtag.js) - Google Analytics