自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (1)
  • 收藏
  • 关注

原创 Handler详解

ThreadLocalThreadLocal给currentThread.threadlocals = new ThreadLocalMap(this, value);ThreadLocalMap等价new Entry(this, value)[lenth]数值位置 i = this.threadLocalHashCode & (lenth - 1)this = new ThreadLocal<T>()threadLocalHashCode = atomicInteger.g

2020-06-24 10:12:55 938

原创 Android 点滴——px、dp、dip、sp详解

基本概念:px   :是屏幕的像素点dp   :一个基于density的抽象单位,如果一个160dpi的屏幕,1dp=1pxdip  :等同于dpsp   :同dp相似,但还会根据用户的字体大小偏好来缩放(建议使用sp作为文本的单位,其它用dip)1. 基础知识    mm: millimeters 毫米,长度单位    in: inches 英寸,长度单位

2017-10-19 15:37:51 493

原创 java垃圾回收——工作机制

一.如何确定对象没有被引用    第一种是遍历堆上的对象找引用;    第二种是遍历堆栈或静态存储区的引用找对象    第一种实现是“引用计数法”,第二种实现是“自适应”的垃圾回收技术二.两种实现的机制引用计数法:当有引用连接至对象时,引用计数加1,当引用离开作用域或被置为null时,引用计数减1,这种方法有个缺陷,如果对象之间存在循环引用,可能会出现“对象应该被回收,

2017-09-22 10:35:38 348

原创 Java垃圾回收——三种回收机制

一、分代复制垃圾回收    不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的 Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会比较短

2017-09-22 10:32:03 609

原创 Java垃圾回收——优点和原理

优点:a.不需要考虑内存管理, b.可以有效的防止内存泄漏,有效的利用可使用的内存, c.由于有垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"原理:垃圾回收器是作为一个单独的低级别的线程运行,在不可知的情况下对内存堆中已死亡的或者长期没有使用的对象回收,但是不能实时的对某一对象或者所有对象进行垃圾回收。垃圾回收机制:分代复制垃圾回收、标记垃圾回收

2017-09-22 10:30:52 8467

原创 Java设计模式 —— 适配器模式(Adapter)

ADAPTER—在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好求助于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我)适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实

2015-10-13 10:00:51 647

原创 Java设计模式 —— 单例模式(Singleton)

SINGLETON—俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Singleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。改善全局变量和命名空间的冲突,可以说是一种改良了的全局变量。

2015-10-12 19:51:26 544

原创 Java设计模式 —— 原型模式(Proto Type)

PROTOTYPE—跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。(100块钱一份,你要不要)原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,

2015-10-12 18:01:31 655

原创 Java设计模式 —— 工厂方法模式 (Factory Method)

FACTORY METHOD—请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触

2015-10-12 16:15:59 455

原创 Java设计模式 —— 建造模式 (Builder)

BUILDER—MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖)建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个

2015-10-12 16:03:52 446

原创 Java设计模式 —— 抽象工厂模式 (Abstract Factory)

FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory抽象工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创

2015-10-12 15:50:36 655

原创 Java设计模式 —— 开篇

一、创建型模式1, 抽象工厂模式 (Abstract Factory)2, 建造模式(Builder)3, 工厂方法模式 (Factory Method)4, 原型模式 (ProtoType)5, 单例模式 (Singleton)二、结构型模式6, 适配器模式 (Adapter)7, 桥梁模式 (Bridge)8, 组合模式 (Composite)

2015-10-12 13:33:47 429

原创 ACM —— 1015 Jury Compromise

解题代码:import java.util.Arrays;import java.util.Scanner;public class Main { //dp[j][k]:取j个候选人,使其辩控差为k的所有方案中,辩控和最大的方案的辩控和 private static int[][] dp = new int[21][801]; //记录所选定的候选人的编号 pri

2015-09-24 16:50:38 492

原创 ACM —— 1014 Dividing

解题代码:DFSimport java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); int[] num; int count = 0; while (true) {

2015-09-23 16:00:29 615

原创 ACM —— 1013 Counterfeit Dollar

解题代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); int num = stdin.nextInt(); boolean[] flag; int[

2015-09-22 16:14:28 479

原创 ACM —— 1012 Joseph

解题代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); int k; int[] joseph = new int[14]; while ((k =

2015-09-22 14:00:02 467

原创 ACM —— 1011 Sticks

解题代码:import java.util.Arrays;import java.util.Scanner;public class Main { static int num; static int[] sticks; static boolean[] vists; public static void main(String[] args) { S

2015-09-21 16:48:33 765

原创 ACM —— 1010 STAMPS

解题代码:package acm1010;import java.util.Arrays;import java.util.Scanner;public class Main { private static int[] mValues; private static int[] mTime; private static int[] mSolve; p

2015-09-11 13:15:35 667

原创 ACM —— 1009 Edge Detection

解题代码:import java.util.Arrays;import java.util.HashMap;import java.util.Scanner;public class Main { static int mWidth, mHight; static int[][] pairs = new int[1000][2]; static HashMap

2015-09-09 18:01:12 911

原创 ACM —— 1008 Maya Calendar

解题代码:import java.util.HashMap;import java.util.Scanner;public class Main { static String[] numTzolkin = new String[] {"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "m

2015-09-08 18:00:16 639

原创 ACM —— 1007

解题代码:import java.util.ArrayList;import java.util.Collections;import java.util.Iterator;import java.util.List;import java.util.Scanner;public class Main { static class Node implements

2015-09-08 15:00:59 524

原创 ACM —— 1006 Biorhythms

解题代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); int p,e,i,d,n; int num = 0; while (((p = stdin.

2015-09-08 10:42:53 492

原创 ACM —— 1005 I Think I Need a Houseboat

解题代码:import java.util.Scanner;public class Main { public final static float PI = 3.1415926f; public static void main(String[] args) { Scanner stdin = new Scanner(System.in); int num

2015-09-07 18:10:20 436

原创 ACM —— 1004 Financial Management

解题代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); float sum = 0; for (int i = 0; i < 12; i++) {

2015-09-07 17:29:23 858

原创 ACM —— 1003 Hangover

解题代码:import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); float c; while ((c = stdin.nextFloat()) != 0.00)

2015-09-07 16:23:44 631

原创 ACM —— 1002 487-3279

解题代码:import java.util.Arrays;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main { static Map mMap = new HashMap(); //初始化映射关系 /** A, B

2015-09-07 13:25:29 622

原创 ACM —— 1001 Exponentiation

解题代码:import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner stdin = new Scanner(System.in); while(stdin.hasNext())

2015-09-06 14:11:20 515

原创 Android 点滴——ADB命令列表

下列表格列出了adb支持的所有命令,并对它们的意义和使用方法做了说明.CategoryCommandDescriptionCommentsOptions-d仅仅通过USB接口来管理abd如果不只是用USB接口来管理则返回错误-e仅仅通过模拟器实例来管理adb如果不是仅仅通过模拟器实例管理则返回错误-s

2015-09-02 14:05:33 544

原创 Android 网络编程——Socket,HTTP,SOAP辨析

一.Socket 和 HTTPSocket是一个针对TCP和UDP编程的接口,你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层 。HTTP是个应用层的协议,它实际上也建立在TCP协议之上。    (HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。) 二.HTTP 和 SOAPHTTP是一个通信协议,通过网络传输

2015-09-01 13:44:02 941

原创 Android 网络编程——SOAP

简单对象访问协议(Simple Object Access Protocol,SOAP)可以使网页服务器(Web Server)从XML 数据库中提取数据时,无需花时间去格式化页面,并能够让不同应用程序之间通过HTTP 协议,以 XML 格式互相交换彼此的数据,使这个交换过程与编程语言、平台和硬件无关。SOAP 基于 XML 标准,用于在分布式环境中发送消息,并执行远程过程调用。使用SOA

2015-09-01 11:10:56 576

原创 Android 网络编程——Android 中的 HTTP 编程

Android中提供的HttpURLConnection和HttpClient接口可以用来开发HTTP程序。区别HttpClient是个很不错的开源框架,封装了访问http的请求头,参数,内容体,响应等等,HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便,比如重访问的自定义,以及一些高级功能等。案例URLConnection S

2015-08-31 17:02:31 529

原创 Android 网络编程——HTTP概述

HTTP 是一个基于请求与响应模式的、无状态的、适用于分布式超媒体信息系统的    应用层协议。HTTP 协议的主要特点如下:1.支持 C/S(客户端 / 服务器)模式。2.简单快速。 客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、POST。每种方法规定了客户与服务器联系的不同类型。因为HTTP 协议比较简单,HTTP 服务器的程序规模较小,因

2015-08-31 16:25:17 626

原创 Android 网络编程——Socket

Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个针对TCP和UDP编程的接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口。一.利用Socket建立网络连接的步骤建立Socket连接至少需要一对套接字,其中一个运行

2015-08-31 11:21:44 686

原创 Android 网络编程——IP、TCP、UDP

基本概念IP:互联网协议(Internet Protocol,IP)是用于报文交换网络的一种面向数据的协议。IP是在 TCP/IP 协议中网络层的主要协议,任务是根据源主机和目的主机的地址传送数据。为达到此目的,IP 定义了寻址方法和数据报的封装结构。TCP:传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协

2015-08-31 10:37:44 716

转载 android 点滴——XML和JSON对比

1.简介:  XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。具体的可以问Google或百度。相比之JSON这种轻量级的数据交换格式,XML可以称为重量级的了。  JSON : JavaScrip

2015-08-20 16:36:36 1185

转载 android 点滴——XML

在Android平台上解析XML文件使用:Simple API for XML(SAX) 、 Document Object Model(DOM)Android附带的pull解析器。下面是本例子要解析的XML文件:itcast.xml      李明    30        李向梅    25  例子定义了一个javabean用于存放上

2015-08-20 16:25:55 396

转载 android 点滴——JSON

1.JSON概念:       一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。        JSON可以将Java对象转成json格式的字符串,可以将json字符串转换成Java。比XML更轻量级,Json使用起来比较轻便和简单。JSON数据格式,在Android中被广泛

2015-08-20 15:51:20 411

转载 android 点滴——AsyncTask 和 Handler 比较

AsyncTask实现的原理和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:简单,快捷过程可控      使用的缺点:在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.H

2015-08-19 18:10:26 484

原创 Android 点滴——Handler用法总结

方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题   new Thread( new Runnable() { public void run() { myView.invalidate();

2015-08-19 17:59:50 490

原创 Android 点滴——AsyncTask

Android为了降低这个开发难度,提供了AsyncTask。AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务。AsyncTask直接继承于Object类,位置为android.os.AsyncTask。要使用AsyncTask工作我们要提供三个泛型参数,并重载几个方法(至少重载一个)。 AsyncTask定义了三种泛型类型 Params,Progress和Resul

2015-08-18 18:03:09 462

androidsigned.zip

Android原生签名工具,内附signapk.jar和keytools,可以用于android studio

2020-03-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除