摘要: 思路:要想挂断电话,必然会用到电话服务:getSystemService(TELEPHONY_SERVICE);但查看源码时,发现[java]view plaincopy@OverridepublicObjectgetSystemService(Stringname){returnmBase.getSystemService(name); }继续查找:[java]view plaincopyContextmBase;publicContextWrapper(Contextbase){mBase=base;}接着查看Context的源码publicabstractclassContext{... 阅读全文
posted @ 2013-05-12 19:28 积小流,成江海 阅读(601) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 对于私有数据的访问,除了文件读取方式(当然在创建的时候需要设置足够的权限),还可以通过ContentProvider来进行访问,ContentProvider在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对你应用中的数据进行添删改查。ContentProvider提供了数据访问的统一形式,对于要访问的数据,需要通过一定规则的Uri来配置要访问,并且需要使用ContentResolver来进行操作。如何通过ContentProvider对外共享数据时第一步需... 阅读全文
posted @ 2013-04-19 23:49 积小流,成江海 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 本文主要对ListView列表显示的实现进行了分析,对于列表显示,分为两个部分,第一个部分是整体布局,也就是ListView所在的布局,但ListView中的一个个横条Item布局也需要我们自己去构建,所以需要创建一个Item的布局文件,然后通过配置器来引入,当然也引入一些数据,最后为ListView设置适配器即可。适配器有多种,这里就介绍了几种不同的适配器:ArrayAdapter、SimpleAdapter、CursorAdapter、以及自定义的Adapter。ArrayAdapterArrayAdapter的使用比较简单,只需为ListView设置ArrayAdap... 阅读全文
posted @ 2013-04-19 22:47 积小流,成江海 阅读(301) 评论(0) 推荐(0) 编辑
摘要: SharedPreferences 主要用于软件配置参数的保存,它是一个轻量级的存储类,特别适用于保存软件配置参数,使用该类保存数据,数据存放的文件类型为XML,文件存放路径: /data/data//shared_prefs目录下。 因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。 方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。 另外Activity还提供了另一个.. 阅读全文
posted @ 2013-04-17 20:43 积小流,成江海 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要:在Android中主要提供了四种数据存储与访问的方式,文件、SharedPreference(偏好参数保存)、SOLite数据库、内容提供者(Contentprovider)和网络, 本篇文章先介绍使用文件的方式进行数据的存储和访问,其中重点介绍了它的四种操作模式。使用文件进行存储方式一:通过openFileOutput()直接把数据输出到文件中Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的public class FileActivity extends Activity { @... 阅读全文
posted @ 2013-04-17 20:02 积小流,成江海 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里首先对数据库连接池的优化进行了说明,同时自己编写了一个数据库连接池,在实际开发中,为了获取标准的数据源,我们需要去实现javax.sal.DataSource接口, 在实现过程中对于链接对象的close方法进行了不同的实现,以便在关闭close的时候,将连接对象放回连接池,而不是关闭掉,针对这一问题,提供了3种不同的解决 方案,涉及了3种设计模式:装饰,适配器和代理。一、直接获取连接与使用连接池的比较应用程序直接获取连接示意图缺点: 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需... 阅读全文
posted @ 2013-03-31 22:06 积小流,成江海 阅读(4093) 评论(0) 推荐(0) 编辑
摘要: JDBC简介SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。由一系列的抽象类和接口组成。一般位于JDK的java.sql和javax.sql包中开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动,不同的数据库对于JDBC的实现是不同的)。一、第一个JDBC程序编写一个程序,这个程序从user表中读取数据,并打印在命令行窗口中。一、搭建实验环境:1、在mysql中创建一个库,并创建user表和插入表的数据。2、新建一个Java工程,并导入数据驱动。二、编写程序,在程序中加载数据库驱动DriverManager.re 阅读全文
posted @ 2013-03-31 21:24 积小流,成江海 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 1、什么是JSP? Java Server Pages,它和servlet技术一样,都是SUN公司定义的一种惯用语开发动态web资源的技术2、JSP技术的特点 相比html而言,html只能为用户提供静态数据,而JSP技术云溪在页面中嵌套java代码,为用户提供动态数据 相比servlet而言,servlet很难对数据进行排版,而JSP除了可以用java代码产生动态数据的同时,也很容易对数据进行排版3、为什么JSP技术也是一种动态web资源的开发技术? 因为JSP技术允许在页面中嵌套java代码,以产生动态数据,并且web服务器在执行jsp时,web服务器会传递web开发相关的对... 阅读全文
posted @ 2013-03-24 21:56 积小流,成江海 阅读(793) 评论(0) 推荐(0) 编辑
摘要: EL表达式EL全名为ExpressionLanguage,就是为了替代<%=%>脚本表达式。在j2ee1.4以前默认是不支持el,如果需要需要指定page指令[isELIgnored="true|false"]为false,j2ee4.0后默认支持elEL主要作用:1、获取数据:EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象、获取数据。(某个web域中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)2、执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以 阅读全文
posted @ 2013-03-24 21:33 积小流,成江海 阅读(9168) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 本文总结了最近web学习中遇到的一些中文乱码问题,其实问题的关键就是,文件保存时的编码,以及服务端对提交的数据进行的编码,和浏览器的编码,只要这三个编码问题搞清楚,就能够彻底解决中文乱码问题,当然以后还会遇到其它类型的乱码问题,相信万变不离其宗。一、HttpServletResponse向客户端输出中文数据的乱码问题response向客户端输出数据有两种方式:getOutputStream和getWriter方式一:使用getOutputStream()实验:getOutputStream().write("中国".getBytes("utf-8&qu 阅读全文
posted @ 2013-03-23 23:25 积小流,成江海 阅读(391) 评论(0) 推荐(1) 编辑
摘要: 路径的书写1.绝对路径:看路径是给谁用的,如果是给服务器用的就不用写web应用名,如果是给浏览器用的一定要带上web应用名2.利用类加载器加载资源时,路径是相对于classes文件夹的示例:有一文件:index.jsp在Tomcat服务器的Day05的WEBRoot路径下 public class Demo18Servlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOExcept... 阅读全文
posted @ 2013-03-17 18:21 积小流,成江海 阅读(1295) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要:作为web开发的前奏,这里介绍了什么是HTTP协议,HTTP请求与HTTP响应信息的介绍一、什么是HTTP协议客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。HTTP协议是学习JavaWEB开发的基石,不深入了解HTTP协议,就不能说掌握了WEB开发,更无法管理和维护一些复杂的WEB站点。二、HTTP协议简介HTT 阅读全文
posted @ 2013-03-17 18:11 积小流,成江海 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里介绍了Tomcat服务器的结构,WEB应用的基础知识,一个简单的WEB应用应该由哪些部分构成,以及在Tomcat中如何配置虚拟主机和设置虚拟目录映射 以及它们各自的默认应用的配置方式一、Tomcat目录结构二、WEB应用程序 WEB应用程序指供浏览器访问的程序,通常也简称为web应用,是为了提供某一特定功能而按照一定方式组织起来的web资源的组合。 一个web应用由多个静态web资源和动态web资源组成,如: html、css、js文件 Jsp文件、java程序、支持jar包、 配置文件 一个web应用所使用的web资源我们通常使用目录进... 阅读全文
posted @ 2013-03-15 00:20 积小流,成江海 阅读(634) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里主要介绍了XML的概念,语法,以及DTD(XML文件约束)技术1.xml概述 1.1 xml:xml一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系 1.2 xml保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系来保存数据之间的关系。 1.3 xml的应用场景: 1.3.1 利用xml跨平台的特性,用来在不同的操作系统不同的开发语言之间传输数据。如果说java是一门跨平台的语言,那xml就是跨平台的数据。 1.3.2 利用xml可以保存具有关系的数据的特性,还常常被用来做为配置文件使用。 ... 阅读全文
posted @ 2013-03-11 23:41 积小流,成江海 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 工作VS生活:要融合,不要平衡作者:托马斯·卡莫洛·普雷姆兹克2013年02月26日 11:04为什么每个人都如此关心工作与生活之间的平衡呢? 坊间传言,按照上世纪50年代流行心理学的说法,工作狂都贪婪自私,注定死于心脏病。 事实并不真是这样。就像大卫·奥格威(David Ogilvy)曾经说:“人们死于厌烦、心理冲突和疾病,但他们不会死于辛勤工作”。如果你的工作很有意义,这尤其如此。 对于工作量过大的有害影响,大多数研究都依赖于对超负荷工作量的主观评估。它们没能理清研究对象对工作本身的理念和情感。让你厌烦的事情肯定会显得乏味。如果你讨厌自己的工作,你就会觉得任何 阅读全文
posted @ 2013-02-27 10:12 积小流,成江海 阅读(196) 评论(0) 推荐(0) 编辑
摘要: From Gossip@caterpillarAlgorithm Gossip:洗扑克牌(乱数排列)说明洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1~N)打乱重新排列,只不过洗扑克牌多了一个花色判断的动作而已。解法初学者通常会直接想到,随机产生1~N的乱数并将之存入阵列中,后来产生的乱数存入阵列前必须先检查阵列中是否已有重复的数字,如果有这个数就不存入,再重新产生下一个数,运气不好的话,重复的次数就会很多,程式的执行速度就很慢了,这不是一个好方法。以1~52的乱数排列为例好了,可以将阵列先依序由1到52填入,然后使用一个回圈走访阵列,并随机产生1~52的乱数,将产生的乱数当作索 阅读全文
posted @ 2013-02-26 21:42 积小流,成江海 阅读(464) 评论(0) 推荐(0) 编辑
摘要: From Gossip@caterpillarAlgorithm Gossip:Shaker 排序法 - 改良的气泡排序说明请看看之前介绍过的气泡排序法: for(i = 0; i < MAX-1 && flag == 1; i++) { flag = 0; for(j = 0; j < MAX-i-1; j++) { if(number[j+1] < number[j]) { SWAP(number[j+1], number[j]); flag = 1; } } }事实上这个气泡排序法已经不是单纯的气泡排序了,它使用了旗标与右端左移两个方法来改进排序的效能, 阅读全文
posted @ 2013-02-26 19:50 积小流,成江海 阅读(335) 评论(0) 推荐(0) 编辑
摘要: From Gossip@caterpillarAlgorithm Gossip: Shell 排序法 - 改良的插入排序说明插入排序法由未排序的后半部前端取出一个值,插入已排序前半部的适当位置,概念简单但速度不快。排序要加快的基本原则之一,是让后一次的排序进行时,尽量利用前一次排序后的结果,以加快排序的速度,Shell排序法即是基于此一概念来改良插入排序法。解法Shell排序法最初是D.L Shell于1959所提出,假设要排序的元素有n个,则每次进行插入排序时并不是所有的元素同时进行时,而是取一段间隔。Shell首先将间隔设定为n/2,然后跳跃进行插入排序,再来将间隔n/4,跳跃进行排序动作 阅读全文
posted @ 2013-02-26 19:23 积小流,成江海 阅读(247) 评论(0) 推荐(0) 编辑
摘要: Algorithm Gossip:快速排序法(一)说明:快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不错的。快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边数列进行排序,而影响快速排序法效率的正是轴心的选择。这边所介绍的第一个快速排序法版本,是在多数的教科书上所提及的版本,因为它最容易理解,也最符合轴心分割与左右进行排序的概念,适合对初学者进行讲解。解法这边所介绍的快速演算如下:将最左边的数设定为轴,并记录其值为 s回圈处理:令索 阅读全文
posted @ 2013-02-26 16:58 积小流,成江海 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里介绍了三种排序方式:冒泡排序,选择排序和插入排序。对排序的原理进行了详细分析,并对于各种排序的效率进行了分析和总结,最后通过一个插入排序的容器类对Soilder对象数组按照姓名进行了插入排序来进行总结。一、冒泡排序1.“编程复杂度”很低,很容易写出代码;2.具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的序列,而堆排序、快速排序均不具有稳定性。比较规则:1.比较相邻两个元素2.如果左边的大,则两个元素交换位置3.指针向右移动一个位置,继续比较剩下的元素4.当碰到第一个排定的队员后,就返回到队列的左端重新开始下一趟排序按照该规则,一直比较到队列的... 阅读全文
posted @ 2013-02-16 16:41 积小流,成江海 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 一、什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new StaticCode();2.使用类中的静态成员:StaticCode.num=9; StaticCode.show();3.在命令行中运行:java StaticCodeDemo二、类所有内容加载顺序和内存中的存放位置利用语句进行分析:1.Person p=new Person("zhangsan",20); 该句话所做的事情: 1.在栈内存中,开辟main函数的空间,建立main函数的变量 p。 2.加载类文件:因为new要用到Person.class,所以要先从硬盘中找到Person.cla 阅读全文
posted @ 2013-02-15 10:29 积小流,成江海 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里介绍了java5中的线程锁技术:Lock和Condition,实现线程间的通信,其中的读锁和写锁的使用通过一个缓存系统进行了演示,对于Condition的应用通过 一个阻塞队列进行演示。线程锁技术:Lock&Condition实现线程同步通信 所属包:java.util.concurrent.locks一、Lock 1、Lock比传统线程模型中的synchronized方式更加面向对象,相对于synchronized方法和语句它具有更广泛的锁定操作,此实现允许更灵活的结构, 可以具有差别很大的属性,可以支持多个相关的Condition对象。 2、... 阅读全文
posted @ 2013-02-01 09:42 积小流,成江海 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 在Android中,每个应用都有自己的进程,当需要在不同的进程之间传递对象时,由于java不支持跨进程内存共享,因此要传递对象,需要把对象解析成操作系统能 够理解的数据格式,以达到跨界对象访问的目的。在javaEE中,采用RMI通过序列化传递对象,在Android中,则采用AIDL(AndroidInterfaceDefinitionLanguage: 接口定义语言)方式实现。一、AIDL介绍 AIDL是一种接口定义语言,用于约束两个进程间的通讯规则,供编译器生成代码,实现Android设备上的两个进程间通信(IPC),AIDL的IPC机制和EJB所采用 的CORBA很类似,进.. 阅读全文
posted @ 2013-01-31 15:06 积小流,成江海 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 本地服务:访问者跟服务在同一个进程内。远程服务:访问者跟服务不在同一个进程内,因为通过startService()和stopService()启动关闭服务, 适用于服务和访问者没有交互的情况。如果服务和访问者之间需要方法调用或者传递参数,则需要使用bindService()和unbindService()方法启动关闭服务。 这里就通过一个简单的查询示例来演示相互通信的本地服务执行过程 采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法,这个时候访问者和服务绑定在一起。 如果访问... 阅读全文
posted @ 2013-01-31 11:37 积小流,成江海 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要:这里介绍了一种XML文件的另一种解析方式,在Android中已经集成,应用比较广泛,同时我们可以使用Pull解析器对对象进行序列化,写入到Xml文件中。一、Pull解析器方式的介绍 除了可以使用SAX或DOM解析XML文件之外,还可以使用Android内置的Pull解析器解析XML文件。Pull解析器是一个开源的java项目,既可以用于Android, 也可以用于JavaEE。如果用在javaEE中,需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件。Android系统本身使 用到的各种xml文件,其内部也是采用Pull解析器进. 阅读全文
posted @ 2013-01-22 10:30 积小流,成江海 阅读(755) 评论(0) 推荐(1) 编辑
摘要: 笔记摘要: 主要介绍多线程的下载的实现原理,每段线程从不同位置进行文件的下载,其中对于文件的分段下载,主要使用到了随机读写文件类:RandomAccessFile, 这里通过示例进行演示一、多线程下载原理1、得到网络文件的长度,然后在本地生成一个与它长度相等的本地文件,2、需要计算每天线程的数据下载量,公式如下: 假设使用N条线程下载,文件的长度为length, intblock=文件长度%N==0?文件长度/N:文件长度/N+13、开启多天线程分别从网络文件的不同位置下载数据,并从本地相同位置写入数据,所以要计算出每条线程从网络文件的什么位置开始下载数据,到什么位置结束。 起始... 阅读全文
posted @ 2013-01-21 19:57 积小流,成江海 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里介绍了向web服务器提交XML实体数据,通过将请求参数和请求方法按照某种协议封装在XML文件中,提交到WebServices(网络上提供的API,天气查询,股票行情 等服务),webServices通过调用相应的方法,返回某种协议的结果,最终通过客户端对该种协议的数据进行解析,最终将结果显示给用户。这里通过号码归属地查询来演 示该提交方式的用处。效果图一、开发前奏WebServices:看作是发布在网络上的API思路: 客户端通过xml文件将需要调用的方法和参数封装发送给webService,webSerevice根据信息通过反射调用相应的方法,然后将结果封装成xml文... 阅读全文
posted @ 2013-01-21 16:17 积小流,成江海 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里主要讲IO流和Web技术相结合,由客户端提交获取图片服务请求,服务端返回图片。 同样的我们可以获取到各种格式的数据(文本、网页、XML、Json),只要在读取工具类中对数据进行相应的转换,返回指定格式的数据即可 需要注意的是:测试时访问路径不能使用localhost,必须使用IP地址,因为Android也是操作系统,所以它会认为是访问了自己系统的本地,就无法访问到资源 一、设计步骤1、页面设计注意:获得网络访问许可2、创建一个web服务在WebContent中存入一幅图片:a.jpg3、编写图片服务类一个工具类提供读取数据的方法二、访问效果页面三、代码实现 ... 阅读全文
posted @ 2013-01-21 08:48 积小流,成江海 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 第一题: 现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印 这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。原始代码:public class Test { public static void main(String[] args){ System.out.println("begin:"+(System.currentTimeMillis()/1000)); /*模拟处理16行日志,下面的代码产生了16个日志对象,当前代码需要运行16秒才... 阅读全文
posted @ 2012-12-11 21:21 积小流,成江海 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 笔记摘要: 这里主要介绍了java5中线程锁技术以外的其他同步工具,首先介绍semaphore:一个计数信号量。用于控制同时访问资源的线程个数, CyclicBarrier同步辅助类:从字面意思看是路障,这里用于线程之间的相互等待,到达某点后,继续向下执行,CountDownLatch同步辅 助类:在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。犹如倒计时计数器,然后是Exchangeer:实现两个 对象之间数据交换,可阻塞队列:ArrayBlockingQueue,通过阻塞队列间的通信来演示其作用,最后介绍了几个同步集合。一... 阅读全文
posted @ 2012-12-11 20:42 积小流,成江海 阅读(228) 评论(0) 推荐(0) 编辑