- 博客(210)
- 资源 (17)
- 收藏
- 关注
原创 XML第十四讲:使用DOM解析XML文档 续
上一讲:使用DOM解析XML文档 内容我们讲解了DOM解析XML的主要内容和流程,把XML文档的内容解析到一个个的Java对象中去供程序使用,利用JAXP,我们只需几行代码就能做到这一点。 JAXP(Java API for XML Parsing):用于XML解析的Java API。这是SUN公司为我们提供的处理XML的接口。1. DOM的基本对象1) Node
2013-03-26 00:44:55 1529
原创 XML第十三讲:使用DOM解析XML文档
上一讲内容我们讲解了 简单工厂模式 这个设计模式就是为了服务于XML解析的,通过前面几讲的内容我们已经学会了如何写XML,如何写DTD,Schema文档来验证XML。从这一讲开始我们就来详细的剖析一下XML解析,XML解析,就是如何通过Java代码去处理XML,给你一个XML,如何提取出你想要的东西出来。1. XML解析的方式:DOM和SAX解析 W3C制定了一套书写XML分
2013-03-26 00:43:32 2290
原创 XML第十二讲:设计模式:简单工厂模式
在讲XML解析的前面,我们来先学习一下简单工厂模式,因为这个模式对后面我们学习的XML解析是有关系的。1. 回顾一下我们之前学过的设计模式:单例设计模式策略模式动态代理模式适配器模式 -- Adapter和Listener观察者模式 [重要]装饰者模式 [重要]2. 简单工厂模式1) 意图 简单工厂模式是类的创建模式,
2013-03-23 15:17:10 1692
原创 XML第十一讲:XML与Schema深度剖析
上一讲我们讲解了Schema与XML的几种常用用法,现在我们来针对前面所学,做一下练习:1. 分析XML实例,写出它的对应的Schema文件,先根据下面的框架写好XML文档,再根据对应的XML文档写Schema文件。 张三 男 20 李四 女
2013-03-23 14:16:48 2272
原创 XML第十讲:XML中Schema深入详解、元素、属性、关系
上一讲我们主要讲了Schema中simpleType等一些基本的属性用法,这一讲我们继续来Schema中的其他内容,同时对之前学习的过程来一个小阶段的总结。1. choise 元素1) 作用:允许唯一的一个元素从一个组中被选择2) 属性:minOccurs/maxOccurs3) 示例:4) 下面我们针对这个元素进行一下简单的Demo。
2013-03-22 19:40:07 3282
原创 Android中的screencast工具
最近在项目中遇到一个问题:Android屏幕出现闪屏,不知道是我设计的UI出现了问题,还是手机LED屏驱动的问题,针对这个状况我用到了Android开发中的一款实时显示当前手机屏幕的工具,它是Android开源的,地址:https://code.google.com/p/androidscreencast/ 这框工具主要是讲底层向顶层实时传输的数据以画面的形式截取出来显示在屏幕上,在Ec
2013-03-21 18:34:36 1471
原创 Android第三方应用集成到Android系统的解决方法
最近项目中需要将开发中的应用继承到Android系统设备中,使得设备在出版本的时候Android系统会自带这个应用。如果这个我们自己开发的应用有用到第三方是用到第三方的SDK库的话,则还必须对这些库(.jar、.so)等进行统一的管理,操作步骤如下:1. 将开发的第三方应用比如应用名为 VTest,项目结构如下图所示:将项目移到Android系统源码:workspace_A
2013-03-21 16:44:55 3048
原创 XML第九讲:SimpleContent与Attribute详解
上一讲我们讲解了关于SimpleType元素的一些内容,这一讲我们继续来讲解一下相关内容,以及后续SimpleContent、Attribute等元素的相关内容。1. SimpleType元素 -----> 子元素为:1) 子元素为: 从一个特定数据类型的集合中选择定义一个简单类型元素2) 示例xs:list itemType="xs:date“/>
2013-03-20 22:50:51 2594 1
原创 XML第八讲:XML中SimpleType、complexType深入分析
在上一讲XML内容中,我们讲解了Schema的基本使用方法,这一讲我们继续上一讲内容来讲解一下XML中Schema的其他用法1. 在上一讲程序中有sequence的用法,讲解一下 helloworld[表示]:上面的XML文档中cat和dog这组元素有且只能出现一次。注意sequence中的元素
2013-03-19 21:34:24 3994
原创 XML第七讲:Schema详解
前面几讲我们学习了DTD的内容,这一讲我们来开始学习一下Schema。如果将DTD比作Java中的数组的话,那么Shema就相当于Java中的集合。所以Schema是一种更加强大的约束XML元素和属性的工具。Schema(模式):其作用与dtd一样,也是用于验证XML文档的有效性,只不过它提供了比dtd更强大的功能和更细粒度的数据类型,另外Schema还可以自定义数据类型。此外,Sch
2013-03-15 23:37:37 2443 1
原创 XML第六讲:XML命名空间
上一讲我们讲解了XML中DTD的实现方式,现在我们来讲解一下XML的其他相关知识,XML的命名空间、schema详解1. 命名空间(Namespace)命名空间跟Java里面的package里面非常类似2. 命名冲突XML的元素名是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,就会发生命名冲突 左边的tab
2013-03-14 18:26:56 1607 2
原创 XML第五讲:使用DTD验证XML有效性深入剖析
上一讲我们讲解了DTD中属性的一些相关用法,这一讲我们就行来讲解一下属性的另外一些用法1. 定义实体定义实体---内部实体定义实体---外部实体 (用的非常少)注意是SYSTEM是大写的。用外部xml的网址来引用,如果不写system就直接用网址本身来代替了。它与内部实体之间的区别如下所示:2. 实体类型
2013-03-14 18:19:43 1992
原创 XML第四讲:DTD元素、属性深度详解
上一讲我们讲解了XML中DTD的一些基本内容,现在我们继续上一讲的内容。1. 元素的定义_1 在其中ANY属性用的非常少,因为如果写上ANY,那DTD就没有起到约束的作用了。2. 元素的定义_23. 元素的定义_34. 元素的定义_4第二个写法是错误的,因为PCDATA不允许嵌套子元素。5. 元素的定
2013-03-12 22:28:39 2165
原创 点击Android主菜单应用,直接进入Dialog对话框
在Android系统中,通常我们打开打开一个对话框,都是在进入应用后,点击某一个按钮或者列表项进入Dialog对话框的,现在我们来写一个直接从点击应用后进入Dialog对话框。 设计思路跟我们点击一个按钮来打开对话框类似,只不过在其中我们屏蔽掉这一段的交互代码。点击应用后,创建Activity,执行onCreate()方法,然后在onCreate()方面内直接创建Dialog对话框就可以
2013-03-11 17:32:43 1800
原创 XML第三讲:XMLSpy详解、有效的XML文档解析
1. 文档类型定义和命名空间1) 文档类型定义 通过DTD来创建针对XML的规则。这种的XML文档就是有效的XML文档。 有效的(valid)XML 文档。首先XML文档是个格式正规的XML文档,然后又需要满足DTD的要求,这样的XML文档称为有效的XML文档。2) DTD声明3) 元素声明4) 属性声明5) 实体声明6) 命名空间2.
2013-03-10 16:21:03 3354
原创 XML第二讲:格式正规的XML文档、XML文档的元素、属性、实体深度详解
1. 对比XML与HTML下图所示:从图中可以很好的判断出XML的优越性,XML更能显示出清晰的数据结构信息2. XML与 HTML的区别1) 元标记:表示从标记上面就可以描述内容本身是什么,比如:电话>0592-2177777电话> 从电话这个标记就可以知道里面是电话号码的内容形式。2)内容描述与现实方式相分离。3. XML的优点
2013-03-09 15:30:09 3152
原创 XML第一讲:XML概述、编写XML文档
XML: eXtensible Markup Language (可扩展的标记语言) XML是一个比较重要的内容,不管是对网络数据传输,还是Web开发,都是非常重要的,它是数据交换的需要,电子商务的基础,在局域网聊天的项目中,我们之前是使用字符流进行传输,这种情况不是不可以,而是不符合规范,在实际中是要用xml来进行数据的传输。这部分内容会在以后的课程中讲到。1. XML知识体
2013-03-07 23:24:32 1836
原创 JavaSE第一百一十一讲:基于UDP的网络通信详解
1. 使用无连接的数据包(UDP)进行通信1)什么是Datagram? 数据报是网上传输的独立数据包 ,数据报是否能正确地到达目的地,到达的时间,顺序,内容的正确性均没有保障。2)java中使用Datagram与DatagramPacket类3)DatagramSocket类利用UDP协议来实现客户与服务器的Socket.4)send():发送数据报
2013-03-06 00:13:03 1269
原创 JavaSE第一百一十讲:使用线程实现服务器端与客户端的双向通信
在上一讲中我们讲到了服务器端与客户端的双向通信的例子,显然这种双向通信不是非常好,因为服务端与客户端建立连接之后,服务端一定要等待客户端的输入然后自己再返回一个输出,这在实际的开发过程显然是没有任何意义的,因为客户端要进行与服务端的双向通信,那么服务器端与客户端谁先发送消息,谁后发送消息,这写都是无法预料的,而且服务也不一定是先发送消息之后还要等待客户端回消息,有可能服务端发送消息之后还要继续发送
2013-03-05 11:15:15 1880
原创 JavaSE第一百零九讲:TCP连接建立的一般过程与代码详解
上一讲内容中我们讲了使用socket建立连接的一些分析以及流程。这一讲我们继续剖析上一讲以下的内容,同时用代码实现这种连接。1. 使用ServerSocket和Socket实现服务器端和客户端的 Socket通信,流程1) 建立Socket连接2) 获得输入/输出流3)读/写数据4) 关闭输入/输出流5) 关闭Socket程序Demo如下,在网络编程的过程中,有
2013-01-31 11:26:51 1260
原创 JavaSE第一百零八讲:基于TCP协议的网络编程详解
还记得我们在以前学习过的第一种设计模式:单例模式吗?如果不知道单例模式的请参考这一讲内容:JavaSE第二十五讲:单例模式详解 在我们学习单例模式的时候有讲过单例模式有两种实现方式,其中有一种模式在多线程环境中是有可能出现错误的,现在我们就来讲解一下在多线程环境中为什么会出现错误。第一种方式:public class Singleton { private static
2013-01-31 00:23:20 1173
原创 JavaSE第一百零七讲:使用Java网络API访问远程服务器
上一讲内容中,我们大概介绍了网络中的基本知识,其中的TCP和UDP是比较重要的内容。在这一讲中我们重要讲解使用Java网络API访问远程服务器。1. UDP UDP是User Datagram Protocol的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性
2013-01-30 22:27:01 2309
原创 JavaSE第一百零六讲:Java网络编程简介
学习了之前的类集框架,I/O流,多线程等知识,现在我们来学一下Java中的网络编程。1.课程目标1) 理解Java 网络系统2)熟练使用java.net包中的相关类与接口进行网络编程3) 掌握如何使用Java在一台或多台计算机之间进行基于TCP/IP协议的网络通讯4) 为今后J2EE的学习做好准备2.网络编程基础知识1)网络编程的目的就是指直
2013-01-29 22:34:17 1131
原创 JavaSE第一百零六讲:对象的深克隆与浅克隆 续
上一讲内容我们讲到了对象的深克隆与浅克隆,在上一讲内容中,我们进行深克隆的时候,我们对对象引用的内容进行手动的克隆,这种形式是很不好的,因为这样的话,我们如果一个类里面有很多对象的话,我们还有一个一个的去复制,这是一种很低效的编程习惯,这一讲内容我们就来讲解一下,如何进行更加规范的深复制,那就是利用序列化进行深复制。1) 把对象写到流里的过程是序列化(Serilization)过程,而把对
2013-01-29 19:43:40 818
原创 JavaSE第一百零五讲:对象的深克隆与浅克隆(这里面两个例子有争议)
在前面的几讲解内容中,我们学习了线程的一些知识,现在我们在回过头去继续学习I/O的内容,主要是对象的深克隆和浅克隆,也叫对象的深赋值和浅赋值。这也是比较重要的内容。1. 深拷贝(deep clone) 与 浅拷贝(shallow clone)浅复制(浅克隆):被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,
2013-01-29 16:33:06 1001
原创 JavaSE第一百零四讲:哲学家就餐问题、死锁与使用wait及notify方法实现线程之间的相互通信
上一讲我们讲解了wait()方法和notify()方法的介绍,需要注意的是这两个方法是定义在Object类中,而不是Thread类里面。因此任何的一个对象都有这两个方法,而且这两个方法都是final类型的,不会被重写。1. 现在我们来写一个程序,需求是:利用多线程之间的通信进行对整型变量加1和减1,使得输出为 1,0,1,0,1,0......package com.ahuier.th
2013-01-29 10:48:20 1457
翻译 Java.lang.Object类中应用在多线程的几种方法介绍
Java.lang.Object类是所有类的基类,它里面的方法都是非常重要的,每一个方法我们都要知道它的用法,现在我们主要来介绍它们中应用在多线程的几种方法。1. wait()public final void wait() throws InterruptedException Causes the current thread to wait until another th
2013-01-28 11:05:47 1816
原创 JavaSE第一百零三讲:wait及notify方法全名、深度剖析
上一讲内容中,我们讲到了synchronized的两种使用方法,以及它们之间的区别,其实synchronized的使用功能其实是存在问题的,比如说有一个很复杂的耗时的操作,而且它涉及到一个并发性的问题,所以只能使用synchronized关键字让每次一个线程去访问,此时如果有一个线程进入操作,耗时了很长时间,而其他的线程都在等待,这样就会导致等待队列中的越后面的线程等待时间越长,这对用户来说显然是
2013-01-28 00:26:59 1001
原创 JavaSE第一百零二讲:synchronized关键字常见陷阱深度剖析
上一讲内容中我们讲到了synchronized关键字的用途,这一讲我们详细对这个关键字的用法进行详细讲解1. synchronized关键字如果有static关键字修饰会是什么状况呢?注意加上static之后就是静态方法,它不属于任何对象,它是属于所在类的本身的。针对上一讲的程序ThreadTest4.java 修改这一个程序,在execute2()方法前面加static关键字如下所示:
2013-01-27 21:40:18 1214
原创 JavaSE第一百零一讲:synchronized关键字详解
上一讲内容讲到了线程的生命周期,这一讲我们继续线程的内容,这一讲我们详细讲解多线程的同步,线程一旦运行我们就没法对其进行控制,但是在实际开发过程我们必须要学会如何控制线程,这样线程才会如我所用,所以接下来我们讲解如何实现。1. 为什么要引入同步机制 在多线程环境中,可能会有两个甚至更多的线程试图同时访问一个有限的资源。必须对这种潜在资源冲突进行预防。 解决方法:在线程使用一个资
2013-01-26 23:01:09 986
原创 JavaSE第一百讲:线程同步问题深度剖析
1. 线程的生命周期:一个线程从创建到消亡的过程线程的生命周期可分为四个状态:1) 创建状态2) 可运行状态 [当创建状态的时候调用了start()方法之后进入可运行状态,可运行状态是具备了运行的条件,但是还没真正运行,在等待CPU的调度]3) 不可运行状态 [若可运行状态抢占到CPU的资源后,得到CPU调度则进入运行时状态。若碰到I/O的输
2013-01-26 16:27:01 1230
原创 JavaSE第九十九讲:Thread类源码深度剖析
在上一讲内容中,我们已经学习了实现线程的两种方式,但是到底这两种方式有什么关系?为什么实现线程的两种方式中继承Thread类的那个类必须要重写run()方法?为什么用start()方法来启动线程?基于这些问题我们必须去研究线程Thread类的源代码,这样才能只其然且知其所以然,这一讲我们就来讲解Thread类源代码。1.查看Thread类的源代码可以发现它也实现了Runnable接口pub
2013-01-26 15:18:20 1390
原创 JavaSE第九十八讲:线程的实现方式
继续上一讲内容,这一讲我们主要讲解一下进程的实现方式,注意以下程序运行在双核电脑上。1. 多线程1)一个进程可以包含一个或多个线程2)一个程序实现多个代码同时交替运行就需要产生多个线程3)CPU随机的抽出时间,让我们的程序一会做这件事情,一会做另外一件事情[看是否抢占到CPU的资源]4)同其他大多数编程语言不同,Java内置支持多线程编程(multithreaded pro
2013-01-24 22:04:11 1436 1
原创 JavaSE第九十七讲:线程与进程
多线程在实际开发中用的很多,建议这一部分内容详细学好。多线程(Multi-Thread)学习目标:线程概念线程的生命周期线程的实现线程的优先级多线程的同步线程组1. 在学习线程之前,我们先来学习一下进程:进程:执行中的程序(程序是静态的概念,进程是动态的概念)。进程与线程的区别,进程与线程之间的关系是从属的关系
2013-01-24 00:09:47 1711
原创 JavaSE第九十六讲:对象的序列化与反序列化深入讲解
1. 在上一讲的学习内容中,我们有学到字符的编码方式,现在我们继续写一个程序:获得当前系统所需要的字符集如何获得当前系统的字符集呢?查看JDK Doc中的CharSet类,这个类是位于java.nio.charset包中,这是在新的io包中,具体这块内容留在以后再去讲解。获得当前系统的字符集,查看里面的方法:public static SortedMap availableCh
2013-01-23 22:17:04 1182
原创 JavaSE第九十五讲:Java字符流详解 续
在上一讲中我们讲解了FileReader,这一讲我们开始学习FileWriter,即向文件中写入字符1. FileWriter1)FileWriter 创建一个可以写文件的Writer 类。 FileWriter继承于OutputStreamWriter.它最常用的构造方法如下:FileWriter(String filePath)FileWriter(S
2013-01-23 20:54:28 1150
原创 JavaSE第九十四讲:Java字符流详解
在前面所讲的内容基本上是基于字节流来讲的,而Java的I/O系统的另外一部分内容就是字符流,字符流是基于字节流来实现的,所以在前面字节流基础稳扎的情况下学习这部分内容相对来比较轻松。1. 字符流 尽管字节流提供了处理任何类型输入/输出操作的足够的功能,它们不能直接操作Unicode字符。既然Java的一个主要目的是支持“只写一次,到处运行”的哲学,包括直接的字符输入/输出支持是必要
2013-01-23 00:21:06 1497
原创 JavaSE第九十三讲:装饰模式深入详解
在java中I/O里面所用到的很重要的一个设计模式是装饰模式(Decorator),几乎整个I/O体系都使用了这个模式,所以这一讲我们来学习一下这种模式,注意装饰模式与之前学习的代理模式很类似,但是他们的运用场景是不一样的。1. 装饰模式(Decorator)1) 装饰模式又名包装(Wrapper)模式2)装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。
2013-01-22 22:56:35 978
原创 JavaSE第九十二讲:数据流深入详解
1. DataInputStream 与 DataOutputStream数据流,例如可以将整型写到了文件里面,此时文件就成了一个二进制的文件,显然字节流既可以处理文本文件,也可以处理二进制的的文件。任何文件都可以用它来处理。查看JDK Doc文档DataOutputStream public class DataOutputStream extends FilterOutputS
2013-01-22 10:42:51 1276
原创 JavaSE第九十一讲:节点流、过滤流深入详解
1. 在上一讲中我们介绍过节点流和过滤流,节点流是直接与目标打交道的,比如说文件,键盘等,但是什么是节点流,什么是过滤流呢?通过这个图我们来看一下。下面这个图表示的InputStream的类层次,当然接下去同样会降到OutputStream的情况。图91-1:Java.io包中InputStream的类层次对于InputStream来说有
2013-01-21 23:58:59 1980
消息循环 Looper 及其源码解析
2013-12-04
Android 消息处理机制之一
2013-11-29
Android消息处理机制之Message 二
2013-11-29
Android消息处理机制之Handler 三
2013-11-29
AsyncTask 详解
2013-11-26
Android JSON数据格式解析_服务端
2013-11-25
Android GSON数据格式解析_客户端
2013-11-25
Android JSON数据格式解析_客户端
2013-11-13
JSON数据格式解析_服务端
2013-11-13
Content Providers Demo例子
2013-09-21
Android SQLite 数据库操作
2013-09-05
Android 开发】:UI控件之 RatingBar 评分控件的使用
2013-06-05
【Android 开发】UI控件之滚动条控件的使用
2013-06-05
【Android 开发】:UI控件之 Gallery 画廊控件的使用
2013-06-05
C语言经典算法100例
2013-03-13
[张龙_风中叶]Java中的I/O流2
2013-01-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人