- 博客(196)
- 资源 (148)
- 收藏
- 关注
转载 JAVA中Final的用法
1. 修饰基础数据成员的final这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改。如java.lang.Math类中的PI和E是final成员,其值为3.141592653589793和2.718281828459045。2. 修饰类或对象的引用的final在Java中,我们无法让对象被修饰
2014-04-04 14:59:29 731
转载 JAVA & C++ 向上转型 区别
转载:http://www.cnblogs.com/lxw0109/p/CPP_JAVA.htmlpackage org.lxw.demo;class A{ public void f1() { System.out.println("A:f1"); } public void f2() { System.o
2014-04-03 13:16:05 1254
原创 Java中final、finally和finalize的区别(转)
final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。finally 是异常处理语句结构的一部分,表示总是执行。finalize 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派
2014-03-27 14:54:26 653
转载 Android AsyncTask的缺陷
导语:在开发Android应用的过程中,我们需要时刻注意保障应用的稳定性和界面响应性,因为不稳定或者响应速度慢的应用将会给用户带来非常差的交互体验。在越来越讲究用户体验的大环境下,用户也许会因为应用的一次Force Close(简称FC)或者延迟严重的动画效果而卸载你的应用。由于现在的应用大多需要异步连接网络,本系列文章就以构建网络应用为例,从稳定性和响应性两个角度分析多线程网络任务的性能优化方法
2014-03-26 17:25:48 705
转载 Android之Service与IntentService的比较
转载:http://developer.android.com/reference/android/app/IntentService.html不知道大家有没有和我一样,以前做项目或者练习的时候一直都是用Service来处理后台耗时操作,却很少注意到还有个IntentService,前段时间准备面试的时候看到了一篇关于IntentService的解释,发现了它相对于Servic
2014-03-25 18:17:04 547
转载 linux 下连续使用多个scanf() 的问题和 fflush(stdin)的变通处理
linux 下连续使用多个scanf() 会有问题,实例: while (1) { printf("Please input: "); scanf("%s",pstr) ; } 这段程序运行会出问题,当一次输入后,会不停的提示Please input:,程序不会在scanf等待下一次的输入。一般资料会说添加fflush函数可解决这个问题
2014-03-25 14:52:24 1036
转载 Android ANR
一、在项目之前,应该确保工程师理解产生ANR的基本原理,Handler的基本原理,明白一些主要回调函数的执行线程。如果工程师还没达到这些要求,应该通过培训等方式尽量让工程师了解这些知识。关于这些技术的知识可参考《关于ANR的官方建议》和《Android线程模型》和《Looper和Handler》二、如果程序在初始化阶段较耗时,考虑显示一splash屏或者尽快让主视图快速显示处理,然后才显示
2014-03-19 14:53:59 551
转载 Java 内存泄漏
在C++语言中,如果需要动态分配一块内存,程序员需要负责这块内存的整个生命周期。从申请分配、到使用、再到最后的释放。这样的过程非常灵活,但是却十分繁琐,程序员很容易由于疏忽而忘记释放内存,从而导致内存的泄露。Java语言对内存管理做了自己的优化,这就是垃圾回收机制。Java的几乎所有内存对象都是在堆内存上分配(基本数据类型除外),然后由GC(garbage collection)负责自动回收不再使
2014-03-18 16:24:28 580
转载 Java finally语句到底是在return之前还是之后执行?
网上有很多人探讨Java中异常捕获机制try...catch...finally块中的finally语句是不是一定会被执行?很多人都说不是,当然他们的回答是正确的,经过我试验,至少有两种情况下finally语句是不会被执行的:(1)try语句没有被执行到,如在try语句之前就返回了,这样finally语句就不会执行,这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一
2014-03-12 16:39:48 490
转载 Java transient关键字使用小记
1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,
2014-03-11 19:02:06 454
转载 Android中解析XML
XML在各种开发中都广泛应用,Android也不例外。作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能。今天就由我向大家介绍一下在Android平台下几种常见的XML解析和创建的方法。在Android中,常见的XML解析器分别为SAX解析器、DOM解析器和PULL解析器,下面,我将一一向大家详细介绍。SAX解析器:SAX(Simple API
2014-03-11 10:49:09 521
转载 在 JNI 编程中避免内存泄漏
JNI 编程简介JNI,Java Native Interface,是 native code 的编程接口。JNI 使 Java 代码程序可以与 native code 交互——在 Java 程序中调用 native code;在 native code 中嵌入 Java 虚拟机调用 Java 的代码。JNI 编程在软件开发中运用广泛,其优势可以归结为以下几点:利用 n
2014-03-10 17:59:54 606
转载 Java 内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在
2014-03-10 17:58:31 463
原创 Android BroadCast Types
Types :- Local,Normal,Ordered and StickyNormal Broadcast:- use sendBroadcast():- asynchronous broadcast:- any receiver receives broadcast not any particular orderOrdered Broadc
2014-03-07 15:22:00 668
转载 JAVA 对象初始化流程梳理
类Person和子类Son,体现对象初始化流程的代码:public class Person { Bow b1 = new Bow(1); static { System.out.println("Person staticstatic块1"); } { System.out.println("Person hel
2014-03-06 17:12:49 586
转载 Performance Tips for Android’s ListView
I’ve been messing around with Android-based code for a few months now while hacking on Native Firefox for Android and Pattrn. I noticed that the performance tips for ListViews are a bit scattered in
2014-03-05 14:32:54 663
转载 Binder框架在Framework层的C++中的使用
关于Binder在C++层的使用,搜过几篇文章,讲得比较多,也比较复杂,除非是想对OpenBinder这个开源项目深入研究,否则的话,用不了那么多的知识。我因为需要移植Android调些Framework层的Bug,一般跟踪程序时只要能找到谁调用的谁就可以了。接触过这部分一段时间后,就整理出了Android中在Framework层的C++中使用Binder时的框架。很简单,借此可以很容易理清Fra
2014-02-28 21:11:29 573
转载 aidl用到的设计模式--Proxy代理模式
[java] view plaincopyaidl用到的是远程代理模式,为客户端隐藏了IPC的细节。让客户端感觉好像拿到了一个服务器端对象的句柄。 ------------------------------- IGreetService.aidl ------------------------------- class="dp-j
2014-02-28 15:33:03 1454
转载 一些重要的算法
下面是一些比较重要的算法,原文罗列了32个,但我觉得有很多是数论里的或是比较生僻的,和计算机的不相干,所以没有选取。下面的这些,有的我们经常在用,有的基本不用。有的很常见,有的很偏。不过了解一下也是好事。也欢迎你留下你觉得有意义的算法。(注:本篇文章并非翻译,其中的算法描述大部份摘自Wikipedia,因为维基百科描述的很专业了)A*搜寻算法俗称A星算法。这是一种在图形平面上,有多个节
2014-02-28 14:40:01 789 1
转载 深入浅出单实例Singleton设计模式
单实例Singleton设计模式可能是被讨论和使用的最广泛的一个设计模式了,这可能也是面试中问得最多的一个设计模式了。这个设计模式主要目的是想在整个系统中只能出现一个类的实例。这样做当然是有必然的,比如你的软件的全局配置信息,或者是一个Factory,或是一个主控类,等等。你希望这个类在整个系统中只能出现一个实例。当然,作为一个技术负责人的你,你当然有权利通过使用非技术的手段来达到你的目的。比如:
2014-02-28 14:29:52 619
转载 判断单链表是否存在环及寻找环的入口点
判断链表是否存在环,有如下几种解法:1. 遍历链表,将已经遍历过的节点放在一个hash表中,如果一个节点已经存在hash表中,说明有环。时间:O(n) 空间:O(n)2. 反转链表。 时间O(n),空间O(1),使用三个指针。(ref: http://www.cppblog.com/tx7do/archive/2009/01/06/71280.html) 单链表反转:下面给
2014-02-28 10:31:53 746
转载 深入理解JVM内部结构
这篇文章主要是解释java虚拟机(JVM)的内部结构。下图显示了符合Java SE 7 版本的Java虚拟机规范的一个典型JVM中的关键内部组件。 图中显示的组件将会在下面两部分中进行逐一的解释。第一部分涉及JVM为每一个线程都会创建的组件;第二部分则是独立于线程进行创建的组件。1. Thread Thread是一个程序中的一个执行线
2014-02-26 13:21:58 578
转载 Android屏幕适配解析
1. 名词解析在之前写过的 AndroidUI设计之 布局管理器 - 详细解析布局实现 中的 第七 小节已经说明了一部分;(1) 通用名词屏幕尺寸(screen size): 按照屏幕的对角线测量的实际大小;--屏幕尺寸分类: 屏幕尺寸分为 小(small), 普通(normal), 大(large), 超大(extra larg
2014-02-26 11:00:08 625
转载 理解抽象类和接口
接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。 抽象类与接口是java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。 一、抽象类 我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描
2014-02-26 10:37:47 719
转载 JNI搭建:native方法注册或NDK中的方法对应
关于JNI的搭建,有两种方式,一种是传统的在C/C++模块入口中提供native方法注册,实例代码如下:view plain/* * JNI registration. */ static JNINativeMethod gNativeMethods[] = { { "nativeMethod1", "(I)V", (void*) method1 },
2014-02-21 10:30:36 742
转载 C++对析构函数的误解
对象在构造的时候系统会分配内存资源,对一些数据成员进行初始化或者赋值;一个良好的class需要有资源回收的机制,而这一操作便落在了析构函数的头上,析构函数来负责类内的资源的free。来看一段代码:12345678910111213141516
2014-02-16 15:26:20 607
转载 objdump 反汇编
1)使用System.map文件查找函数的起始地址和结束地址2)使用objdump -d 反汇编, 然后通过--start-address和--stop-address参数指定函数区间3)使用nm -n out.elf > System.map 命令生成System.map文件4)grep -A 1 打印匹配行和下一行, awk 打印第一列地址.#!/bin
2014-02-13 16:21:55 2003
转载 linux中Oops信息的调试及栈回溯
Oops 信息包含以下几部分内容。1 一段文本描述信息。比如类似“Unable to handle kernel NULL pointer dereference at virtual address 00000000”的信息,它说明了发生的是哪类错误。2 Oops 信息的序号。比如是第 1 次、第 2 次等。这些信息与下面类似,中括号内的数据表示序号。Internal
2014-02-13 16:19:02 531
转载 GDB 调试
一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几个命令:info thread 查看当前进程的线程。thread 切换调试的线程为指定ID的线程。break file.c:100 thread all 在file.c文件第100行处为所有经过这里的线程设置断点。set scheduler-locking off|on|step,这个是问得最多的。在使用step或者
2014-02-13 15:00:42 486
转载 堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态
2014-02-13 14:28:33 477
转载 C/C++ struct初始化/复制/内存分配技巧
为了方便后面的介绍,先定义一个struct类型: struct User { int id; //id char name[100]; //user name char *home; //home directory
2014-02-11 17:15:31 702
转载 android悬浮窗口的实现
当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和主界面交互的悬浮小窗口)。那么这种不受Activity界面影响的悬浮窗口是怎么实现的呢? 竟然它能悬浮在手机桌面,且不受Activity界面的影响,说明该悬浮窗口是不隶属于Activity界面
2014-01-17 15:41:02 763
转载 IPU VPU GPU
Video graphics system[IPU, VPU and GPU]IPU: Image Processing Unit • -- Display • -- Camera • -- Image Rotation, Inversion, Color Space Conversion • -- Image quality enhancement • -
2014-01-10 14:47:07 3108
转载 C++构造函数中抛出的异常
构造函数中抛出的异常 1、标准C++中定义构造函数是一个对象构建自己,分配所需资源的地方,一旦构造函数执行完毕,则表明这个对象已经诞生了,有自己的行为和内部的运行状态,之后还有对象的消亡过程(析构函数的执行)。可谁能保证对象的构造过程一定能成功呢?说不定系统当前的某个资源不够,导致对象不能完全构建好自己(人都有畸形儿,更何况别的呢?朋友们!是吧!),因此通过什么方法来表明对象的构造失败了
2014-01-07 16:52:38 473
转载 Android中Path类的lineTo方法和quadTo方法画线的区别
当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的lineTo和quadTo方法实现的绘制线路形式也是不一样的,下面就以代码的实现来直观的探究这两个方法的功能实现区别; 1. Path--->quadTo(float x1, float y1, float x2, float y2): 该方法的实现是当我们不仅仅是画一条线甚至是画弧线时会形成平滑
2013-12-25 16:48:00 616
转载 快速简单理解i2c标准协议
对于嵌入式开发的朋友来说,I2C协议实在是再熟悉不过了,有太多的器件,采用的都是通过I2C来进行相应的设置。今天,我们就随便聊聊这个I2C协议。 I2C协议中最重要的一点是I2C地址。这个地址有7位和10位两种形式。7位能够表示127个地址,而在实际使用中基本上不会挂载如此多的设置,所以很多设备的地址都采用7位,所以本文接下来的说明都是基于此。
2013-11-21 17:28:10 881
转载 C++ 虚基类、虚继承
C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为派生类的虚
2013-11-19 15:46:47 1117
转载 虚析构函数、纯虚析构函数
一. 虚析构函数我们知道,为了能够正确的调用对象的析构函数,一般要求具有层次结构的顶级类定义其析构函数为虚函数。因为在delete一个抽象类指针时候,必须要通过虚函数找到真正的析构函数。如:class Base{public: Base(){} virtual ~Base(){}};class Derived: public Base
2013-11-15 18:28:49 797
转载 android:shape的使用 (android用xml文件生成图像控件)
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结:先看下面的代码:shape> solid android:color="#ff9d77"/> gradient android:startColor="#ff8c
2013-09-05 19:25:19 704
转载 /sys/dev 和/sys/devices 和udev的关系
sysfs introduction:----------------------------sysfs is a mechanism for representing kernel objects, theirattributes, and their relationshipswith each other.It provides two components: a ker
2013-08-28 13:38:16 772
Linux课件ppt及常用Linux命令集
2009-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人