- 博客(31)
- 资源 (14)
- 收藏
- 关注
原创 Android开发之来电电话挂断实现
在Android1.5版本之前,实现挂断电话是非常容易的事,只需要调用TelephonyManager的endCall()方法就可以了,但在1.5版本之后,Google工程师为了手机的安全期间,把endCall的方法隐藏掉了。所以实现挂断电话可以通过反射的方法,执行endCall方法。具体实现如下:TelephonyManager在源码里是这样描述的:Context.getSystemService(Context.TELEPHONY_SERVICE)},我们通过TELEPHONY_SERVICE系统服
2014-11-30 19:04:32 3079 2
原创 Android开发之ListView中Adapter的优化
ListView是Android开发最常用的控件,适配器adapter是将要显示的数据映射到View中并添加到ListView中显示在实现ListView时,我们需要定义适配器如BaseAdapter、ArrayAdapter、CursorAdapter、SimpleAdapter等,并且重写其一下四个方法: 所以针对上述,可以对ListView使用的Adapter做两方面的优化: 1、 减少内存中View对象的创建次数个数。 2、减小view中对应控件查找的次数。
2014-11-26 23:02:26 1596
原创 Java中String、StringBuffer和StringBuilder的区别和堆栈内存分配
Java中的String类是一个很常用,但最不注意其细节的类,因此大多数面试会那这个类做文章。比如String str = new String("hello");开辟了几个内存空间,String和StringBuffer的区别等等。下面就做一个我的理解:String是一个被final修饰的类,它是不能被继承的。StringBuffer也是被final修饰的类。一、JVM内存划分 在java中主要存在4块内存,这些内存空间分别为:栈内存空间、堆内存空间、全局数据区、全局代码区也可以这么说:所
2014-11-25 17:08:36 9933 8
原创 Java网络编程之TCP、UDP
Java网络编程提供了两种协议:TCP(传输控制协议)和UDP(数据报协议)。TCP(Transmission Control Protocol)是一种可靠的传输协议,传输时会采用“三次握手”端的方式建立连接,以保证数据的可靠性和安全性;而UDP(User Datagram Protocol)协议是一种不可靠的传输协议,发送的数据不一定能够接受的到,网上的聊天是工具一般采用的此协议。下面将详细的接受TCP和UDP的使用以及相应的编码。一、TCP网络通信二、UDP网络通信
2014-11-25 15:23:46 1486
原创 Java网络编程之URL、URLConnection、URLEncoder、URLDecoder
在java的网络编程中让我们获取一个网络地址的志愿
2014-11-24 16:49:47 2058
原创 Java枚举enum使用及相关的操作
在Java1.5之后,引入了枚举新的特性,在之前,java有两种定义新类型的方式:类和接口。但是在特殊情况下,满足不了我们的需求,比如我们定义一个Color类,它只能有Red,Blue,Green三种值,对于其他的值来说都是无效的。为引入枚举之前,我们一般使用其私有化其构造方法,然后在其内部实例化三个常量,然后再取值。这样不仅繁琐,而且带来了更多不安全的问题。package andy.enum
2014-11-24 11:57:49 1462
原创 Java主线程等待所有子线程执行完毕再执行解决办法集
Java主线程等待所有子线程执行完毕在执行,其实在我们的工作中经常的用到,比如说主线程要返回一个响应用户的值,但这个值得赋值过程是由过个子线程来完成的(模拟一个实际开发的情景),所以主线程必须等待子线程执行完毕,再响应用户;否则,响应用户的是一个无意义的值。 那么如何确保所有的子线程执行完毕了。一般的有如下方法: 1 让主线程等待,或着睡眠几分钟。用Thread.sleep()或者TimeUnit.SECONDS.sleep(5); 2 使用Thread的join()等待所有的子线程执行完毕,
2014-11-21 23:53:21 6076 3
原创 Android开发之实现锁屏功能
锁屏需要引入设备超级管理员。在文档Android开发文档的Administration中有详细的说明。Android设备管理系统功能和控制访问。主要有一下几个步骤:1 创建广播接收者,实现DeviceAdminReceiverpackage com.andy.lockscreen;import android.app.admin.DeviceAdminReceiver;/**
2014-11-20 23:48:04 3835
原创 Java对象序列化原理以及Serializable接口
Java对象的序列化就是把一个对象变成二进制的数据流的一中方法,通过对象的序列化可以方便的实现对象的传输和存储。原理是:对象------------->转换----------------->将对象转变为二进制的数据 在对象序列化时,只有其属性被序列化(每个对象都具备相同的方法,但是每个对象的属性不一定相同,也就是说对象保存的只有其属性信息)那么一个类的对象要被序
2014-11-20 16:16:19 3711
原创 java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,下面主要介绍字符流,字符流和字节流的区别以及文件复制拷贝。在程序中一个字符等于两个字节,而一个汉字占俩个字节(一般有限面试会问:一个char能否存下一个汉字,答案当然是能了,一个char和一汉字一样都占两个字节),一般用字节流如果定义为奇数个长度是,那么存储汉字时会有乱码问题,Java提供了Reader和Writer两个专门操作字符流的类。1 Writer 字符输出流
2014-11-19 17:59:14 3429
原创 java IO之字节流和字符流-OutputSteam和InputStream
java中的IO流分为字节流和字符流;每种流又分输入流和输出流。先来说一下输入流和输出流:输入输出是针对程序内存而言,那么输入就是向内存写入数据;输出就是从程序内存写出数据。 字节流直接文件数据。字符流则是通过字节写入到缓存,再通过缓存区操作数据。字节流的父类为InputStream(输入流)和OutputStream(输出流)。
2014-11-19 12:38:10 4721 1
原创 Android开发之获取手机通讯录
获取手机通讯录是Android最常用的小功能,今天自学到了,记下来,主要是通过系统自带的内容提供者提供的数据,我们使用内容接收者获取相应的数据到cursor中,然后获取对应data表中的字段,相关字段代表什么含义,只能自己去查了。下面是手机通讯录列表的代码,仅供参考:package com.andy.phonecontact;import java.util.ArrayList;im
2014-11-18 23:23:24 3940
原创 Java数组去掉重复的方法集
经常用到,有时候不只是简单的基本类型,那种可以用set集合去重,好多时间用到的是我们自定义的类型,下面举个例子(我这儿就那int举例了):方法一、 这种类似与选择排序算法,首先我们取i值,然后将i之后的所有重复的去掉。具体实现如下:import java.util.List;import java.util.concurrent.CopyOnWriteArrayList;/** *
2014-11-18 16:06:16 4031 3
原创 javascript框架echarts插件实现超酷人立方效果图
最近由于项目需求,需要做一个类似人立方效果的网络关系效果,在查询许多文档后,发现百度出echarts开源组件非常的适合,而且加载速度很棒,echarts图形主要是使用html5的新特性的做的,使用到了canvas画板等。下面是我自己实现的一些过程和经验,供大家参考。这里是echarts的网站:http://echarts.baidu.com/doc/example.html里面有详细的使用
2014-11-17 14:45:31 4144
原创 Android开发之自定义UI组件和属性
Android系统虽然自带了很多的组件,但肯定满足我们个性化的需求,所以我们为了开发方便,需要自定义Android的UI组件,以实现我们个性化的需求。自定义组合控件的步骤:1 、自定一个View,需要继承相对布局,线性布局等ViewGroup的子类。ViewGroup是一个其他控件的容器,能够乘放各种组件。2 、实现父类的3个构造方法。一般需要在构造方法里始化初自定义布局文件。
2014-11-16 11:26:37 2232
原创 多线程之操作CopyOnWriteArrayList解决Iterator迭代器产生java.util.ConcurrentModificationException
当我们运行如下代码时:package andy.thread.test;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class CollectionModifyExceptionTest { public static void main(Strin
2014-11-09 21:27:34 4925 1
原创 多线程之阻塞队列ArrayBlockingQueue,BlockingQueue
ArrayBlockingQueue是个有数组支持的有界的阻塞队列。该队列按照先进先出FIFO的原理对元素排序,插入新元素市场队列的尾部,获取新元素是操作队列的开始处。一旦见了建立了缓存区,就不能再增加其容量,试图从已满的队列中方式元素会导致操作阻塞;试图从空的队列中提取元素将导致阻塞。提拱了四种方法,只有put(),take()才会发生阻塞。下面是阻塞队列的例子。packag
2014-11-09 18:05:34 1312
原创 多线程之CountDownLatch工具类
CountDownLatch 是一个通用同步工具,它有很多用途。将计数 1 初始化的 CountDownLatch 用作一个简单的开/关锁存器,或入口:在通过调用countDown() 的线程打开入口前,所有调用 await 的线程都一直在入口处等待。用 N 初始化的 CountDownLatch 可以使一个线程在N 个线程完成某项操作之前一直等待,或者使其在某项操作完成 N 次之前一
2014-11-09 14:45:56 1322
原创 多线程之CyclicBarrier工具类和Exchanger工具类
CyclicBarrier一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。CyclicBarrier 支持一个可选的 Runnable 命令
2014-11-09 14:25:16 809
原创 多线程之实现同步的信号量Semaphore
Semaphore是JDK1.5之后出的一个实现同步的另一个方式。Semaphore可以维护当前访问自身的线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程数。假如你有3个资源,有10个线程要使用该资源,同时只能有3个线程使用,所以其余7线程在等待,只要3个中任意一个释放资源,那么7个线程中的一个就可以使用了。 另外,7个线程等待可以使随机获取机会,也可以是按
2014-11-09 14:03:51 1415
原创 多线程之线程通信条件Condition二
Condition另一种应用。ondition是Locks锁下的另一种线程通信之间唤醒、阻塞的实现。它下面的await,和signal能够实现Object下的wait,notify和notifyAll的全部功能,除此之外改监视器和已绑定到每个条件,可以实现多条件的监听。Condition实质是被绑定到一个锁上,腰围特定的Lock实例获得Condition,即用 newCondition()方法。Condition下的await()相对于Object下的wait(); 阻塞或中断之前状况,让其处于等待状态
2014-11-09 12:41:47 1142
原创 多线程之线程通信条件Condition
Condition是Locks锁下的另一种线程通信之间唤醒、阻塞的实现。它下面的await,和signal能够实现Object下的wait,notify和notifyAll的全部功能,除此之外改监视器和已绑定到每个条件,可以实现多条件的监听。Condition实质是被绑定到一个锁上,腰围特定的Lock实例获得Condition,即用 newCondition()方法。Condition下的aw
2014-11-09 12:03:58 1549 1
原创 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统
简单地缓存系统:当有线程来取数据时,如果该数据存在我的内存中,我就返回数据;如果不存在我的缓存系统中,那么就去查数据库,返回数据的同时保存在我的缓存中。其中涉及到读写问题:当多个线程执行读操作时(都加读锁),如果有数据返回;如果没有数据时,则让第一个读的线程,进行获取数据,然后进行写操作,这时需要第一个线程先释放掉读锁然后加写锁。第一个写完后,在家读锁,其他线程使用时判断,如果存在该数据,在直
2014-11-09 10:02:21 2528 1
原创 多线程之Lock锁和读写锁ReadWriteLock
JDK1.5之后有提供了另一种加锁方式Lock锁。Lock 实现提供了比使用 synchronized 方法和语句可获得的更广泛的锁定操作。此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的Condition 对象。锁是控制多个线程对共享资源进行访问的工具。通常,锁提供了对共享资源的独占访问。一次只能有一个线程获得锁,对共享资源的所有访问都需要首先获得锁。不过,某些锁可能允许对共享资源并发访问,如ReadWriteLock 的读取锁。synchronized 方法或语句的使用提供了对与每
2014-11-08 23:49:21 2662
原创 多线程之同步Synchronized
在java中synchronized是多个线程共享同一段代码的锁。当有多个线程并发执行同一块代码块时,加锁可以让一段时间内只有一个线程在执行,保证了业务的原子操作。例如下面:package andy.thread.traditional.test;/** * @author Zhang,Tianyou * @version 2014年11月8日 下午11:02:53 */
2014-11-08 23:27:32 1135
原创 多线程之线程池Executor应用
JDK1.5之后,提供了自带的线程池,以便我们更好的处理线程并发问题。Executor类给我提供了多个线程池创建的方式: 创建固定的线程池 Executors.newFixedThreadPool(2) 创建可变的缓冲线程池 Executors.newCachedThreadPool() 创建单一的线程池 Executors.newSingleThreadExecuto
2014-11-08 18:39:38 1246
原创 多线程之线程范围内的数据共享ThreadLocal
如果多个线程使用同一个数据,那么如何保证线程范围内的数据共享。我们可以使用一个map来存储当前线程,以及其数据如下:package andy.thread.traditional.test;import java.util.HashMap;import java.util.Map;import java.util.Random;/** * @author Zhang,Tian
2014-11-08 16:43:04 1588
原创 JMX实现远程服务器Tomcat系统监控之二
JMX实现远程服务器端的包括CPU占用率,堆信息,非堆信息,类加载,内存使用情况等统计,第二种实现方式
2014-11-07 16:35:36 2328 1
支付宝支付-APP支付服务端代码下载
2017-01-01
Java微信支付-微信App支付服务端源代码
2016-11-18
Java微信支付-微信企业付款到个人
2016-11-17
分布式session分享tomcat-redis-session-manager-master
2016-01-25
Maven搭建spring_struts2_Hibernate_demo
2015-03-01
springmvc_hibernate_security_demo
2015-02-13
Maven搭建SpringMVC+Hibernate项目源码
2015-02-08
Maven搭建SpringMVC+Mybatis项目源码
2015-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人