- 浏览: 262740 次
- 性别:
- 来自: 深圳
最新评论
-
Zero2Max:
哈哈,马士兵老师也发现了。
java实现接口的bug -
xly1981:
能像CSRF攻击一样带个图就更棒了
XSS跨站攻击 -
xmong:
df274119386 写道在javascript中看到下面的 ...
CSRF攻击与防御策略 -
df274119386:
在javascript中看到下面的语句 e.value = t ...
CSRF攻击与防御策略 -
xmong:
yzxqml 写道xmong 写道yzxqml 写道tomca ...
Tomcat集群
文章列表
android数据存储之Files
- 博客分类:
- Android
android数据存储之Files
Files存储可以通过Activity提供的openFileOutput()方法将数据保存到指定的文件中,也可以通过openFileInput来读取存储的文件。通常可以用来存放文本,图片,音频等文件,其文件默认存放位置为:/data/data/<包名>/files目录下。
基于上面的例子,新建一个activity实现如下:
package com.file;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileO ...
android数据存储之SharedPreferences
SharedPreferences是android平台上一个轻量级的键值存储,只能存储一些基本类型的数据。如字符串,int类型,boolean类型等。
它的本质是基于xml文件来存储key-value格式的数据。通常用来存储一些简单的配置信息,该xml文件的存储位置在/data/data/<包名>/shared_prefs目录下。
在eclipse中创建一个android工程,实现activity类如下:
package com.sharedPreference;
import android.os.Bundle;
...
Android的数据存储
在Android中提供了6种数据存储方式,他们分别是:
(1) SharedPrefereces:用来存储key-value格式的数据,这里的key只能是字符串value只能是基本的数据类型。这是一种轻量级的键值存储机制。
(2) Files:文件存储,通过FileInputStream和FileOutputStream来对存储文件进行操作。这种文件存储是android应用程序私有的,即一个应用程序不能访问另一个应用程序的文件存储。
(3) Sqlite:Sqlite数据库存储,这是android提供的标准数据库存储,支持sql语句操作。
(4) Content Pr ...
Android和Handler那些事
目录
1 HANDLER的简单使用 1
2 HANDLER的消息传递 4
3 HANDLER的线程异步 8
1 Handler的简单使用
Handler主要用于异步消息的处理:当调用Handler发送消息方法发出一个消息之后,消息进入一个消息队列,发送消息的方法即刻返回,而Handler的消息处理方法则被调用,逐个的从消息队列中将消息取出,然后对消息进行处理,就是将消息发送和消息处理实现异步化。这种机制通常用来处理相对耗时比较长的操作。
下面通过一个简单的android应用程序来了解Handler的使用
创建一个android应用程序,activity ...
从java web到android
- 博客分类:
- Android
几年来一直从事java web的开发,最近组里开始接手一些android的开发项目,闲假之余开始学习android。
通过对android的学习,我越来越觉得java web和android有很多的相似之处,做过java web开发的人都知道到MVC是java web最经典的开发模式,而android也既有这种经典模式结构。
开发一个android应用程序由四个模块构成:Activity,Intent,Service,Content Provider。
Activity:活动类,程序入口,显示视图控件组成的用户接口。可以将其看做MVC中的view层,类似jsp功能。
Intent:转向类, ...
Jedis小使用
目录
1 JEDIS简介 1
2 JEDIS简单使用 1
3 JEDIS的池使用 2
4 JEDIS的分布式 4
1 Jedis简介
Jedis是Redis的java客户端。我们可以在java编程中使用它来编写java代码访问Redis服务。
关于Redis简绍:http://xmong.iteye.com/blog/1840242
要使用Jed ...
目录
1 REDIS 1
1.1 REDIS简介 1
1.2 REDIS特点 1
2 REDIS安装 2
2.1 安装REDIS 2
2.2 配置REDIS 2
2.3 启动REDIS 3
2.4 访问REDIS 4
2.5 关闭REDIS 4
3 REDIS的REPLICATION 5
4 REDIS适用场景 6
1 Redis
1.1 Redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/re ...
wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上。它有以下功能和特点:
(1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功 ...
Java Rmi
目录
1 JAVA RMI 1
1.1 RMI简介 1
2 JAVA RMI的实现 1
2.1 JAVA RMI简单实现 1
1 Java RMI
1.1 RMI简介
Java RMI 指的是远程方法调用 (Remote Method Invocation)。它是一种机制,能够让在某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上 ...
Java内部类
目录
1 JAVA内部类 1
1.1 简介 1
2 JAVA内部类的分类 1
2.1 成员内部类 1
2.2 方法内部类 1
2.3 匿名内部类 1
2.4 静态内部类 1
1 Java内部类
1.1 简介
内部类:内部类顾名思义就是类中类,即在一个类中定义了另一个类,内部 ...
Java多线程实现订单模式:
客户端线程向服务端发起请求后,请求处理需要较长时间处理,这个时候客户端又需要及时得到一个结果响应,这好比我们去蛋糕店订蛋糕,蛋糕往往需要几个小时才能完成,这个时候店员就会给我一个订单,说过几个小时回来取蛋糕。
摸拟场景,客户端线程向服务端发起请求获取数据内容,数据准备需要很长时间,这个时候我们可以及时返回一个虚拟数据结果,服务器端启动新线程准备数据,一段时间后客户端线程在根据虚拟数据结果来获取真实数据内容。
设计如下:
Main:程序main类,负责发起客户端请求。
Server:服务端类,负责接收请求,创建新线程处理请求。
Data:数据接口,提供获取数 ...
Java实现线程池处理请求:
客户端线程发出请求,请求存入请求队列中,服务器端线程池不断从请求列表中拿出请求,执行请求。服务器端用线程池实现多线程处理请求,线程实例在使用的时候已经被创建,直接使用实例,提供程序的执行效率。
设计如下:
Request:请求类,存储请求信息,携带请求的执行方法。
RequestQueue:存储请求队列类,负责保存请求的存储和取出。
ClientThread:客户端线程类,负责发送请求。
ServerThread:服务端线程类,负责获取请求并执行请求。
ServerThreadPool:服务端线程池类,负责初始化线程数,管理线程。
Main:main类。
实现 ...
Java实现多线程异步处理请求:
Java实现多线程异步处理请求,即一个服务请求启动一个新线程处理请求,每个服务请求异步处理。
设计如下:
Main:程序入口,发起多个服务请求。
Server:服务请求类,接受请求,启动线程处理服务请求。
Handle:处理请求类,线程调用处理类的处理方法来处理请求。
实现如下:
Main:main类,发起多个服务请求。
package com.thread.handle;
/**
* main类
* @author Administrator
*
*/
public class Main {
public stati ...
Java实现多线程读写数据
实现需求如下:
当数据没有写线程修改数据时,可以多个读线程读取数据。
当数据有写线程修改数据时,读线程等待,其他写线程也等待,只能有一个写线程修改数据。
当数据没有读线程读数据时,可 ...
Java实现多线程生产者与消费者:
生产者线程负责生产产品,将产品保存到产品队列中,消费者负责从队列中取出产品消费。产品队列有一定的容量,当产品队列中没有产品时,消费者线程必须等待生产者线程生产产品,当产品队列中产品数量达到队列容量时,生产者等待消费者消费产品。
设计如下:
Product:产品类存储产品信息
ProductQueue:产品队列负责存储产品
ProducerThread:生产者线程负责生产产品
ConsumerThread:消费者线程负责消费产品
Main:程序入口
实现如下:
Product:产品类
package com.thread.product;
/**
...