自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

陨落烟雨的博客

选择对的事坚持着!

  • 博客(35)
  • 收藏
  • 关注

原创 Android内存泄漏分析经验记录

Android内存泄漏分析记录MAT中显示的是GC根路径上的对象如果一个对象置空了,但是对象的引用还是存在,说明这个对象中还有对象被持有,不能被释放时刻记得内存泄漏的原因都是因为对象的生命周期不一致导致Android中是否有内存泄漏,分析起来很简单,进入一个Activity,退出以后destroy,这个时候如果Activity还存在内存当中,很有可能就是内存泄露。

2017-03-15 22:25:11 482

原创 C语言关于内存的一些描述

内存的一些描述为了更加好的理解Java中的内存模型,学习C中的内存分配会很有帮助。#include <stdio.h>#include <stdlib.h>int main() { int a[1024 * 1024 * 10];//静态内存分配,直接在栈内存 /** * c语言内存分配 * 1,栈区(自动释放、自动分配、超出限制提示stack overflo

2017-03-14 00:13:30 436

原创 C语言基本数据类型

基本数据类型不需要刻意记,用到的时候sizeof就可以知道大小是多少。输出的方式还是需要记一下。#include <stdio.h>#include <stdlib.h>//引入头文件//编译的时候去找对应的函数,名字不能一样,c++可以,它有命名空间。/** * int %d * short %ld * float %f * double %lf * char %c *

2017-03-14 00:08:39 445

原创 C语言动态内存分配

C语言动态内存分配C语言分配内存大小的一些方法malloc(内存大小),用来分配一个固定的内存大小realloc(需要扩容的首地址,分配的内存大小),用来进行内存重新分配(内存不够用了,就在原来的内存地址上去扩容)calloc(长度,步长),内存大小=长度*步长,效果与malloc一样#include <stdio.h>#include <stdlib.h>//创建一个数组,动态指定数组大

2017-03-13 21:09:00 517 1

原创 Java 注解

Java注解个人定义——注解这个东西,像是给Java代码打标签是的,给类、属性、方法都标记上一些东西,然后通过反射的方式去获取到这个标签,又根据这个标签来改变类、属性、方法的行为。

2016-11-07 23:22:37 329

原创 Activity setContentView流程

分析setContentView流程frameworks/base/core/java/android/app/Activity.java路径下找到入口public void setContentView(int layoutResID) { getWindow().setContentView(layoutResID); initActionBar();

2016-10-18 19:50:58 665

原创 UML学习笔记

什么是UML 1,图形化语言 2,需求,构建,配置开发软件阶段进一步认识UML 1,用于面向对象 2,开发人员、用户、维护人员沟通用 3,UML表示一个骨架、框架,开发的过程也可以描述 4,UML是一种语言 5,不同的图形代表不同的意思,如椭圆就是用例 6,UML的核心就是抽象UML中常用的元素 1,方的,有属性方法的集合 2,接口,接口是一个圆? 3,用例,系统的一个功能

2016-10-15 19:41:29 353

原创 Java 多线程控制

/** * 1,线程的名称,可以通过构造函数来初始化,或者setName * 2,线程的优先级,可以直接setPro * 3,sleep 阻塞状态,让出cpu * 4,join 合并线程,这里的合并指的是接上,编码效果上是顺序执行 * 5,isAlive 判断线程是否还活着 */public class ThreadControlMethod { public static vo

2016-10-13 14:30:37 371

原创 面向对象六大原则

优化代码的第一步 单一职责 SRP (Single Responsibility principle)一个类做的工作要纯粹,具体点就是分类要明确。书中例子就是ImageLoader只做加载的工作,而缓存的工作应该交给ImageCache来做。职责明确确实是代码优化的第一步。更稳定、更加灵活 开闭原则 OCP (Open close principle)可以认为一个类中的需要变化的逻辑,可以通过对变

2016-10-13 00:51:23 325

原创 Java 多线程通信

/** * 这个案例说是生产者与消费者的故事,柜台卖蛋糕,消费者要等生产者做好蛋糕才 * 能获取到,也就是做一个卖一个。 * Created by lcj on 16/10/11. */public class ThreadInfoExchange { public static void main(String arg[]) { Counter c = new Co

2016-10-12 22:52:46 346

原创 Java 多线程Timer 与 TimerTask 小案例

/** * 需要timer来做计时,TimerTask是Runnable的实现类,对run方法实现了倒 * 计时开始功能。 * Created by lcj on 16/10/11. */public class TimerTest { public static void main(String arg []){ Timer timer = new Timer()

2016-10-12 18:45:42 533

原创 Java 死锁demo

package com.jikexueyuan.myviewpager;/** * Created by lcj on 16/10/11. */public class DeadLockDemo { public static void main(String arg []){ new DeadLock(); } static class Tom{

2016-10-11 23:01:57 435

原创 Java单例设计模式

简单饿汉式//简单饿汉式单例public class Singleton { //随着类的加载而分配内存创建对象 private static Singleton mInstance = new Singleton(); //私有花构造函数,其它类无法进行new private Singleton(){ } //提供对象获取入口 public

2016-10-11 22:49:03 369

原创 Okhttp3 中响应回来的数据response.body().string()

response.body().string() 如果打印两次,会有一次是空的,暂时还不知道是为什么,记一笔。@Override public void onResponse(Call arg0, Response response) throws IOException { // TODO Auto-generated method stub

2016-04-11 22:56:49 16321 8

原创 Effective Java读书笔记一

Effective Java 读书笔记package com.lcj;public class Main { /** * #考虑使用静态工厂方法来替换构造器 * 优点 * 1,每个对象都有名字。 * 2,不必每次都 new 出一个对象。 * 3,多态的方式存在,返回的都是对象的子类。 * 缺点 * 1,类如果存在公有或则保护

2016-03-18 14:10:22 429

原创 Effective Java读书笔记一

Effective Java 读书笔记~~~ package com.lcj;public class Main {/** * #考虑使用静态工厂方法来替换构造器 * 优点 * 1,每个对象都有名字。 * 2,不必每次都 new 出一个对象。 * 3,多态的方式存在,返回的都是对象的子类。 * 缺点 * 1,类如果存在公有或则保护的构造器,就不能被子类化了(对象注册器中的构造器私有需

2016-03-18 14:08:08 376

原创 MakeFile编写注意事项

hello.out:max.o min.0 hello.c gcc max.o min.o hello.c -o hello.out 注意vi下的tab键与其它操作的不同 max.o:max.c gcc -c max.c min.o:min.c gcc -c min.c hell

2016-03-02 12:27:47 449

原创 android MVP设计模式实践

android MVP设计模式实践用MVP模式实现一个买花的example,MVP对应(Model-View-Presenter),先写下一个接口用与Presenter->View沟通。package com.aniu.mvpexample.app.buy_flower;interface IBuyFlowerView { //负责ui 进度 、提示、跳转提供操作接口 public

2015-11-20 17:05:31 829

原创 (C/C++学习笔记)线性表的顺序存储

线性表接口声明#ifndef __MY_SEQLIST_H__ #define __MY_SEQLIST_H__typedef void SeqList;typedef void SeqListNode;SeqList* SeqList_Create(int capacity);void SeqList_Destroy(SeqList* list);void SeqList_Clear(Se

2015-08-20 00:31:27 533

原创 Lua 语言基础

a = { 10, 20, "sdfsdf"}-- 数组定义a[1] = 1;a[2] = 3;a[3] = "hello world"-- 交换变量a,b = 1,2b,a = 2,111c = 1c = c + 1function add(a ,b) return a , bendprint(add(a,b))-- print("helle" +

2015-08-19 15:10:06 575

原创 (C/C++学习笔记)函数模板的深入理解

#include "iostream"#include "cstdlib"using namespace std;/*函数模板的深入理解 ― 编译器并不是把函数模板处理成能够处理任意类型的函数 ― 编译器从函数模板通过具体类型产生不同的函数 ― 编译器会对函数模板进行两次编译 ― 在声明的地方对模板代码本身进行编译 ― 在调用的地方对参数替换后的代码进行编

2015-08-19 10:09:53 540

原创 (C/C++学习笔记)函数模板遇上函数重载

/* 1 函数模板可以像普通函数一样被重载 2 C++编译器优先考虑普通函数 3 如果函数模板可以产生一个更好的匹配,那么选择模板 4 可以通过空模板实参列表的语法限定编译器只通过模板匹配*//*函数模板不允许自动类型转化普通函数能够进行自动类型转换*/#include <iostream>using namespace std;int Max(int a

2015-08-19 10:00:06 513

原创 动态代理应用场景 Java

package com.lcj.dongtaidaili;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class 动态代理 {/** * 动态代理: * 最明显的功能就是可以实现方法过滤,从而在需要的方法上添

2015-08-18 17:47:11 2091

原创 装饰设计模式 Java版

package com.lcj.zhuangshi;interface 动物{public void 吃();public void 叫();}public class zhuangshi { public static class 狗 implements 动物{ public void 吃(){ System.out.println("咳咳咳

2015-08-18 17:12:00 398

原创 (C/C++学习笔记)函数模板加强

#include "iostream"using namespace std;//定义模板函数,T 为传入的类型template<typename T>void sortArray(T *a, int num){ int i =0, j = 0; T tmp; for (i=0; i<num; i++) { for (j=i; j<num; j+

2015-08-18 09:57:04 458

原创 (C/C++学习笔记)泛型编程基础

#include "iostream"using namespace std;void swap(int &a, int &b){ int c ; c = a; a = b; b = c;}void swap(float &a, float &b){ float c ; c = a; a = b; b = c;}void

2015-08-18 09:52:41 576

原创 (C/C++学习笔记)指针做函数参数形成回调练习

指针做函数参数练习#include "stdio.h"#include "stdlib.h"#include "string.h"int add(int a, int b);//第二个函数 是函数指针 做函数参数 //在这个函数里面,就可以通过这个函数指针,去调用外部的函数,形成一个回调int libfun( int (*pDis)(int a, int b) );int main(v

2015-08-17 13:58:29 407

原创 (C/C++ 学习笔记)函数指针语法基础

#include "stdio.h"#include "stdlib.h"#include "string.h"int array2[10];//定义一个数组类型typedef int (ArrayType)[10];//定义一个指向数组的 数组指针类型 typedef int (*PArrayType)[10]; // int *void main_数组类型复习(){ //

2015-08-17 13:56:56 631

原创 (C/C++学习笔记)多继承的二义性

#include "iostream"using namespace std;class base{public: int k; void printI() { //cout<<i<<endl; }protected:private:};class base1 : virtual public base{public: int i;

2015-08-09 20:18:17 549

原创 (C/C++学习笔记)操作符重载的两种方法

#include "iostream"using namespace std;//a+biclass Complex{private: int a; int b; //通过友元函数实现+操作 friend Complex operator+(Complex &c1, Complex &c2);public: Complex(int a = 0, i

2015-08-08 14:39:06 709

原创 (C/C++学习笔记操作符重载入门)

#include "iostream"using namespace std;//a+biclass Complex{public: int a; int b;public: Complex(int a = 0, int b = 0) { this->a = a; this->b = b; } void pri

2015-08-08 14:12:31 529

原创 (C/C++学习笔记)Copy构造函数应用场景

Copy构造函数应用场景#include"iostream"using namespace std;class Location{private: int X,Y;public: Location(int xx = 0 , int yy = 0) { X = xx; Y = yy; cout << "Constructor

2015-08-07 09:55:44 745

原创 (C/C++学习笔记)指针做函数参数形成回调

#include "stdio.h"#include "stdlib.h"#include "string.h"int add(int a, int b);//第二个函数 是函数指针 做函数参数 //在这个函数里面,就可以通过这个函数指针,去调用外部的函数,形成一个回调int libfun( int (*pDis)(int a, int b) );int main(void){

2015-08-06 09:43:14 491

原创 (C/C++学习笔记)临时对象深入理解

临时对象深入理解/*1 C++中提供了初始化列表对成员变量进行初始化2 使用初始化列表出现原因:1.必须这样做:如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,而没有默认构造函数,这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。2、类成员中若有const修饰,必须在对

2015-08-05 14:31:56 729

原创 android 自定义控件基础之三种约束类型

随手记ORM —– 不想用SQL来操作数据库。本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用

2015-05-26 16:11:35 911

空空如也

空空如也

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

TA关注的人

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