自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (5)
  • 收藏
  • 关注

原创 二分查找即折半查找

在排序数组中寻找目标值,最简单的方法即为遍历一遍,由于是排序数组,所以如果出现大于目标值还没有找到目标值,说明目标值不在数组中。时间复杂度O(N)二分查找又称折半查找,是利用排序数组的特点,每次先判断中间值和目标值的大小;每次都可以排除一半的搜索区间。时间复杂度 O(logN)

2023-11-02 10:16:49 81

原创 常见排序算法

快速排序使用分治方法,比基准值小的数字放到基准值左面,比基准值大的放到基准值右面;然后分别对基准值左侧、右侧分别使用快速排序;基准值可以随意选择,一般选择第一个或者最后一个数字。

2023-10-31 12:02:29 190

原创 native层修改Java对象中的数据

以native层访问修改Java层对象中的string数据为例介绍:1.获得object对应的类对象 jclass cls = (*env)->GetObjectClass(env, obj);2.从类对象中获得对象中数据的ID fid = (*env)->GetFieldID(env, cls, "s", "Ljava/lang/String;")3.获得对象中数据在虚拟机中的地址 jstr = (*env)->GetObjectField(env,...

2020-05-26 10:22:19 342

原创 指针,数组指针,指针数组

1.指针 指针可以看成一个变量,指针所占内存的大小和处理器的寻址空间大小有关,32位处理器指针大小为4个字节,64位处理指针大小为8个字节。 int* p; //定义一个int类型的指针,p就可以看成一个变量,p的值为0,表示p指向0地址;p也是占用内存的,编译器在栈上为p分配内存,存储p的值0,0地址的内容使用*p访问; p指向0地址,此0地址代表的是真实的内存条中的0物理地...

2019-11-06 11:53:20 160

原创 g++ 支持c++11 编译选项

g++ -o mainmain.cpp-std=c++11添加-std=c++11

2019-08-29 09:22:29 1409

转载 如何生成一个合适的hashcode方法

原文:http://www.importnew.com/8189.htmlHashcode在基于key-value的集合如:HashMap、LinkedHashMap中扮演很重要的角色。此外在HashSet集合中也会运用到,使用合适的hashcode方法在检索操作时的时间复杂度最好的是 O(1).一个差劲的hashcode算法不仅会降低基于哈希集合的性能,而且会导致异常结果。Java应

2017-11-17 11:18:19 3036

原创 Android获得本地IP地址

public String getIpAddress() {try {String ipv4;for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {NetworkInterface intf = en.nextElement();for (Enumerat

2017-11-04 21:01:52 562

原创 Android appUI是如何显示到屏幕上的

Android应用程序开发时,UI界面的设计布局一般是通过编写layout.xml布局文件,Activity调用onCreate函数时利用setContentView(R.layout.activity_main)完成布局设置。当然也可以使用代码生成控件,最后调用setContentView完成控件添加。所以应用界面设计的最终结果是通过setContentView告诉androidGUI系统的。

2017-10-19 16:24:29 1352

转载 Android hdpi ldpi mdpi xhdpi xxhdpi适配详解

1、了解几个概念(1)分辨率。分辨率就是手机屏幕的像素点数,一般描述成屏幕的“宽×高”,安卓手机屏幕常见的分辨率有480×800、720×1280、1080×1920等。720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素。(2)屏幕大小。屏幕大小是手机对角线的物理尺寸,以英寸(inch)为单位。比如某某手机为“5寸大屏手机”,就是指对角线的尺寸,5寸×2.54厘

2017-10-11 15:58:40 530

原创 两个进程访问同样的逻辑地址物理地址为何不同

1.Linux 段表In uniprocessor systems there is only one GDT, while in multiprocessor systems there is one GDT for every CPU in the system. 2.Linux页表each process has its own Page Global Directo

2017-09-28 15:46:38 3258

原创 Android Error in Eclipse: “Unable to execute dex: Cannot merge new index 66904 into a non-jumbo inst

Android Error in Eclipse: “Unable to execute dex: Cannot merge new index 66904 into a non-jumbo instruction!”解决办法:Eclipse工程目录下project.properties文件下第一行添加dex.force.jumbo=true

2017-09-20 10:41:13 397

原创 Android studio counld not reserve enough space 解决办法

Error occurred during initialization of VM         Could not reserve enough space for 1572864KB object heap         Consult IDE log for more details (Help | Show Log)Gradle.properties文件中添加

2017-08-12 18:35:23 653

原创 Android应用程序进程的启动过程

每当ActivityManagerService需要创建一个新的应用程序进程来启动一个应用程序组件时,它就会调用ActivityManagerService类的成员函数startProcessLocked向Zygote进程发送一个创建应用程序进程的请求。应用程序具体启动过程如下图所示。新的进程的创建是通过zygote进程创建的,Process类把要启动的新进程的执行函数以及其它参数信息通过zy

2017-08-01 14:16:22 446

转载 Android异步任务AsyncTask使用

原文连接:http://www.cnblogs.com/soonfly/p/4669790.htmlAsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用。AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法。注意继承时需要设定三个泛型Params,Progress和Result的类型,如AsyncTask:Par

2017-06-22 17:06:47 234

转载 xmlPullParser用法

原文链接:http://blog.csdn.net/chaoy1116/article/details/45224467XML文件      xmlns:yd="http://www.china-mobile.com"      xmlns:lt="http://www.china-unicome.com">      some_content                yua

2017-06-16 16:36:28 5682

转载 一次性搞清楚equals和hashCode

原文连接:http://www.cnblogs.com/lulipro/p/5628750.html前言在程序设计中,有很多的“公约”,遵守约定去实现你的代码,会让你避开很多坑,这些公约是前人总结出来的设计规范。Object类是Java中的万类之祖,其中,equals和hashCode是2个非常重要的方法。这2个方法总是被人放在一起讨论。最近在看集合框架,为了打基础,就决定把一

2017-06-13 16:14:31 257

原创 Android Binder库结构

Binder机制是Android系统中实现进程间通信的重要方法,Server端和Client端的类结构图如下。                                                                                        Server组件的实现原理

2017-05-18 18:18:12 330

原创 Java Synchronized修饰静态方法普通方法和代码块

Class A {    public synchronized methodA() {//对当前对象加锁    }    public  methodB() {               synchronized(this){}//对当前对象加锁,与methodA用法相同    }    public static synchronized methodC()

2017-04-20 10:39:30 3223

原创 Android Looper用法及原理

Looper是android为线程间异步消息通信提供的一种机制,利用Looper机制可以方便我们实现多线程编程时线程间的相互沟通。当然,如果不用Looper而采用其它的线程间通信方式(像管道,信号量,共享内存,消息队列等)也是一样的。Looper的实现是利用消息队列的方式,为用户封装了一层API,用户不需要考虑互斥加锁的问题,方便用户的使用。     Looper的使用方法:     如果

2017-01-25 15:00:19 28070 1

原创 Android手势处理及模拟滑动事件

按键或者触摸屏事件产生以后,触摸屏驱动程序会依据事件的类别按照操系统对事件的定义将事件告诉操作系统。Android操作系统中存在一个ActivityManager服务,此服务会将收到的事件分发给当前可见的Activity,Activity同时会将事件分发给此Activity中的控件,如果Activity中实现了手势或者触摸事件的处理,则会调用Activity的事件处理函数,同样Activity中的

2016-11-30 14:50:22 15817 3

转载 【C++专题】static_cast, dynamic_cast, const_cast探讨

文章出处:http://www.cnblogs.com/chio/archive/2007/07/18/822389.html首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分. 隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic conversion) : 在混合类型的算术

2016-11-10 14:20:31 215

转载 Android 4.4(KitKat)中的设计模式-Graphics子系统

文章出处:http://www.android100.org/html/201406/04/18051.html本文主要从设计模式角度简单地侃下Android4.4(KitKat)的Graphics子系统。可以看到在KitKat中Google对code还是整理过的,比如替换了像SurfaceTexture这种第一眼看到不知所云的东西,去掉了像ISurface这种打酱油的定义,改掉了明明

2016-11-10 14:16:00 398

转载 Android中的GraphicBuffer同步机制-Fence

文章出处:http://blog.csdn.net/jinzhuojun/article/details/39698317Fence是一种同步机制,在Android里主要用于图形系统中GraphicBuffer的同步。那它和已有同步机制相比有什么特点呢?它主要被用来处理跨硬件的情况,尤其是CPU,GPU和HWC之间的同步,另外它还可以用于多个时间点之间的同步。GPU编程和纯CPU编程一

2016-11-10 14:09:04 639

原创 enum类型的大小

enum结构类型中的变量个数,最大能够定义2^32个。因此有些编译器直接将enum类型的大小固定为4字节。嵌入式软件开发中,内存相对宝贵,编译器一般根据enum结构类型中定义的变量的值分配enum类型大小。比如:enum enumType{MONDAY,TUESDAY,WENSDAY = 0XFF};那么enumType的大小为1字节。enum enumType{MON

2016-01-02 17:46:04 7243

原创 C++对象在内存中的存储

最近忽然迷惑,子类继承父类之后,子类对象在内存中的存储方式是怎样的。理论上上应该是虚函数表指针、父类变量、子类变量。父类变量存储时是否和子类变量一起实现内存对齐呢?为了搞明白这个问题,做了如下实验。编译环境:win32,VS2008,Version3.5 SP1#include "stdafx.h"#includeusing namespace std;class

2016-01-02 17:36:43 1963

原创 大小端(big/little endian)

1.Endian的由来          Endian这个词最早出自于乔纳森·斯威夫特所写的《格列佛游记》,书中根据人们吃 鸡蛋的方式将人分为两类:一类为从圆头打开鸡蛋开始吃的人(big endian);一类为从尖头打开鸡蛋开始吃的人(little endian)。《格列佛游记》中描述的小人国因为吃鸡蛋的方式不同而发生内战,此虚构的故事实为讽刺当时的英国议会中毫无意义的党派斗争,统治集团的

2015-12-13 22:03:24 819

原创 软件设计中的数据处理

软件启动时,有些配置参数需要从保存介质中读取,而这些参数一般为用户配置软件,修改算法因子的参数,这些参数一般保存在掉电保存介质中。

2015-09-21 13:37:35 583

原创 友元类&const

(1)友元类友元类的原理不知道,问什么这么写之后就能访问到类的私有or保护变量不明白友元类记忆方法:类是主动的,类中说明哪个类是友元类,哪个类才可以访问此类中的私有保护变量猜测:类中定义了友元类之后,将会有一个标记,记录哪些类中可以反问此类的私有或者保护变量class B;class A{   public:   A(int v);~A();   private

2015-06-17 16:36:43 502

原创 含有random指针的链表复制

(1)含有随机指针的链表拷贝typedef struct NODE{int value;NODE* next;NODE* random;};NODE* ListCopy(NODE *head){NODE *pHead = head;NODE *sHead = NULL;NODE *returnHead = NULL;while(pHead !

2014-10-17 15:18:27 693

原创 C++ Primer读书笔记

1.函数重载:参数个数,参数类型,const 非const;而不能仅仅根据函数返回值来实现重载2.static成员函数不能被声明为const函数,将成员函数声明为const就是承诺不会修改该函数所属的对象3.static成员函数不能被声明为虚函数4.::,.*,.,?:不能重载5.根据复合赋值操作符(如+=)来实现算术操作符(如+),比其它方式更简单且更有效6.一般而言,赋值操

2014-09-29 08:55:52 599 1

原创 eclipse启动 an error has occured

1.删除Java Project所在目录的.metadata文件夹2.如果第1步之后仍然不能正常启动改变Java Project所在目录3.如果1,2步之后仍然不能正常启动,检查jdk环境变量是否被修改,即Java_Home是否指向了JDK安装目录4.如果3正确,检查jdk是否被损坏;   运行->cmd->Java -version,如果不能正确显示Java版本说明JDK被损坏

2014-09-12 10:30:47 919 1

转载 CView中OnDraw()函数调用的时间

视图绘画机理     在VC++的文档、视结构中,     CView的OnDraw函数用于实现绝大部分图形绘制的工作。     如果用户改变窗口尺寸,或者显示隐藏的区域,     OnDraw函数都将被调用来重画窗口。并且,     当程序文档中的数据发生改变时,     一般必须通过调用视图的Invalidate(或InvalidateRect)     成员函数来

2014-09-10 16:40:20 3822

转载 adb uninstall failure

昨天在使用adb卸载程序,结果死活卸载不了。我输入的命令和系统提示如下:[plain] view plaincopyarthur@arthur-laptop:~$ adb uninstall com.hase.bclm.client-2.apk  Failure  后来发现原来卸载程序时,只adb uninstall 后边的参数不

2014-08-11 22:36:29 3521

转载 add/remove operation is impossible, because the code element 'Cxxx' is read only

How to solve “add/remove operation is impossible, because the code element 'Cxxx' is read only”With Visual Studio 2008, we may meet “add/remove operation is impossible, because the code element 'C

2014-07-18 17:45:17 897

转载 apache安装配置

yhttp://blog.163.com/xiaoyang_80/blog/static/1723721352010111392055674/

2014-07-11 09:52:22 510

转载 Android出现java.net.SocketException: Permission denied的问题

1. 在AndroidMainfest.xml中加入以下  2. AndroidMainfest.xml [xhtml] view plaincopyxml version="1.0" encoding="utf-8"?>  manifest xmlns:android="http://schema

2014-07-06 15:44:42 669

原创 VisualC++ WindowsForm不规则窗体的绘制

Winform窗体通常都是矩形的,而在实际编程中我们可能需要圆形、椭圆形或者不规则的背景图形状的窗体。在实现这种不规则窗体的绘制中,我们可以使用windows提供的api来实现。SetWindowRgn()是实现不规则窗体绘制的主要API接口函数。所有的 Windows 窗体都位于一个称为“region”中,窗体的大小如果超出“region”的范围,windows 会自动裁剪超出"re

2014-06-14 13:12:12 892

原创 VisualC++右键菜单的添加

windowsForm中右键菜单的添加非常简单,

2014-06-14 12:49:33 1943

原创 did you forget to add stdafx.h problem

in vssolution: property/c/C++/Precompileed Headers/Precompiled Header to "not Using Precompiled Headers"

2014-06-14 12:38:57 1810

转载 linux创建新进程的过程

linux系统中创建新进程使用fork()系统调用。所有进程都是通过复制进程0而得到的。都是进程0的子进程。linux创建新进程的过程:1.系统首先在任务数组中找出一个还没有被任何进程使用的空项。如果数组已满,没有空项,则fork系统调用出错返回。系统将会为新建进程在内存区中分配一页内存来存放其任务数据结构信息,并复制当前进程任务数据结构中的所有内容作为新进程任务数据结构的模板。2.对复制

2014-01-04 21:41:06 1031

cling实现Render例子

利用cling实现Render播放器端框架简单例子,利用qq音乐app可以搜索到此例子 利用cling实现Render播放器端框架简单例子,利用qq音乐app可以搜索到此例子

2017-09-27

Effective Java 中文第二版.pdf

Effective Java 中文第二版.pdf

2017-08-18

glide-4.0源码

Glide4.0源码

2017-08-15

glide-4.0 jar包

一款Google出的资源加载工具类,支持图片、gif、视频资源,功能强大,使用方便

2017-08-15

thinking in java高清中文

thinking in java 高清中文第四版

2017-02-03

空空如也

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

TA关注的人

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