XML   XML文件的编写

1) w3C  

2)一个完整的xml文件包含三部分:

   java:右击 xml 文件目录—new—XML—xml file

   xml文档的声明

<?xml version="1.0" encoding="UTF-8"?>
     <!--注释信息 -->

   xml文档的注释 

   xml文档元素(根元素,子元素)

3)根元素只有一个;xml中元素名区分大小写

<元素名></元素名>
    
    <LinearLayout
       layout_width = 
       layout_width = 
       background = >
       <Button 
       />
       <Button>
       </Button>
      
    </LinearLayout>

 XML文件的解析

 DOM:

String  bookStr = "<book>" +


               +"<id>101</id><name>时间</name>"+


                  +"</book>"


  <?xml version="1.0" encoding="UTF-8?>"
  
 <book>
   <id>101</id>
   <name>时间都去哪了</name>
 </book>

 解析步骤:

 1.构建解析器对象 DocumentBuilder

    DocumentBuilderFactory factory = 

         DocumentBuilderFactory.newInstance();

    DocumentBuilder  builder = 

         factory.newDoucementBuilder();

 2.解析文件

    Document d = builder.parse("d:\\book.xml");

    builder.parse("src/student.xml");

 3.处理数据

    根元素

    Element root = d.getDoucemtnElement();

    syso(root.getNodeName());

    子元素

    NodeList root.getChildNode();

    属性

    属性值

 PULL

 SAX

 DOM4J

-------------------------------------------------

DOM

优点:

 1、数量小结构清晰的xml文件

 2、标准,简单,重复读取及修改xml文件时相对方便

缺点:

 对于数量较大的xml文件影响系统运行性能;

PULL

特点:

1) pull是一种基本事件流的解析方案;

2)将xml中的每个元素看成一个对应的事件,然后通过

   事件的发生,提取我们需要的数据;

3)pull解析是一种开源的解析方案,

   解析速度快,

   占用内存低,

   不适用于修改的动作。

4)Android中内置了pull这种解析方案

   

2、解析步骤:

step1. 创建解析器对象  XMLPullParser

step2. 解析 xml 文件

step3. 处理数据

 

 String  str = "";

 Reader|Writer  字符流

 FileReader(str)

 BufferedReader(new FileInputStream );

 3、XmlPullParser 涉及的事件:

    START_DOCUMENT: 0,文档开头

    END_DOCUMENT:  1, 文档结尾

    START_TAG:  2,标签开头

    END_TAG:  3,标签结尾

 作业:

 有如下 students.xml 文件,请

 新建Android项目,完成对 student.xml 文件的解析

 然后在 LogCat 界面打印出解析出来的数据。

<?xml version="1.0" encoding="UTF-8"?>
  <student>
   <stuNo>1010102</stuNo>
   <stuName>辉哥</stuName>
   <stuSex>男</stuSex>
  </student>

 1、jdk 1.5新特性

 2、拆装箱

 3、反射

-----------------------------------------------

反射

 什么是反射?

     反射是java运行时的一种自省机制,此机制运行

     时需要java.lang包下的一些API支持;

     System.

 反射的应用场景?

 1)通过配置文件中的描述构建(获取)类的对象;

 2)借助于反射获取(访问)类中不可直接访问的属性和方法

   (即一些私有的属性和方法);

 3)通过反射,实现AF(application framework)编程中通     过模块的编写;

  映射

  字节码对象

  Class 

  类是对象吗?类类型的对象  Class

  成员变量是对象吗?

  成员属性是对象吗?

  构造函数是对象吗?

 

 反射

 类的基本信息

 获取类的基本信息,首先获取类的字节码对象 

 

1、如何获取字节码对象:

   i.  类名.class();

   ii. 对象名.getClass();

   iii.Class.forName("包名.类名");

       getName();

 

 

 练习:

  获取 String 类的基本信息

  类名

  包名.类名

  方法

  属性

  

  练习:Math类

  包名.类名

  类名

  所有方法

  所有自己声明的方法

  所有属性

  所有自己声明的属性

  方法反射

  属性反射

  数组反射

  构造方法反射

------------------------------------------------

 jdk1.5 

 1,增强for循环的结构,forecah结构

    数组 ,集合 

  

   

 2,Swtich 分支语句

   byte,short,int,char 枚举,String(jdk1.7)

 3,静态导入

 4,可变参数

 java 基本语法

   jdk 工具

     javac:.class 字节码文件

     java: 将字节解释编译成一个可执行文件

   eclipse: 集成开发工具

   

   java变量,常量,表达式,运算符

   java八大数据类型  转换   数据溢出

   java 中的 进制  二进制  八进制  十六进制

   java中数组  一维数组 定义,初始化,赋值,访问,     遍历,排序(冒泡,顺序,插入,查找等) 二维数组

   java 程序结构:

     顺序结构:

     分支结构:

         if语句

         switch语句

         switch(byte,short,int,char,枚举,String){

           case 0: break;

           case 

           default: 所有的case语句都不执行

         }

     循环结构:

        循环适合场景 

        for()  

        while

        do...while

        

        break; continue;return 

 java面向对象

    Object 类

    类,对象,属性,方法

    this,super

    面向三大特征:继承,封装,多态

    父类引用指向子类

    A  a =  new  B(); //B 继承A

    Object o = new A();

    抽象类,接口 

    is a  has a 

 java API

   基础API

       Sytem   Object   String  Date  Calendar

   异常API

       throws 异常

       try..catch

       自定义异常

       英文信息描述异常

   IO API

     字节流 InputStream|OutPutStream

     FileInputStream 文件流

     DataInputStream 数据流

     BufferedInputStream 缓冲区流

     PipedInputStream 管道流

      字节

      一次读一个字节

int b = in.read();  //低8位 
       byte[] bytes = new byte[in.avaible()];
       int b1;
       while((b1=in.read(bytes,0,bytes.length))!=-1){
       }

     字符流

     Reader | Writer

     FileReader(File|String) 

     BufferedReader(InputStream)

     InputStreamReader(InputStream in)

     StringReader(String str) 专门处理字符串

     RandomAccessFile 类 随机读取文件内容

     getFilePointer();

     seek();

   集合API

     Collection 集合

       List:重复元素

         ArrayList:

         LinkedList:首尾操作方法

         Vector:

         面试题:ArrayList和Vector

       Set:不允许重复元素

         HashSet

           hashCode() equals()

         TreeSet

           顺序,comparable comparator

     Map集合

         HashMap,无序,计数

         TreeMap,key排序

     Collections工具类

         sort() reverse() copy().....

   XML API

]    xml 编写

     xml 解析

   反射

 Android 基础

  四大组件 

  五大布局:

   RelativeLayout: 重点

   Linearlayout:   ortation属性

   FrameLayout:  左上角,覆盖

   AbsoluteLayout: android:layout_x 

   TableLayout: TableRow

  常用控件:

   TexTView

   EditText

   Button

   RadioGroup  RadioButton

   CheckBox

   ImageView

   ImageButton

   ListView

   GridView

   Spinner

   ProgressBar

   Gallery

 常用控件的属性

anroid:id
   android:layout_width= " "
     wrap_content
     fill_parent
     match_parent
     40dp
 
DOM 


  String  str = 
     "<books>
      <bookA id="" name=""></bookA>
      <bookB id="" name=""></bookB>
      </books>"

 使用dom解析解析给定的字符串

 1,构建DocumentBuilder对象

 2,解析文件 

    parse(str); 

 3,处理文件

      Map

      List

      list<Map<String,String>>.....