自定义博客皮肤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)
  • 资源 (2)
  • 收藏
  • 关注

原创 常见排序算法

1 冒泡排序冒泡排序的原理是相邻两个元素两两比较,如果左侧数据大于右侧数据,则两者交换位置;否则不动。时间复杂度:最好时间复杂度: O(n);最差时间复杂度:O(n²);平均时间复杂度:O(n²)辅助空间:O(1)稳定性:稳定代码如下: /** * 冒泡排序 * * @param numbers */ public stat...

2019-02-11 14:32:58 222

原创 常见查找算法

1 顺序查找顺序查找指在通过遍历表中的每个元素,直到找到关键字为止。时间复杂度为O(n)2 择半查找(二分查找)择半查找指在顺序表(有序数组)的前提条件下,假设数组s长度为n,开始索引为sIndex=0,结束索引为eIndex=n-1,中间索引为mIndex,查找关键字为k;第一次查找,mIndex=(sIndex+eIndex)/2和查找关键字k比较,若k>s[mIndex...

2019-02-11 09:39:50 357

原创 关于hashCode和equals的总结

hashCode是散列码,利用键值对存储数据,方便快速查找所需的对象。而equals用于判断两个对象的值是否相等,效率就比较低;简单的理解就是hashCode用于快速过滤刷选,只有hashCode存在相同的时候,才会调用equals方法进行下一步的比较。(hashCode主要缩小查找成本)如果两个对象相等,则hashcode一定也是相同的 两个对象相等,对两个对象分别调用equals方法都返...

2019-01-30 11:19:26 329

原创 java设计模式专题

1 创建型模式1.1 简单工厂模式1.2 工厂方法模式1.3 抽象工厂模式1.4 建造者模式1.5 原型模式1.5 单例模式 2 结构型模式2.1 适配器模式2.1 桥接模式2.2 组合模式2.3 装饰模式2.4 外观模式2.5 亨元模式2.6 代理模式 3 行为型模式3.1 职责链模式3.2 命令模式3.3 解释器模...

2019-01-16 15:19:59 347

原创 Atomic 原子类

 Atomic原子类指具有原子性特征的类,所有的原子类API都在java.util.concurrent.atomic包下,如图所示:使用原子类的作用就是不需要调用者手动加锁(volatile,synchronized等)就能保证在多线程环境中是线程安全,因为原子类在JDK层面做了线程安全的工作,保证线程操作是安全的。...

2018-12-23 16:49:32 354

原创 并发知识之AQS原理

AQS是在java.util.concurrent.locks包下的API,可以轻松构建锁和同步器的框架。其原理图如下:  

2018-12-23 15:53:56 142

转载 寄存器、缓存、内存、硬盘、存储器的理解

存储器是指能存储数据的器件,包括寄存器、缓存、内存、硬盘,其对应CPU访问的速度由快到慢分别是寄存器>缓存>内存>硬盘。寄存器是中央处理器的组成部分,是一种直接整合到cpu中的有限的高速访问速度的存储器,它是有一些与非门组合组成的,分为通用寄存器和特殊寄存器。(容量小,主要存储指令和CPU频繁访问的数据)缓存其实是内存中高速缓存(cache),它之所以存在,是因为当cpu...

2018-12-16 20:50:40 826

原创 java线程之synchronized关键字

1 synchronized同步代码块synchronized (this) { System.out.println("synchronized 代码块"); }synchronized 同步语句块的实现使用的是 monitorenter 和 monitorexit 指令,其中 monitorenter 指令指向同步代码块的开始位置,monitorexit 指令则指明同步代码...

2018-12-16 20:22:35 206

原创 java线程之volatile关键字

volatile关键字主要作用:1 保证内存可见性即确保多个线程能够访问到主内存中的变量是最新的状态。(保证了主内存和线程工作线程中操作过后的最新变量状态)2 防止指令重排指令重排序是JVM为了优化指令,提高程序运行效率的一种机制,包括编译器重排序和运行时重排序;在单线程的情况下是不会影响执行的结果,但是在多线程的环境下执行的结果就会出现错乱。而volatile关键字便可以阻止指令...

2018-12-16 17:15:26 149

原创 android开机启动问题

 1、安卓APP要在没有退出任务管理器的情况下,开机启动才会有效。https://stackoverflow.com/questions/31353411/app-doesnt-auto-start-an-app-when-booting-the-device-in-android...

2018-11-09 15:42:19 167

转载 Windows下Resin的安装及配置详解

http://blog.51cto.com/lookingdream/1889415

2018-06-09 23:35:29 1872

转载 Android 内存管理机制

1.内存分配机制安卓会给每个进程分配合适的内存大小,而且这种分配是弹性分配机制,即在使用过程中会根据使用App的情况,动态多分配内存,但是会有上限。Android系统的宗旨是最大限度的让更多的进程存活在内存中,这样可以再次启动应用时,就不需要重新创建进程,提升用户体验。2.Android进程种类2.1  前台进程(foreground)前台进程指正在交互的应用,显示在当前屏幕或者是系统进程。2.2...

2018-06-03 15:24:20 384

原创 Dalvik虚拟机

1 安卓java执行过程:2 安卓生成APK运行的过程:把Java源文件编译成class文件使用DX工具把class文件转换成dex文件使用aapt工具把dex文件、资源文件以及AndroidManifest.xml文件(二进制格式)组合成APK将APK安装到Android设备运行3 Dalvik虚拟机和Java虚拟机的区别Java虚拟机都是基于栈的结构,而Dalvik虚拟机则是基于寄存器。Jav...

2018-06-02 10:22:57 1182

原创 Java虚拟机总结

1、java语言的运行过程。首先java源文件(.java)通过java编译器编译成java字节码文件(.class),接着通过JVM虚拟机将java字节码加载、解析成运行主机能识别的机器码。2、jvm中的堆和栈。Stack(栈)是JVM的内存指令区。主要存储基本的数据类型、Java 指令代码、常量等字节长度已知的数据。Heap(堆)是JVM的内存数据区。主要存储对象的实例(包括属性),一般分配的...

2018-05-27 16:45:07 216

原创 关于Android studio里ext中的$rootProject的总结

gradle统一入口版本管理的初衷是解决一个项目只要一个地方修改,各个有引用的模块便可以自动生效,从而达到了一个地方修改各个地方生效的好处,同时能保持gradle引用库版本的一致。使用方法如下:1.首先在项目级别的build.gradle文件底部添加如下信息:ext{ // Sdk and tools minSdkVersion = 15 targetSdkVersion ...

2018-05-20 09:53:19 15231 8

原创 Android Studio中DexFile.entries()获取不到应用相关包名问题。

这个问题是AS和Gradle打包机制问题引起的,通过编译的APK就不会有这个问题了。https://stackoverflow.com/questions/36572515/dexfile-in-2-0-versions-of-android-studio-and-gradle...

2018-04-22 22:14:41 1205

原创 关于AS中arr文件使用的总结

arr文件是谷歌自定义的一种可以将后台代码和资源文件打包成一个压缩包。1、生成arr文件生成arr文件,主要一般是在As项目中创建一个module过程,然后在里面写好代码,编译好模块即可,然后在build->outputs->aar文件夹下就可以看到编译好的arr文件。2、arr文件导入项目导入arr文件到实际的项目中,主要有以下两种方式。2.1 导入方式一在项目中新建模块的方式导入a...

2018-04-13 11:03:31 1917

原创 AS中V4包和V7包版本兼容问题

AS中V4包和V7包版本不一致的时候会导致编译不通过情况,一定要确保support v4版本和support v7版本是兼容的,否则会导致Unable to merge dex错误。

2018-04-12 17:45:56 1632

转载 Android Studio Jar包冲突总结

https://www.jianshu.com/p/1359affa4355

2018-04-12 09:29:28 1100

原创 Android自定义控件与绘制原理

一、自绘控件自绘控件主要是通过继承View,然后重写onDraw()方法,绘制逻辑在onDraw中调用即可,如果需要注册事件,只需要实现相关事件监听接口即可(比如OnClickListener);还有就是在自绘控件中如果需要重绘控件,只需要调用invalidate方法即可;在xml布局中使用只需要按普通控件使用即可。public class MyView extends View implemen...

2018-03-29 10:16:45 591

原创 android版本兼容问题总结

安卓版本兼容问题出现的背景是由于安卓随着版本不断的更新,会不断的增加API和废弃一些旧版本的API,而市面上手机安装的安卓操作系统版本不一致,就会导致安卓版本的兼容问题。平时开发中需要注意一下几点:1、我们开发的APP尽可能先满足市面上绝大部分机器的使用。(实用性原则)。2、了解清单文件中这两个属性minSdkVersion和targetSdkVersion的含义,minSdkVersion表示A...

2018-03-24 22:53:02 2197

转载 安卓屏幕分辨率兼容

1、屏幕适配相关基础概念1.1 屏幕尺寸屏幕尺寸是指设备的大小,是指手机屏幕对角线的物理尺寸(单位:英寸)。1英寸=2.54厘米,比如市面上的手机有5.0寸、5.5寸等等。1.2 屏幕分辨率屏幕分辨率是指手机横向像素和纵向像素点的总和。通常描述为:AxB(比如:1200x1920),其含义是手机横向有A个像素点,手机纵向有B个像素点。1px=1像素点,通常做UI设计的人员也会以px为单位出设计图的...

2018-03-24 22:18:53 840

原创 git使用总结

Git 是一个开源的分布式版本控制系统,git关联的每台计算机都存有完整的版本信息。1、git创建版本库(创建一个仓库)创建版本库首先创建好文件夹,然后在这个定位到这个目录通过命令git init,就创建好了一个仓库,比如需要创建git仓库prj01,只需要定位到prj01这个目录,然后执行 git init prj01指令 ,prj01仓库就创建好了。2、添加文件到git仓库2.1 使用git ...

2018-03-21 21:24:51 139 1

原创 Android 多线程编程

一、线程的基本用法1.1 使用Thread类class MyThread extends Thread{ @Override public void run() { // TODO Auto-generated method stub super.run(); //执行耗时任务 } }MyThread myThread=new MyThread();myTh...

2018-03-18 15:28:49 216

原创 JAVA并发编程

java并发编程:1、了解进程和线程的概念,通常一个应用程序可以看做一个进程,它需要分配占用CUP资源,一个进程包含一个或多个线程,多个线程共用进程申请的CUP资源。创建线程的方式一般是通过Thread类和Runnable接口。2、通过synchronzied和lock来实现并发操作。3、通过高版本JDK中java.util.concurrent包提供的API实现并发编程。...

2018-03-18 09:18:38 124

原创 Android进程通信机制

Android中跨进程通信的方式主要有以下几种方式:1、通过Intent实现跨进程。这种方式主要是通过意图去激活安卓组件的方式来实现跨进程的通信,比如调用系统相机的功能就是通过意图去激活的。(单向)2、通过content provider实现跨进程。这种方式主要是通过对外提供接口来实现数据共享的机制。(单向)3、通过Messenger实现进程通信。这种方式主要通过IBinder和Handler机制...

2018-03-17 10:43:33 364

转载 c/c++指针的理解

指针的本质是变量,可以是各种数据类型,定义一个指针 "*ip",其中 "ip" 需要赋于一个地址(可以用 & 符号获取其他变量的地址再赋值给 ip),而 "*ip" 是一个具体的值,即读取地址后获得的值;例子如下#include <iostream>using namespace std;int main(){ int var = 20; int *ip...

2018-02-26 10:43:52 238

转载 C语言应用领域

学完C语法后都不知道做什么项目。因为单纯学会C语法开发不了什么项目,你需要掌握C语言应用领域,然后学习周边相关知识。相对于PHP、Java,C语言的开发效率较低,没有框架甚至没有库。数据结构要自己写,对操作系统底层要很熟悉,代码很容易出现内存相关的错误。C语言主要用于驱动开发、操作系统、内核开发,嵌入式(单片机)、交换机、路由器等网络设备的开发。如果你想要会用C语言开发项目,就需要掌握相关领域知识...

2018-02-25 22:39:25 6246

原创 关于Python中pip的理解

1、python中pip是用来安装python第三方库的工具。2、Windows中配置pip,需要在Path环境变量中添加..\Python\Python36-32\Scripts;(备注:Python36-32是我本机python安装的根目录)。3、安装第三方库:pipinstall库名。(比如以requests库为例:pip install requests)

2018-01-25 22:45:33 1370

原创 python集成第三方python模块的问题

1、首先安装第三方模块,安装完成后会在\Lib\site-packages文件夹下有个第三方的Python模块。2、Windows环境下需要配置环境变量,添加目录引用,以requests模块集成为例,需要在PYTHONPATH环境变量中追加E:\Program Files\Python\Python36-32\Lib\site-packages\requests-2.1.0-py3.6.egg

2018-01-24 10:39:15 334

转载 pycharm集成IDE导入第三方python模块问题

pycharm导入第三方的Python库时,应该把 Settings -> Project Settings -> Project Interpreter指向安装目录的python执行环境,因为使用pycharm创建项目的时候会创建个自己的执行环境,而一般我们安装其他第三方的库时,都是安装在Python安装目录\Lib\site-packages下的目录,所以我们要做切换。来自这篇文章的启

2018-01-22 10:50:57 2611

转载 python3 做cgi 中文乱码问题

开头加入以下代码解决import codecs, sys sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer)

2018-01-20 18:31:43 2373 2

翻译 安卓四大组件之Activity

1、Activity生命周期,如下图:此外重点关注onSaveInstanceState和onRestoreInstanceState两个存储数据状态的方法。2、Activity启动模式1、标准模式standard(也是默认的模式)。采用这种方式启动activity,每次都会创建新的实例对象在任务栈中(原任务栈中,不会启动新的Task)。2、栈顶复用模式single

2018-01-02 22:27:23 214

原创 安卓Application级别之PackageManager

PackageManager主要是获取应用级别相关的东西,比如应用基础组件信息,应用权限信息,清单文件的一些基本信息和有关包相关的信息等。

2017-12-25 22:06:35 972

原创 html dom事件机制

一、事件的触发有三个阶段:1、事件捕获阶段。2、命中目标。(触发入口)3、事件冒泡阶段。二、事件中常用几个方法。1、event.stopPropagation();就是阻止事件的传播。2、stopImmediatePropagation 阻止事件的传播和阻止同一个对象绑定多个函数的情况。参考:http://www.cnblogs.com/

2016-09-28 22:21:07 606

转载 Java虚拟机的知识点

https://segmentfault.com/a/1190000002579346

2016-06-27 20:27:11 346

原创 多线程操作同一个方法的问题

多线程操作同一个方法的问题,注意方法中不能有全局变量。

2016-06-13 11:48:17 946

原创 关于安卓调试桥adb.exe被金山wps软件导致冲突问题。

1、adb.exe会被金山软件wps中的一个adb.exe程序强占端口的问题,导致安卓的adb.exe进程不稳定,老掉线的问题。

2016-05-16 15:43:00 1931 2

原创 关于纯css实现简单的下拉菜单

ul,li,a{           margin:0;           padding:0;        }        .menu > li {            display: inline-block; /*只有块元素width和heigth属性才会起作用*/            width: 200px;            backgrou

2016-05-07 14:24:32 494

原创 js中this指向总结

1、普通函数形式,这里面的this指的是window对象;如: function test() {       alert('test');}//普通函数调用形式test();2、js类(对象原型)的调用形式 ,这里面的this指的是对象本身。如:function TestClass(name) {        this.name=name;}

2016-03-26 14:53:31 589

未来中国移动互联网有六大发展趋势

这篇文章主要是讲未来中国移动互联网有六大发展趋势

2013-11-15

互联网本质

阿里巴巴“参谋长”曾鸣:何谓互联网的本质?这篇文章讲到什么是互联网本质。

2013-11-15

空空如也

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

TA关注的人

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