- 博客(62)
- 资源 (3)
- 收藏
- 关注
原创 编码理解
在计算机内部,所有信息都表示成二进制01,若要显示出来让人看懂,需要进行编码转换。如汉字”严”以 Unicode编码保存到计算机中是4E25,即01001110 00100101,显示给用户看时,通过Unicode编码表查看4E25对应的是”严”,显示出来。 编码的发展过程:(1)ASCII码字节是计算机存储的基本单位,一字节等于八位(1byte = 8bit)。一个字节可以表示256种状态(00
2015-11-25 12:49:04
737
原创 安全机制了解
安全机制了解(一)base64(1)简介Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一。Base64 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输。 输出包括A-Z、a-z、数字0-9这62个码字及两个+/两个特殊码字(2)实现原理base64的编码都是按字符串长度,以每3个8bit的字符为一组, -然后针对每组,首先获取每个字符的ASCII编码, -
2015-11-23 08:39:51
642
原创 HttpURLConnection和AndroidHttpClient
Android中主要提供了两种方式来进行HTTP操作,HttpURLConnection和AndroidHttpClient。(一)HttpURLConnection1、HttpURLConnection 是Sun公司提供的网络连接库,提供通用性、轻量级的网络连接,简单,但可扩展性强,基本的网络请求都满足,同时支持IPv6、代理、授权、Cookies等。2、支持压缩功能,自动在请求
2015-10-30 08:49:29
657
原创 计算机网络-http简介
(一)http相关定义1.http 协议HTTP超文本传输协议是一个属于应用层的面向对象的协议,同时是无状态的,所以出现了 cookie 和 session 用来保存状态数据。当使用 http 连接时,http1.0默认设置Connection: keep-alive可以不断开重复使用连接。2.http 请求过程web 前端:浏览器输入url回车,发送 request 获取到该 u
2015-10-28 09:42:23
716
原创 groovy的使用-简介
Groovy是Java平台上设计的面向对象编程语言,可以作为Java平台的脚本语言使用。在 android studio 中用的 gradle 就是基于 Groovy 语言的,学习了《Groovy 入门经典》,要点如下。(1)为什么使用脚本语言脚本语言和系统语言(如 java)设计的目的不同。脚本语言多用于连接已有的程序,不是实现复杂的算法和数据结构,代码量少,开发效率高,多用于小中型
2015-10-27 08:22:42
561
原创 java-多线程深入(六)锁
java多线程中提供的锁:synchronized和lock。(一)synchronized1、synchronized的使用每个对象都自带锁,锁可以同步实例方法(this是对象锁)、静态方法(class是对象锁)、方法块(synchronized参数是对象锁)
2015-08-19 07:48:35
845
原创 java-集合类(二)
使用场景1.多线程(1)在jdk1.5之前原始的集合类中,只有vector、stack、hashtable、enumeration等是线程安全的,其他的都是非线程安全的。 非线程安全的集合在多线程操作中,会出现脏数据,如final List tickets = new ArrayList(); for (int i = 0; i 100000; i++) {
2015-08-18 10:18:56
728
原创 java-集合类(一)
概念理解1.集合类集合类用来存放动态变化的数据集合,因数组只能存储固定数量的数据集,集合类更灵活。2.各集合类简介 (1)接口 Iterable:实现集合遍历功能,每个集合类都实现,支持 foreach Collection:基本集合接口,支持增删查功能,包含 List、Set、Queue 接口。 List:可重复的数据集合,有索引方便增删改查。 Set:不可重复的数
2015-08-05 08:54:45
678
原创 java-多线程深入(五)Atomic分析
(一)Atomic的使用java.util.concurrent中提供了atomic原子包,可以实现原子操作(atomic operation),即在多线程环境中,执行的操作不会被其他线程打断。/** * atomic简单demo * * @author peter_wang * @create-time 2014-6-9 上午9:29:58 */public c
2015-05-28 08:41:11
5674
原创 java-多线程深入(四)Volatile分析
(一)volatile的使用1、使用场景(1)状态标识。用于实时指示某个重要性事件的发生,比如完成初始化或者停机。volatile boolean toShutdown; ...... public void shutdown() { toShutdown = true; } public void doWork() { while (!
2015-01-31 08:26:51
1346
原创 java-多线程深入(三)happens-before介绍
多线程操作中,需注意互斥性和可见性,重点了解下可见性。(一)可见性问题来源1.cpu和内存速度相差过高,引入缓存(cache、寄存器等);一个线程由线程id、指令计数器PC、寄存器集合和堆栈构成,详见《程序员的自我修养》。每个线程有自己的工作内存,修改进程主内存的值,都需要拷贝到工作内存修改后,再回写,其他现场可能出现,读取到未回写的脏数据。2.
2015-01-27 11:18:37
1502
原创 java-多线程深入(二)互斥性和可见性
(一)互斥性互斥性,即原子性。原子,指最小的物质,具体不可再分性。CPU运算中,对多线程进行时间片分割执行,一个程序块执行时不可分割,即满足互斥性原子性。java中保证互斥性的方法:1.用sychronized锁住程序块,实行互斥synchronized (lock) { a++;}2.用Atomic对变量操作实行互斥public final stat
2015-01-26 10:12:35
3551
原创 java-多线程深入(一)JMM
(一)java内存区域概况jvm运行java程序时把所管理的内存分成几个部分:方法区、java栈、本地方法栈、java堆、pc程序计数器。class字节码装载解析后,在多线程环境中,方法区和java堆数据共享,每个线程自带pc程序计数器和java栈,栈帧中包含方法的所有状态(局部变量、传参、返回值、运算中间结果等)。对共享数据需要考虑多线程并发问题。更详细内容可参考《深入理解JVM虚拟
2015-01-20 09:16:27
1230
原创 java-ThreadLocal简介
android中的Looper类,使用了ThreadLocal保存每个线程的Looperstatic final ThreadLocal sThreadLocal = new ThreadLocal();简单了解下ThreadLocal的概念和使用。(一)概念ThreadLocal为每个线程提供变量的副本,该变量线程间独立不影响。(二)使用/** * Thre
2014-12-30 20:03:40
924
原创 android深入之UI(一)图片
(一)创建图片Bitmap的类型BitmapFactory.Options代表Bitmap存储的方式ALPHA_8只有alpha值,占1字节ARGB_4444不推荐,ARGB各占4bits,共占2字节ARGB_8888默认保存方式,ARGB各占8bits,共占4字节RGB_565没alpha值,共占2字节
2014-10-27 08:32:22
1268
原创 apk反编译工具-apktool
apk是很容易被反编译的(一)反编译的好处1.能学习别人优秀代码看看优秀apk他们的string、color命名规则,看看布局排版等都能学习到东西。2.进行简单修改,二次打包
2014-10-27 08:31:11
1341
原创 android工具-annotations
在当下的java的使用中,annotations已经被广泛运用,来提升开发效率。在android中,主要是帮助开发者处理一些前后台任务、rest 服务、应用类、代码片段等,让开发者专注于真正重要的东西。
2014-09-14 07:22:50
1646
原创 java-socket编程
先前有篇博文专门写了socket的基本概念,这里用java来实现简单的server-client的socket数据传输。
2014-09-07 06:56:00
1611
原创 java-IO操作性能对比
在软件系统中,IO速度比内存速度慢,IO读写在很多情况下会是系统的瓶颈。在java标准IO操作中,InputStream和OutputStream提供基于流的IO操作,以字节为处理单位;Reader和Writer实现了Buffered缓存,以字符为处理单位。从Java1.4开始,增加NIO(New IO),增加缓存Buffer和通道Channel,以块为处理单位,是双向通道(可读可写,类似RandomAccessFile),支持锁和内存映射文件访问接口,大大提升了IO速度。以下例子简单测试常见IO操作
2014-06-05 08:31:20
3345
原创 读书笔记-《拆掉思维里的墙》
《拆掉思维里的墙》,在豆瓣上的评论接近两万条,感兴趣扫了电子书,感觉有点成功学的范本,随意浏览了下,做了逻辑脑图,给我启发的几点如下。1.我是个缺乏安全感的人,里面说到了在安全领域内克服自己的怯弱,面对自己的恐惧,多写成功日志;安全感就是一种被需要,一种创造价值的体验。2.思维定势阻碍了创造力,真理不一定是对的,需要符合自身条件,敢于批判。
2014-06-01 22:03:34
1275
原创 java-线程池(一)
性能优化中,其中一块是线程池的使用,初探线程池,从简单了解到源码分析,深入理解才能合理运用。(一)线程池的来源及优点单个异步任务,每次都需创建线程、销毁线程,当任务处理的时间短而请求数却巨大时,将导致资源消耗过多。比如,数据库连接,需消耗大量资源,建立线程池能重用数据库访问线程。使用线程池的优点:1.降低资源消耗。重用现有线程,减少线程创建销毁开销。2.提高
2014-05-23 08:13:54
1625
原创 android深入之设计模式(一)委托模式
委托模式是基本的设计模式之一。委托,即是让另一个对象帮你做事情。许多其他的模式,如状态模式、策略模式、访问者模式本质上是在更特殊的场合采用了委托模式。委托模式使得我们可以用聚合来替代继承。
2014-05-21 06:08:41
4809
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人