自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

风中的劲草

纯属交流

  • 博客(123)
  • 资源 (64)
  • 问答 (1)
  • 收藏
  • 关注

原创 iOS AVAudioPlayer使用

文章目录 一、AVAudioPlayer 1、简介 2、优缺点 3、如何使用 4、扩展功能 (1) 如何做后台播放 (2) 如何做输出改变监听(拔出耳机音乐暂停播放) (3) 歌词轮播实现思路 (4) 关于NSTimer(循环引用、NSRunLoopMode)一、AVAudioPlayer1、简介 播放较大的音频或者要对音频有精确的,这种情况会选择使用AVFounda

2018-04-10 11:08:56 16938

原创 二分法查找θ(logn)

文章目录 一、递归查找 二、非递归查找一、递归查找int binarySearch1(int a[] , int low , int high , int findNum){ int mid = ( low + high ) / 2; if (low > high) return -...

2018-04-05 15:00:56 689

原创 Java join()方法的使用

文章目录 一、join()方法的作用 二、join()和start()调用顺序问题 三、join()方法实现原理一、join()方法的作用主要作用是同步,它可以使得线程之间的并行执行变为串行执行。在A线程中调用了B线程的join()方法时,表示只有当B线程执行完毕时,A线程才能继续执行。 看如下代码class JoinThread implements Runnable{ //重写

2018-04-04 16:06:18 21925 2

原创 Java JDK1.5后生产消费者模式解决方案

文章目录 一、思考 nofifyAll()方法是否存在效率问题? 二、新特性 1、概述 2、总结 三、新特性的应用 1、Lock 2、Condition 四、优化代码示例 1、代码 2、注意点 一、思考在上一篇博客 生产-消费者模式初探 中,我们用 while()循环判断标记位和notifyAll() 解...

2018-03-29 17:05:14 289

原创 Java 生产--消费者模式初探

生产者消费模式 : 顾名思义有生产者、消费者、资源 三个对象。生产者生产资源,消费者消费资源。类似于工厂流水线,多条生产线(生产者),多条包装线(消费线)。前面有介绍线程的 等待唤醒机制 我们可以回顾下,一条输入线程(生产者),一条输出线程(消费者),不同线程对同一资源进行操作,只不过操作的工作不一致。回顾下等待唤醒机制的代码(2条线程)//资源文件class Resourc...

2018-03-25 14:25:03 218

原创 iOS 音效播放

在ios中,音频播放从形式上可以划分成两种 : 音效播放 和 音乐播放。音效播放通常指一些点缀性质音频,对于这类音频不需要进行进度、循环等控制。在ios中我们用 AudioToolbox 来完成音效播放。1、使用场景( 1 ) 接受推送的提示音 ( 2 ) 二维码扫描成功的提示音(类似微信) …..2、本质将短音频注册到系统声音服务3、局限性( 1 ) 播放时间不...

2018-03-01 15:49:50 1328

原创 Java 线程间通信-等待唤醒机制

在上一篇博客Java 线程通信的安全问题(同步) 遗留一个问题,当输入线程(Input)操作资源(res)完成后,失去执行权,输出线程(outPut)在一些短时间内刻获取cpu执行权,就会疯狂打印这结果。那么,我们如何解决这个问题呢?分析: 我们期望的结果是,当输入线程一次(Input)操作资源(res)后,我们希望输入线程 (Input)失去执行权,让输出线程(outPut)获取cpu执行权,当输

2018-01-13 21:51:34 321

原创 Java 线程通信的安全问题(同步)

线程间的通信 : 其实就是多个线程操作同一资源,但是操作的动作不同。注意: 1、多个线程 2、同一资源 3、操作动作不同例如一个场景: 输入线程(Input) 和 输出线程(outPut) ,输入线程负责操作资源(Resource),Resource 有 name(String) 和 sex(String)两个变量,输入线程(Input) 负责为 Resource 的成员赋值,输出线程

2018-01-07 17:33:10 305

原创 iOS 2018年CocoaPods安装教程

一、安装 CocoaPods1、查看当前ruby源gem sources -l2、移除ruby源gem sources --remove https://rubygems.org/3、添加新的ruby源gem sources -a http://gems.ruby-china.org/4、安装cocoapodssudo gem install cocoapods出现如下错误:ERROR: Whil

2017-12-18 15:12:25 3587 1

原创 Java 从线程返回数据

从线程中返回数据的两种方法1、通过类变量和类方法返回数据2、通过回调函数返回数据

2017-12-06 20:59:50 13617 1

原创 Java 向线程传递数据

向线程传递数据的三种方法:1、通过构造函数传递数据2、通过变量和方法传递数据3、通过回调函数传递数据在传统开发模式中,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果。但是在多线程的异步开发模式下,数据的传递和返回与同步开发模式有很大的区别。由于线程的运行和结束时不可预料的,所以在传递和返回数据时就无法像函数一样通过函数参数和return 语句来返回数据

2017-12-05 23:07:00 821

原创 Java 死锁

当一个线程永远地持有一个锁,并且其他线程都尝试去获得这个锁时,那么它们将永远被阻塞,这个我们都知道。如果线程A持有锁L并且想获得锁M,线程B持有锁M并且想获得锁L,那么这两个线程将永远等待下去,这种情况就是最简单的死锁形式。在数据库系统的设计中考虑了监测死锁以及从死锁中恢复,数据库如果监测到了一组事务发生了死锁时,将选择一个牺牲者并放弃这个事务。Java虚拟机解决死锁问题方面并没有数据库这么强大,当

2017-12-04 15:23:01 218

原创 Java synchronized关键字

先看一个场景: 两个储户分别同时往银行存300元,每次存100,分三次存。代码如下 ://银行public class Bank { private int sum = 0; public void add(int n ) { sum += n; System.out.println(sum); }}//用户 public class

2017-11-27 22:49:18 470 1

原创 Java 线程的初识

文章目录 一、进程与线程 1、什么是进程 2、什么是线程 3、线程和进程之间的关系 4、进程和线程内存方法的知识 5、线程的分类 二、线程的创建 1、使用Thread 类创建线程 2、使用Runnalbel 接口创建线程 三、线程的基本属性 1、线程栈 2、线程名 3、获取当前线程

2017-11-07 21:34:14 443

原创 基础算法之 排序

概念 :每一趟从待排序的数据元素中选出最 ( 大/小 ) 值的一个元素,顺序放在已排好序的数列的最后或最前,直到全部待排序的数据元素排完。 如下图下面演示java示意代码: 方案一 :int [] arrays = {4,13,56,42,78,0};for(int i = 0; i< arrays.length-1;i++){ for(int j = i+1; j< arrays.lengt

2017-11-01 17:20:56 278

原创 iOS 数据持久化之 归档

文章目录 一、概念 1、归档 2、解档 二、归档使用 1、遵守NSCoding协议 2、协议方法的实现 三、归档使用的进一步思考 当对象成员变量非常多,NSCoding 两个协议方法 将会变得非常冗长,有什么办法可以解决 ?一、概念1、归档 归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存。即数据的存储过程。...

2017-10-28 16:05:16 367

原创 Java 异常总结

一、什么是异常1、异常是对问题的描述,将问题进行对象封装二、异常体系 Throable | –Error | – Exception |–RuntimeException三、异常体系的特点异常体系中的所有类及建立的对象都具备可抛性 也就是说可以被 throw 和 throws 关键字所操作 只有异常体系具备这个特点三、throw 和 thr

2017-08-06 22:21:26 611

原创 Java 方法被覆盖时异常特点

异常在子父类覆盖(方法重写)中的体现1、子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常 或 其子类异常2、如果父类方法 抛出 多个异常,那么子类在覆盖 该方法时,只能抛出 父类 异常的子集3、如果父类 或者 接口 方法 中没有抛出异常,那么 其子类在覆盖 方法 时,也不可以抛出异常,如果子类方法发生了异常,就必须自己进行try-catch处理,绝对不能抛。

2017-08-06 20:45:22 1198 1

原创 Java checked 异常 和 RuntimeException(运行时异常)

目录 一、运行时异常 1、什么是RuntimeExceptioin 2、运行时异常的特点 3、如何运用运行时异常 二、运行时异常和ckecked异常的区别 1、机制上 2、逻辑上 一、运行时异常1、什么是运行时异常程序在运行过程中出现的异常,RumtimeException 是 Exception 的一个子类 我们可以查看Jav

2017-08-04 23:34:22 22293 2

原创 Java 类图(UML)

文章目录 一、UML基础知识扫盲 1、概念 2、作用 3、分类 二、如何用类图表示一个类 1、- private 2、+ public 3、# protected 4、UML属性(Attribute)表达式 5、UML方法(Operation)表达式 6

2017-07-19 16:51:29 26272 3

原创 Java API文档的生成(javadoc.exe)

协作开发过程中,可能别人需要用你封装的类库,这就避免不了,你要告诉他,我这个类的方法分别是实现什么功能,方法需要传入什么类型的参数表和方法是否会有返回值等。如果能生成简要的类使用说明文档,统一格式说明,是不是能减少一些沟通成本。那么如何生成API帮助文档呢?先结合下eclipse做下说明详细流程如下图选择功能,导出 2、选择javadoc 3、配置 javadoc ncommand ,选择生成A

2017-07-18 23:53:04 3017 1

原创 Java 对象的初始化过程

我们都知道,创建对象是由 new关键字调用构造方法 返回类实例。例如 : Person jack = new Person();这句话到底做了什么事情呢 ? 其实就是讲对象的初始化过程。1、 new 用到了Person.class,所以会先找到Person.class文件,并加载到内存中 2、执行该对象的static代码块(静态初始块)。(如果有的话,给Person.class类进行初始化)

2017-07-16 22:27:29 655

原创 Java 单例

目录 一、什么是设计模式 二、单例设计模式 三、如别保证对象唯一性 四、如何创建单例 1、饿汗式 2、懒汗式 五、如何验证对象唯一性一、 什么是设计模式解决某一类问题最行之有效的方法二、单例设计模式解决一个类在内存中只存在一个对象三、如何保证对象唯一性1、为了避免其他程序过多创建该类对象,先禁止其他程序创建该类对象(私有化...

2017-07-16 22:05:49 284

原创 Java 数组

文章目录 一、基本概念 二、如何定义数组 1、声明 2、赋值 三、数组的遍历 1、for循环 2、foreach 循环 四、数组的内理 1、栈 (stack) 2、堆(heap) 五、数组排序 1、选择排序

2017-07-07 16:18:55 420

原创 Java 流程控制语句

流程控制语句需要掌握的内容有if-else(判断题) 、switch(选择题)、while(循环语句)、do-while(循环语句)、for循环、和foreach。还包括: continue、break 关键字的使用。内容就不赘述了,自行百度,列举下需要注意的地方1、关于swiftch 后面小括号的值 只能 是 int 、byte、char、short类型 2、 swiftch default

2017-07-02 21:11:57 630

原创 iOS NSoperation

文章目录 一、NSOperation简介 二、NSOperation和NSOperationQueue的基本使用 1、创建任务 2、创建队列 3、将任务加入到队列中 三、控制串行执行和并行执行的关键 四、操作依赖 五、一些其他方法一、NSoperation的简介NSOperation是苹果提供给我们的一...

2017-06-30 17:36:12 377

原创 Java 运算符

哎,运算符忘记写了。先做个目录。一、算术运算符1、 加 : + 2、减 : - 3、乘 : * 4、取整: / 5、 取余 : % (涉及到正负号的,以左边操作数为准) 7、递增 : ++ 8、递减 : – public static void main(String[] args) { int a = 5; int b,c,d,f,g,h;

2017-06-27 22:48:57 410

原创 Java String和基本数据类型之间的转换(包装类)

一、String 转化成 基本数据类型 利用基本数据类型对应的包装类的parseXxx() 或 valueOf() 方法 注意 : String 对象的字面量 是 数字类型。否则会报异常(NumberFormatException)。例如 : //定义一个 str 对象,字面量为 "14"String str = "14";// 1) 利用基本数据类型对应包装类的par

2017-06-27 22:14:28 3838

原创 Java 包装类初识

一、包装类的引入 Java 共有8种基本数据类型:int/double/float/byte/char/boolean/short/long 这8种基本数据类型的数据不具备”对象”的特性. 例如 : 没有属性、没有方法可以被调用 为了让每个基本数据类型具备对象的特性,Java为每个基本数据类型头提供了一个包装类。二、基本数据类型和包装类之间的对应关系注意: 并且在8种包装类中,除了Charact

2017-06-26 22:19:29 325

原创 Java StringBuffer

知识背景: Java 中规定,一旦声明String的内容就不可再改变。如果要改变,改变肯定是String的引用地址。 如果一个字符串需要经常被改变,使用StringBuilder或 StringBuffer,将其声明为可变字符串。一、StringBufferStringBuffer 可变字符串,线程安全(所有方法返回值前面有synchronized关键字修饰,当它用来修饰一个方法或者一个代码块的时候

2017-06-21 22:56:33 338

原创 Java StringBuilder

一、StringBuilder 在Java中,除了可以使用 String 类来存储字符串,还可以使用 StringBuilder 类或 StringBuffer 类存储字符串。当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。看下文档解释:(截取部分)StringBuffer: String buffers are

2017-06-20 21:51:41 400

原创 Java String常用的方法

1、创建一个字符串String str = new String("Java");2、判断字符串是否为空boolean isempty = str.isEmpty();System.out.println("字符串是否为空:"+isempty); // false3、获取字符串的长度int lenght = str.length();System.out.println("

2017-06-16 15:09:12 686

原创 iOS GCD

1、什么是GCD?GCD全称是Grand Central Dispatch,可译为“强大的调度器”。iOS 4开始引入的新一代的多线程编程技术。 开发者只需定义想执行的任务并追加到适当的Dispatch Queu中,GCD就能生成必要的线程并有计划的执行任务。2、什么是任务?想要做什么事情,在GCD中是放在block中的。3、什么是串行队列 和 并行队列 ?串行队列 (DISP...

2017-06-15 17:04:41 640

原创 Java 字符串初识

一、字符串(String)1、在 Java 中,字符串被作为 String 类型的对象处理。String 类位于 java.lang 包中。默认情况下,该包被自动导入所有的程序。2、如何初始化字符串//定义一个字符串String s1 = "Java";//创建一个空字符串String s2 = new String();//创建一个空字符串,并赋值String s3 = new String

2017-06-14 17:28:05 448

原创 Java 如何抛出异常、自定义异常

一、异常的抛出 1、定义 : 一个方法不处理这个异常,而是调用层次向上传递,谁调用这个方法,这个异常就由谁来处理。2、throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置: 方法体内)3、throws : 如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异

2017-06-13 23:18:02 325480 19

原创 Java 异常处理机制(异常链)

JVM (Java 虚拟机 的缩写)用方法调用栈来跟踪一系列的方法调用过程。该堆栈保存了每个调用方法的本地信息。当一个新的方法被调用时,JVM把描述该方法的栈结构置入栈顶,位于栈顶的方法为正在执行的方法。如果在执行的方法过程中抛出异常,JVM必须找到能捕获该异常的catch块 ( 1 ) 它首先观察当前方法是否存在catch块,如果存在,就执行该catch代码块 ( 2 ) 如果不存在,

2017-06-10 17:31:49 1771

原创 Java 处理异常

Java 中使用 try-catch 或 try-catch-finally 来捕获并处理异常。一、关于try - catch基本语法try{//一些会抛出异常的方法}catch(Exception e){//处理该异常的代码块}如果try块中的代码抛出异常会发生什么呢?抛出异常的方法终止执行,程序的控制权将被移交给catch块中的异常处理程序,那么catch块中的代码如何写呢?可以发出一些

2017-06-08 22:36:39 2881

原创 Java 异常的初识

一、什么是异常 阻止当前方法或作用域,称之为异常二、异常处理的作用正确处理异常能够将异常提供给编程人员或用户,使本来已经中断了的程序以适当的方式继续运行或者是退出,并且能够保存用户当前的操作,或者进行数据回稳,最后把占用的资源释放。二、异常的体系结构Throwable 是java.lang 包中一个专业用来处理异常的类,他有两个子类,即Error和Exception。Error : 用来处理程序运

2017-06-06 22:59:50 342

原创 iOS UIImage类 imageNamed方法使用不当

今天碰到这么一个问题,push到一个新页面,该页面用for循环UIImage的imageNamed 去批量加载图片,赋值给imageview,执行animationImages动画。第一次push发现存在延时,第二次后就不出现延时状况。经查找,发现是由imageNamed这个方法导致的。官方文档解释 (command+shift+0)Use the imageNamed:inBundle:compa

2017-06-06 17:25:53 4285

原创 Java 接口的继承

我们先来回顾下接口的相关知识接口是规范,用interface关键字修饰接口,接口是是一组抽象方法定义和常量的集合,接口间的继承是多继承关系。接口的定义public 接口名{/*零个到多个的常量定义零个到多个的抽象方法的定义*/}实现接口修饰符 class 类名 extends 父类名 implements 接口1,接口2,...{// 如果继承的类是抽象类,必须实现父类的抽象方法// 实

2017-05-29 17:18:17 3495

Java 字符串和基本数据类型之间的转换

Java 字符串和基本数据类型之间的转换

2017-06-27

Java 包装类

Java 包装类的使用说明

2017-06-26

Java StringBuffer

Java 可变字符串StringBuffer学习demo

2017-06-21

Java StringBuilder

Java 可变字符串 StringBuilder 的 学习 (备注: 如果解压后是乱码,请用普通文本打开,重新复制到对应文件即可)

2017-06-20

Java 字符串常用方法

Java String常用的方法

2017-06-16

iOS 多线程

ios GCD 知识点整理

2017-06-15

Java 字符串

Java String的初识

2017-06-14

Java 自定义异常和抛出异常

Java 自定义异常和抛出异常的练习demo

2017-06-14

Java 处理异常

Java 异常处理的初识,适合入门学习

2017-06-08

Java 接口多继承

Java 接口多继承和类实现多个接口的demo

2017-05-29

Java 接口

Java 接口的初识学习demo

2017-05-25

Java 抽象类

Java 抽象类的学习

2017-05-23

Java 多态中的类型转换

Java 多态中的类型转换

2017-05-22

Java 面向对象三大特性之多态

Java 面向对象三大特性之封装性的学习

2017-05-20

Java Object类认识

Java 对Object类的认识和equals()方法和== 的对比

2017-05-18

Java super关键字使用

Java super关键字使用demo

2017-05-16

Java final关键字

Java final关键字的学习demo

2017-05-13

Java 继承和方法重写

Java 继承知识点的相关学习。

2017-05-13

Java 内部类

Java 的使用 分别介绍了 成员内部类、方法内部类、静态内部类

2017-05-08

Java 包的使用

Java 使用包管理Java中的文件。 包机制。

2017-05-06

iOS KVC实现原理

iOS KVC实现原理,供参考学习。适合有一定基础的。自己研究的,不喜勿喷。

2018-05-05

iOS AVPlayer播放暂停

iOS AVPlayer播放暂停功能示例demo,供视频初学者学习。

2018-04-17

iOS 音频队列

iOS 音频队列之播放在线音频示例demo。供初学者学习使用。

2018-04-16

iOS 音频录制

iOS AVFoundation框架下的AVAudioRecorder录音机的实现。

2018-04-13

iOS 本地音乐播放

iOS avaudioplayer 本地音乐播放器的学习demo,供除学习学习时候。

2018-04-10

Java JDK1.5 生产消费者模式解决方案

Java JDK1.5后新特性,用Lock和Condtion对象解决线程安全问题,提高了效率。

2018-03-29

Java 生产消费者模式

Java 生产消费者模式练习demo,供初学者入门。资深工程师请绕路。

2018-03-25

Java 等待唤醒机制 代码优化

Java 线程 等待唤醒机制 代码优化 适合初学者学习参考

2018-01-14

Java 等待唤醒机制

Java 等待唤醒机制,适合入门者学习的demo,可下载学习。

2018-01-13

线程通信安全问题

java ,线程通信安全问题 ,属于入门代码,简单。 不喜勿喷呀。

2018-01-11

ios touchid校验

ios touchid 校验学习demo 。如有不对,欢迎指正。资源好的话,点下赞。

2017-11-10

ios runtime消息转发机制

ios runtime 消息转发机制。主要描述runtime消息发送的三次补救机会。

2017-10-31

ios 解归档

ios 归档的演示 代码,仅供学习。尽可能去参考博客学习。

2017-10-28

Java 匿名内部类

Java 匿名内部类的学习demo

2017-08-02

ios 通知实现原理

ios 模拟通知实现原理

2017-07-27

ios KVO实现原理

ios kvo原理的实现demo

2017-07-25

ios kvo使用

ios kvo 简单使用。

2017-07-24

Java 帮助文档

Java API 文档生成

2017-07-18

设计模式之单例

Java 单例设计模式

2017-07-16

iOS 多线程NSoperation

ios 多线程NSoperation

2017-06-30

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

TA关注的人

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