- 博客(38)
- 资源 (3)
- 收藏
- 关注
原创 java IO流总结
java IO流字节流和字符流InputStream(字节流)和Reader(字符流)是所有输入流的基类,本身不能创建实例来实现,但是是所有输入流的模板它们提供的方法所有的流都可以使用OutPutStream(字节流) 与write (字符流)分别是按字节,与字符操作流中的数据。java IO流执行输出时,不要忘记关闭关闭,关闭输出流除了可以保证流的物理资源被回收之外,可能还可以将
2015-10-31 14:16:27 558
原创 java 集合与泛型
java之集合java集合是一个特别有用的工具类,可以存储数量不等的对象,并可以实现常用的数据结构,如栈, 队列等, 除此还可以保存具有映射关系的关联数组。集合类也被称为容器类,其存在于java.until 包下。java集合大致可以可以分为Set, list , Queue, Map , list代表有序,重复的集合, Set代表无序不可重复的集合。Map :代表具有映射关系的集合,
2015-10-29 10:58:52 538
原创 java之String,StringBuffer,StringBuilder,
java之String,StringBuffer,StringBuilder,字符串是一系列连续的字符序列,java提供了String, 和StringBuffer两个类来封装字符串。并提供一系列方法来操作字符串对象。String类是不可变类,即一旦一个String对象被创建以后,包含这个中的字符序列是不可变的,直至这个对象被销毁。StringBuffer对象则代表一个字符序列可变的字
2015-10-27 17:16:13 348
原创 java中 == 和 equals
如果使用==来判断两个变量是否相等时,如果两个变量都是基本类型(byte, short , int , long , float , double , char , boolean ), 且都是数值类型, 则只要两个变量的值相等,就会返回true, 如果变量是引用类型,只有它们指向同一个对象时== 才会返回true。 == 不可用于比较类型上没有父子关系的对象。 String str3
2015-10-27 15:44:37 397
原创 Android 线程之Message 的使用
Android 线程之Message 的使用Message 为消息对象,就是记录消息信息的类,用来承载传递的信息,并且将消息传递到消息队列中。关于message的使用提供了许多重载的方法,如下: Message msg = Message.obtain(); handler.sendMessage(msg);分析obtain的源码: public st
2015-10-25 11:03:27 444
原创 Android 线程之Handler使用
在Android中,使用Handler来控制UI程序界面的变化,Handler的作用为与其他线程协同工作,接收其他线程的消息,并通过接收到的消息更新主UI线程的内容。在Android中我们将一些耗时的操作放到子线程中执行,但因为子线程涉及到ui更新,而android的主线程是线程不安全的,所以更新UI的操作只能放在子线程中去执行,所以引入一种机制,就是UI线程用来发送名命令/任务给子线程,然后
2015-10-24 18:18:29 536
原创 Android网络编程get方式传递数据给服务器
Get方式向服务器发送数据主要用于数据量小于2kb,并且安全性要求不是很高的情况。在完成一个向服务器发送数据的业务需要如下流程:web服务器端创建一个动态web 工程,并在web.xml 中配置Sverlet。 创建一个Servlet类并重写其doGet()方法代码如下:public class ServerlateGetMethod extends HttpServlet {
2015-10-24 16:00:47 1114
原创 StringBulider之 append的使用
在平时的学习中,我们经常会用到StringBulide 这个类提供的方法append ()实现信息的追加功能, 但是在使用时经常会存在一些误区例如:StringBuilder sb = new StringBuilder("ABCD"); String str = "EFGHIG";sb.append("?"); //在StringBuilder原来位置后面
2015-10-24 14:45:02 1650 1
原创 java网络---实现多线程下载文件
使用多线程下载: 1:可以记录当前下载当前的位置,实现断点下载。多线程下载的时候可以记录上次下载的位置,当再次开始的时候可以帮我们记住上次下载的位置,当再次下载的时候可以从记录的位置开始。 2:下载速度变快。 多线程下载快,使其因为其抢占服务器的资源多,在较短的时间内,抢占CPU资源的线程多了,原来一个线程下载现在多个下载,那么速度肯定快了。实现多线程下载的过程可以
2015-10-23 21:45:22 1435
原创 使用真机访问pc上的Tomcat服务器
使用真机访问pc上的(tomcat)服务器时,在处理手机与pc服务器连接的时候应该进行一些配置,应该打开手机的网络传输功能,(可以百度,百度有一大堆)。这里展示一个简单的例子,在j2ee上建立一个web程序,(放几张图片)然后将其发布到服务器上。然后通过在Android端通过输入简单的信息,输出相对人的 图片public class MainActivity extends Act
2015-10-22 15:12:55 1303
原创 使用httpget方式获取网络上的图片
在使用http的get方法获取网络资源的时候,需要如下步骤:1;因为httpClient(是一个公共接口 )所以首先要实现这个的接口,使用DefaultHttpClient()HttpClient client = newDefaultHttpClient();2:创建一个httpGet对象传入目标网络地址,httpGet get= new httpGet (url);3:然后
2015-10-22 09:18:02 1572
原创 AsyncTask简介及使用
android的类AsyncTask对线程间的通讯进行了包装,提供了简易的编程方式来使后台线程和UI线程进行通讯,后台线程执行异步任务,并把操作结果通知UI线程。AsyncTask定义了三种泛型类型。Params:启动任务执行的参数,比如HTTP请求的URLProgress:后台任务执行的百分比Result:后台执行任务的最终返回结果。AsyncTask 的执行分为四个步骤;
2015-10-20 18:51:42 457
原创 进程的阻塞与唤醒
引起进程阻塞和唤醒的事件:1:向系统申请资源时失败。如一个进程(A)申请打印机但是此时打印机被其他进程(B)正在使用,此时A进程则处于阻塞状态。2:等待某种操作:进程A启动了某I/O设备,如果只有完成了指定的I/o任务后进程A才能执行,则进程A启动了I/O设备后会自动进入阻塞。3:新数据尚未到达:对于相互合作的进程,如果一个进程需要先获得另一个进程的数据后才能对该数据进行处理,只要数据
2015-10-20 12:44:32 18467
原创 OS之 进程的创建与终止
在OS中允许一个进程创创建一个进程,被创建的进程称为子进程,创建它的进程称为父进程,子进程可以继承更多的孙进程,子进程可以继承父进程所有的资源,当子进程撤销时应该归还从父进程哪里得到的所有资源,当撤销父进程的时候应当撤销所有的子进程。创建进程:引起创建进程事件:1:用户登录 2:作业调度 3:提供服务 4:应用请求。进程的创建:在系统中每当创建新进程的请求后,OS便调用进程的创
2015-10-19 15:57:11 2614
原创 操作系统之内核
进程的控制是进程管理中最基本的功能,主要包括创建新进程,终止已经完成的进程,将因发生异常而无法正常运行的的进程至于阻塞状态,负责进程中状态转换的功能。操作系统内核:现代操作系统将系统将OS分为多层,再将OS的不同功能分别设置在不同的层次中,通常将一些与硬件紧密相关的模块(如中断处理程序),各种常用的设备驱动以及运行较高的的模块(时钟管理,进程调度,一些模块所公用的一些基本操作)都安排在紧靠
2015-10-19 15:00:58 741
转载 同步、异步、阻塞和非阻塞是几种基本的sockets
同步、异步、阻塞和非阻塞是几种基本的sockets调用方式,也是在进行网络编程时需要理解和区分的基本概念之一。关于这方面的文章和讨论相当丰富,这里着重讨论其中两个比较容易混淆的两个,即非阻塞与异步的关系。先还是简单所列一下几中调用方式的常见解释:同步:函数没有执行完不返回,线程被挂起;阻塞:没有收完数据函数不返回,线程也被挂起;异步:函数立即返回,通
2015-10-18 22:17:11 716
原创 java网络编程-之Channel与ByteBuffer用法
缓冲区:属性:1:容量:(capacity)容纳数据的量。2:极限(limit):表示缓冲区的当前的终点,不能对超过极限的区域进行读写操作(但是可以修改)。3:位置:(position):表示缓冲区中下一个读写单元的位置,每次读写都会改变。为下一个数据读写准备,是非负数。不应该大于极限。 用于改变三个属性的方式:clear():把极限设为容量,再把位置设
2015-10-18 16:44:03 1902
原创 java网络编程之 UDP的使用
User DatagramSocket Protocol 的简称,是一种无连接的协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径传往目的地,因此能否到达目的地,以及到达目的地时间以及内容的正确性都是不能保证的,每个传输的数据报必须限定在64KB之内。主要使用下面两个类:DatagramPacket:此类表示数据报包DataPramSocket
2015-10-17 21:03:57 576
原创 java线程池的简单使用
线程池是预先创建的一种技术,线程池在还没有任务到来之前,创建一定数量的线程,放入空闲队列中,然后对这些资源进行复用,减少频繁的创建和销毁对象。JDK 1.5 版本以上提供了现成的线程池。java里面线程池的顶级接口是EXecutor(执行器),是一个执行线程的工具线程池的接口是ExecutorService。在具体实现的时候使用Executors newSingleThread
2015-10-17 21:01:56 429
原创 非阻塞式通信详解
用ServerSocket 和Socket编写服务器和客户端程序的时候,其在运行过程中往往是阻塞的。例如SeverSocket中的accept()方法,假如没有客户连接就一直处于阻塞状态。JDK1.4后引入非阻塞式通信机制,服务器程序接收客户连接,客户程序建立与服务器的连接以及服务器程序和客户程序收发数据的操作都可以按照非阻塞的方式进行,服务器只需创建一个线程,就能完成同时与多个客户通信的任务
2015-10-17 09:36:39 2874
原创 java 网络编程之ServerSocket详解
构造ServerSocket :在客户/服务器通信模式中,服务器需要创建创建监听特定端口的ServerSocket。负责接收客户连接请求。如果在构造方法运行过程中 如果无法绑定到指定的端口上,会抛出BindException。有如下原因:1:端口号被占用。2 :在某些OS中,如果没有以超级用户身份运行程序,不允许绑定到0-1023的端口。设定客户连接请求的队列:当服务
2015-10-16 12:19:08 721
原创 多线程的优点及缺点
使用多线程的优点:1:资源利用率更高。例如从磁盘读取文件的时候,大部分的CPU时间是用于等待磁盘去读取数据,在这段时间里,CPU非常空闲,通过改变操作的顺序,就能更好的使用CPU资源2:程序响应更快例如一个人服务器程序是单线程的,此时如果一个请求需要占用大量的时间在这段时间内新的客户端就无法发送请求给服务器端,如果引入多线程则会大大提高效率。从一个单线程的应用到多线程的应用并不
2015-10-16 07:50:56 3543
原创 java Socket 一个服务器与多个客户端进行通信
在实现一个服务器与多个客户端进行通信的时候,此时就需要引入多线程编程,用多个线程同时为多个客户提供服务,这时提高服务器你并发性能最长用的手段,服务器的主线程负责接收客户的连接,每次接收到一个客户连接就会创建一个工作线程,由它负责与客户通信。多线程的服务器代码实现:public class EChoService {public static void main(String[] arg
2015-10-15 17:50:06 3487
原创 java 网络编程之Socket详解
java 网络编程之Socket详解创建Socket:使用Socket的有参构造方法,其都会试图建立与服务器端的连接,如果连接成功,就会返回Socket对象,如果因为某些原因连接失败,就会抛出IOEcpection设定等待时间:客户端的Socket构造方法请求与服务器端连接时,可能要等待一段时间,默认情况下,Socket会一直等下去,直到连接成功,或者出现异常。设定如下:S
2015-10-15 15:42:40 772
原创 java字符流
java 字符流字符输入流Writer 写入字符流的抽象类,子类必须实现的方法仅有write (char [], int, int ), flush ()和close ()。多数子类将重写此方法定义的方法,用来提高效率。对文件操作,使用FileWrite类完成。字符输出流:Writer 使用字符输出流完成写文件操作:public static void write1 (
2015-10-14 20:42:42 410
原创 java IO流之-----字节流的操作
java IO流IO流的概述 IO流:(输入输出流)流是一组顺序的,有起点和终点的字节结合,是对数据传输的的总称和抽象。数据在设备之间的传输称为流。流的本质是数据传输,根据数据传输的特性将流抽象为各种类,方便直观的进行数据操作。分类:处理数据的类型:字节流和字符流流向的不同:输入流和输出流 IO流的关系图
2015-10-13 22:28:28 417
原创 java实现简单的Socket通信
java Socket 编程数据发送的过程:1:产生Socket;2:调用bind的信息,通知给驱动程序3:应用程序将要发送的数据传送给Socket4: 驱动从Socket 取出数据,并通过网卡发送出去数据的接收过程:1:产生Socket;2:调用bind的信息,通知给驱动程序3:驱动程序根据从网卡传送的数据报中的指定目标端口号,将处理后的传所迷惑到相应的Soc
2015-10-13 19:57:02 610
原创 ListView的优化问题
ListView的优化问重复使用convertView在getView方法中输出view对象,检测每一个view对象的地址。System.out.println("position ----->" + view);不停地滑动,每次的值都不一样,这就说明每次滑动都会创建不同的对象,这样也会造成内存溢出的隐患。解决上面的问题需要使用getView方法的convertView来进行优化
2015-10-13 12:45:36 445
原创 ListView中getView()多次调用原因
在使用ListView显示数据的时候,定义一个适配器,然后重写getView()方法,这时通过LOGCAT日志分析会发现getView()方法会被执行多次。通过上网查询资料得出原因在于View在Draw的时候分为两个阶段,measure和layout,在measure阶段得时候,主要是为了计算两个参数,height和width,这是一个递归的过程,DecorView开始依次调用自己元素的mea
2015-10-13 12:40:18 2521
原创 创建ListView时getView()的多次调用
在使用ListView显示数据的时候,定义一个适配器,然后重写getView()方法,这时通过LOGCAT日志分析会发现getView()方法会被执行多次。通过上网查询资料得出原因在于View在Draw的时候分为两个阶段,measure和layout,在measure阶段得时候,主要是为了计算两个参数,height和width,这是一个递归的过程,DecorView开始依次调用自己元素的mea
2015-10-12 20:23:22 638
原创 操作系统之进程的各种状态(挂起,创建等)
操作系统之进程的各种状态 进程的状态:就绪状态:当进程获得除CPU外的所有资源的时候,只要在获得CPU就可以执行(万事俱备只欠CPU)在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称之为就绪队列。执行状态:进程获得CPU,其程序正在执行,在单处理机系统中只有一个进程处于运行状态, 在多处理机系统中则有多个进程处于运行状态阻塞状态:正在执行的进程由于某
2015-10-12 16:02:59 9466
原创 操作系统之--初识进程(进程的特征及组成 )
操作系统之-----初识进程进程的引入:为了能使程序并发执行,并且可以对并发执行的程序加以描述和控制,引入了“进程”的概念。进程的组成:为了使参与并发的每个程序(含数据块)能够独立的运行,在操作系统中必须分配一个专门的 数据结构称为(进程控制块)(PCB)系统用PCB 来描述进程的基本情况和活动过程,进而控制和管理进程这样把有程序段,相关数据段,和PCB三部分称为进程实体,(简
2015-10-12 14:52:47 951
原创 使用BaseAdapter 与ListView结合创建图文实现更灵活的列表
使用BaseAdapter 来创建图文实现更灵活的列表使用BaseAdapter来实现我们自己定义的布局,并且可以对其内部进行操作。使用BaseAdapter实现图文共现的列表步骤如下:在主布局中xml文件中声明一个ListView,承装需要加载的内容:xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android=
2015-10-11 21:30:41 1406
原创 ListView与SimpleAdapter实现图文列表项
ListView实现图文列表:使用SimpleAdapter建立自定义的列表项:simpleAdapter 可以用来实现任何我们自己定义的布局。可以使用其实现任何我们自己定义的布局,但是其不能够对内部进行操作,因为 List> list因为其是通过List ,Map 进项操作的,其内部是封装好的我们只能用其完成数据的填放。实现图文共现需完成如下步骤:1:首先我们必须定义一个Li
2015-10-11 16:29:42 823
原创 ListView的单选和多选模式的使用
ListView的单选和多选模式在使用ListView的时候,我们有时需要使用ListView提供的选择模式,如有时候删除一个列表的多个选项的时候(多选模式),选择一个列表的某一项的时候(单选模式)。android提供了单选和多选模式供我们使用。在使用的时候通过setChoiceMode();来选择单选或多选模listview.setChoiceMode(ListView.CHOICE
2015-10-11 15:19:28 832
原创 ListView,ListActivity的认识及简单使用
listview简单使用ListView可以说是android中,最常见得组件了,几乎所有的程序都会用到,由于手机屏幕有限,因此当我们需要展示大量数据的时候,就可借助ListView,ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到频幕内,同时屏幕上原有的数据会滚动出屏幕。下面就简单介绍ListView的使用:在xml文件中添加ListView组件:ListVie
2015-10-11 12:13:23 1003 1
原创 android数据库的基本简单操作
接着上一次,本次完成android数据库的简单操作添加数据:上一节已经知道调用SQliteOPenHelper的getReadableDatabase()或getWritableDatabase()方法可以用来创建和升级一个数据库,而且这两个方法都会返回一个SQLiteDataBase对象,借助这个对象可以完成对数据库的操作。具体步骤:SqliteDateBase提供了一个
2015-10-10 17:18:52 711
原创 Android数据库简单操作之创建数据库
关于SQlite': Sqlite是一款轻量级关系数据库,运算速度快(比Mysql、PostgreSQ速度都快),占用资源少,只需几百k的内存就足够了,因而特备适合在移动设备上使用,源码完全的开源,Android将SQlite嵌入到了系统使得本地持久化的功能有了一次质的飞跃---------------------------------------------------------
2015-10-09 21:21:20 1513
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人