*编程语言
文章平均质量分 54
奔跑吧,行者
这个作者很懒,什么都没留下…
展开
-
struct和union计算方法
规则:1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍;2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素的整数倍;同时有#pragma pack修饰的情况,关于struct请详细参考另外一个帖子。3,这里所说的struct和union的对齐,是指其作为其他复杂对象中的元素的转载 2015-06-04 10:54:20 · 1102 阅读 · 0 评论 -
IOS UItextfield 和 UItextView 键盘隐藏
点击return隐藏ios 提供的键盘并不能自己隐藏,因此需要我们去实现UITextField.h文件实现UITextFileldDelegate.m文件中-(void)viewDidLoad{ textfield.delegate = self;}-(BOOL)textFieldShouldReturn:(UITextField *)text原创 2015-12-25 09:30:17 · 1081 阅读 · 0 评论 -
使用java语言实现进制之间的相互转换
使用java语言实现进制之间的相互转换思想:16进制占4位二进制位 8进制占3位二进制位 二进制占1位二进制位 首先取二进制数最后4位 然后向右移位使用>>>符号是因为防止负数的原因。class Demo { public static void main(String[] args) {// toHex(26); toBinary(-6);// toOctal原创 2016-10-24 20:40:36 · 4231 阅读 · 2 评论 -
java语言数组工具类的建立和静态的使用
/**建立一个用于操作数组的工具类,其中包含着常见的对数组操作的函数如:最值,排序等 。*/public class ArrayTool{ private ArrayTool(){} //该类中的方法都是静态的,所以该类是不需要的创建对象的。为了保证不让其他成创建该类对象 //可以将构造函数私有化。 /** 获取整型数组的最大值。 @param arr 接收一个元素为int原创 2016-10-26 21:20:21 · 1253 阅读 · 0 评论 -
单例设计模式-饿汉式和懒汉式
设计模式:对问题行之有效的解决方式。其实它是一种思想。1,单例设计模式。解决的问题:就是可以保证一个类在内存中的对象唯一性。必须对于多个程序使用同一个配置信息对象时,就需要保证该对象的唯一性。如何保证对象唯一性呢?1,不允许其他程序用new创建该类对象。2,在该类创建一个本类实例。3,对外提供一个方法让其他程序可以获取该对象。步骤:1,私有化原创 2016-10-26 22:25:43 · 562 阅读 · 0 评论 -
java语言中抽象类的介绍和应用
抽象类:抽象:笼统,模糊,看不懂!不具体。特点:1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。 抽象方法必须定义在抽象类中。该类必须也被abstract修饰。2,抽象类不可以被实例化。为什么?因为调用抽象方法没意义。3,抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化。 否则,这个子类还是抽象类。思考:1,抽象类中有构造函数吗? 有...原创 2016-10-27 23:57:07 · 1104 阅读 · 0 评论 -
java语言异常的使用方法和处理经验
异常处理的捕捉形式:这是可以对异常进行针对性处理的方式。具体格式是:try{//需要被检测异常的代码。}catch(异常类 变量)//该变量用于接收发生的异常对象{//处理异常的代码。}finally{//一定会被执行的代码。}异常处理的原则:1,函数内容如果抛出需要检测的异常,那么函数上必须要声明。否则必须在函数内用tr原创 2016-11-03 21:53:52 · 688 阅读 · 0 评论 -
java语言多线程通信--等待唤醒机制
/*等待/唤醒机制。 涉及的方法:1,wait(): 让线程处于冻结状态,被wait的线程会被存储到线程池中。2,notify():唤醒线程池中一个线程(任意).3,notifyAll():唤醒线程池中的所有线程。这些方法都必须定义在同步中。因为这些方法是用于操作线程状态的方法。必须要明确到底操作的是哪个锁上的线程。为什么操作线程的方法wait no原创 2016-11-30 22:18:23 · 780 阅读 · 0 评论 -
Java语言-Map的遍历
由于示例比较简单,话不多少,看代码:import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;import java.util.Map.Entry;public class MapDemo { /** * @see Map的遍历,包含key的遍历...原创 2018-03-05 22:34:58 · 338 阅读 · 0 评论 -
Java语言-集合和Map知识梳理
1.1 List、Map、Set三个接口存储元素时各有什么特点参考答案:1)List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。2)Set是一种不包含重复的元素的Collection,即任意的两个元素e1和e2都有e1.equals(e2)=false,Set最多...原创 2018-03-05 22:40:30 · 417 阅读 · 0 评论 -
UITableViewController和UIRefreshControl实现下拉刷新功能
随着下拉刷新模式的影响力越来越大,苹果不得不考虑把它列入自己的规范之中,并在iOS 6 API中推出了下拉刷新控件. 在 iOS 6 之 后 , UITableViewController 添 加 了 一 个 refreshControl 属 性 , 这 个 属 性 保 持 了UIRefreshControl的一个对象指针。 UIRefreshControl就是iOS 6为表视图实现下拉刷新而提供原创 2015-12-24 11:25:03 · 735 阅读 · 0 评论 -
ios开发 UITableViewController和 UITableView
iOS中显示数据列表最常用的一个控件,支持垂直滚动UITableView 的两种内置样式UITableViewStylePlain UITableViewStyleGrouped数据源 (dataSource) 和代理 (delegate)l UITableView需要一个数据源(dataSource)来显示数据 ,UITableView会向数据源原创 2015-12-23 18:00:36 · 1807 阅读 · 0 评论 -
NSBundle(获取资源路径方法)的相关使用方法和注意事项
1、[NSBundle mainBundle],文件夹其实是Group,如左侧的树形文件管理器Build之后,文件直接就复制到了根目录下,于是读取的方法,应该是这样:[objc] view plaincopyNSString *earth = [[NSBundle mainBundle] pathForResource:@"Bra原创 2015-12-09 13:37:21 · 6572 阅读 · 0 评论 -
Objective-C中的instancetype和id区别
一、什么是instancetypeinstancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象。我们都知道未知类型的的对象可以用id关键字表示,那为什么还会再有一个instancetype呢?二、关联返回类型(related result types)根据Cocoa的命名规则,满足下述规则的方法:1、类方法转载 2015-07-02 14:23:23 · 635 阅读 · 0 评论 -
Objective-C基础语法快速入门
Objective-C是Mac软件开发领域最主要的开发语言,假如我们对C语言已经很熟悉或者具有面向对象语言的基础,对于我们学习Objective-C将会非常有用。方法调用(Calling Methods)为了能够尽快上手,我们先来看一些简单的例子。Objective-C语法里面基本的方法调用是这样的:[object method]; [object meth原创 2015-08-07 09:25:50 · 2443 阅读 · 0 评论 -
objective-c 中随机数的用法 (3种:arc4random() 、random()、CCRANDOM_0_1() )
1)、arc4random() 比较精确不需要生成随即种子 使用方法 : 通过arc4random() 获取0到x-1之间的整数的代码如下: int value = arc4random() % x; 获取1到x之间的整数的代码如下:原创 2015-08-07 15:13:18 · 2315 阅读 · 0 评论 -
objective-c中类的申明、实现、访问
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2015-08-18 09:56:36 · 1719 阅读 · 0 评论 -
objective-c中如何从UIImage中获取像素信息
翻译自Obtaining pixel data from a UIImageUIImage是我们在ios中非常熟悉的数据结构了,用它来存储图片非常方便。在OpenCV类库中,使用是另外的数据结构来存储图片,这时,我们就面临一个问题:如何才能把UIImage装换为其他类库也能识别的数据结构呢? 尽管不同的图片处理类库有不同的数据结构来处理图片,但是有一种结构是被所有的图片处理类库所识别的,那就是ra翻译 2015-08-18 10:03:03 · 6585 阅读 · 5 评论 -
iOS 类簇(Class Cluster)使用心得
我们都知道在iOS中类簇的使用是非常普遍的,比如NSNumber、NSString、NSArray等等都是类簇。我们以NSNumber举例来说,对于int,bool, unsigned int 等等数据类型,我们如何把它们封装成类的形式呢? 通常情况下我们可能会想到,对于每一种数据类型独立封装成一个类,比如对于int 类型我们可以做一个NSInt的类,以此类推。这样想是正确的,但是,我们再来想想这样原创 2015-08-18 10:10:46 · 2494 阅读 · 1 评论 -
NSdata 与 NSString,Byte数组,UIImage 的相互转换
NSdata 与 NSString,Byte数组,UIImage 的相互转换1. NSData 与 NSStringNSData-> NSStringNSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSDataNSString *aString =原创 2015-09-17 12:51:27 · 920 阅读 · 0 评论 -
IOS之同步请求、异步请求、GET请求、POST请求
1、同步请求可以从因特网请求数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,2、异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行3、GET请求,将参数直接写在访问路径上。操作简单,不过容易被外界看到,安全性不高,地址最多255字节;4、POST请求,将参数放到body里面。POST原创 2015-10-30 09:52:49 · 1204 阅读 · 1 评论 -
UITableView中Cell使用标识符重用机制
UITableView继承自UIScrollview,是苹果为我们封装好的一个基于scroll的控件。上面主要是一个个的UITableViewCell,可以让UITableViewCell响应一些点击事件,也可以在UITableViewCell中加入UITextField或者UITextView等子视图,使得可以在cell上进行文字编辑。UITableView中的cell可以有很多,一般会通过重用c原创 2015-12-09 11:40:28 · 824 阅读 · 0 评论 -
Java-IO[实现对目录的遍历以及删除(包含子目录)]
package kevin.io;import java.io.File;public class DeleteDirectory { public static void main(String[] args) { DeleteDirectory delDir=new DeleteDirectory(); try { delDir.listDirectory(new F...原创 2018-03-18 17:38:37 · 916 阅读 · 0 评论 -
Java-IO[列出目录中指定文件类型的所有文件(包含子目录)]
列出目录中指定文件类型的所有文件可以选择是否列出子目录中文件,也可以指定多种扩展名设计步骤: 1.方法listFile (File dir ,FileFilter ff,boolean recursive )方法,把dir目录中 经过ff过滤的文件添加到List的对象中存储 ,使用recursive判断是否过滤子 目录中的文件添加到List 的对象中 2.列出指定 目录下指定扩展名的所有文...原创 2018-03-19 20:34:06 · 4102 阅读 · 0 评论 -
运算符*和指针以及前++、后++总结
*p++,由于++和*同优先级,结合方向自右而左,等价于*(p++)。*(p++)与*(++p)作用不同。若 p 的初值为 a,则*(p++)等价 a[0],*(++p)等价 a[1]。(*p)++表示 p 所指向的元素值加 1。原创 2015-06-04 10:43:42 · 1296 阅读 · 0 评论 -
C++【多态】和【覆盖】
多态=虚函数+指针/引用关于多态: 形状:位置,绘制 矩形:宽度、高度,绘制 圆形:半径,绘制 Shape / \ Rect Circle 如果将基类中的某个成员函数声明为虚函数,那么其子类中与该函数具有相同原型的成员函数就也成为虚函数,并对基类中的版本构成覆盖(override)。通过一个指向子类对象的基类指针,或者引用子类对象的基类引用,调用这个虚函数时原创 2015-10-27 16:28:06 · 1217 阅读 · 0 评论 -
C++【错误和异常的处理】
一、程序的错误1.编码错误:编译阶段2.设计错误:测试阶段3.环境错误:使用阶段4.应用错误:测试和使用阶段二、错误处理机制1.通过返回值处理错误当一个函数在执行过程中发生了某种错误,通过函数的返回值告诉函数调用者。malloc/fopen - 成功返回有效指针,失败返回NULL返回无效值表示失败返回0表示成功,返回-1表示失败1)优点:简单、避免崩溃、原创 2015-10-27 16:42:13 · 2050 阅读 · 0 评论 -
C++【类与访控属性】
学生 属性:姓名、年龄 行为:学习类就是通过对属性和行为的抽象,描述一组对象的语法结构。1.类的定义class 类名 {};如class Student {};2.通过成员变量表达属性class 类名 { 类型 成员变量名;};如class Student { string m_name; int m原创 2015-10-28 10:38:50 · 903 阅读 · 0 评论 -
C++【基础常识】
第一个C++程序1.编译器:g++2.扩展名:.cpp/.cc/.cxx/.C3.头文件:C++的标准头文件都没有.h扩展名 C++对C兼容的头文件4.输入输出:cin/cout/cerr,>>/scanf (...) -> fscanf (stdin, ...)printf (...) -> fprintf (stdout, ...)5.名字空间原创 2015-10-28 10:52:00 · 683 阅读 · 0 评论 -
C++【函数(重载/缺省参数/哑元/内联)】
1.重载在同一个作用域中函数名相同但参数表不同的函数构成重载关系。1)C++是通过换名,即将参数表信息汇合到函数名中,实现重载。通过在函数声明前写上extern "C"显式地告知编译器对该函数用C的方式生成接口,即不做换名。当然不换名的函数无法实现重载。2)函数重载不仅和函数的定义有关,而且与函数调用的上下文有关,只要在同一个作用域中可见,且需要通过重载解析规则确定调用版本,即原创 2015-10-28 10:55:24 · 1338 阅读 · 0 评论 -
C++【堆内存的动态分配与释放(new/delete)】
C语言分配动态内存常用函数:malloc/calloc/realloc/free C++语言用new/delete:详见memory.cpp 1.通过new运算符分配单个变量 数据类型* 指针变量 = new 数据类型(初值); int* p2 = new int;int* p3 = new int (100); 2.通过new运算符分配数组 int* p4 = new int[5]原创 2015-10-28 10:59:37 · 3303 阅读 · 0 评论 -
C++【引用与指针】
引用 1.引用即别名 int a = 10; int& r = a; // r是a的一个别名 r = 20; cout << a << endl; // ? 20 2.引用必须初始化 int& r; // ERROR ! 3.引用一旦初始化,就不能再引用其它变量 int a = 10; int& r = a; int b = 20; r = b; // b -> a 4.引原创 2015-10-28 11:01:37 · 758 阅读 · 0 评论 -
C++【显示类型转换】
显示类型转换 C:目标类型变量 = (目标类型)源类型变量; int n; char c; c = (char)n; C++:五种转换形式 1.C风格的另一种写法 目标类型变量 = 目标类型 (源类型变量); int n; char c; c = char (n); 2.静态类型转换:static_cast<目标类型> int n; char c; c = static_原创 2015-10-28 11:04:20 · 736 阅读 · 0 评论 -
详解 C/C++中struct和typedef struct
今天在linux下使用gcc编译的时候忽然出现了【错误:‘s’的存储大小未知】其中s是结构体变量,然后就仔细观察错误原因,结果竟然是......现总结如下:1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的原创 2015-11-17 11:12:04 · 1915 阅读 · 0 评论 -
C++【拷贝构造】和【拷贝赋值】(实现自定义的string类)
拷贝构造的形式,何种情况会调用拷贝构造。 1.构造副本 2.以值的方式传参 3.以值的方式返回缺省的拷贝赋值只能实现浅拷贝,因此会带来对象与其副本之间的指针耦合问题,为了实现深拷贝,就需要自己定义拷贝赋值,以获得完整意义上的对象副本。 实现步骤: 1)防止自赋值 2)释放原内存 3)分配新内存 4)获得新数据 5)返回自引用练习:实现一个String类,可以通过C风格的字符串(指向原创 2015-10-27 14:10:46 · 2550 阅读 · 0 评论 -
关于指针的加减操作
原题:main() { int a[5]={1,2,3,4,5}; int *ptr=(int *)(&a+1); printf("%d,%d",*(a+1),*(ptr-1)); }程序输出是什么。 解答: 程序输出: 2,5 分析: 这里主要是考查关于指针加减操作的理解。 对指针进行加1操作,得到的是下一个元素的地址,而不是原有地址值直接加1原创 2015-08-19 16:24:06 · 9269 阅读 · 0 评论 -
指针函数与函数指针的区别
在学习过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y);首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,原创 2015-06-25 11:50:18 · 693 阅读 · 0 评论 -
C语言位运算符:与、或、异或、取反、左移和右移
C语言位运算符:与、或、异或、取反、左移和右移语言位运算符:与、或、异或、取反、左移和右移位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。C语言提供的位运算符列表:运算符 含义 描述& 按位与 如果两个相应的二进制位都为1,则转载 2015-06-04 10:57:07 · 697 阅读 · 0 评论 -
C++中const、volatile、mutable的用法
const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue;转载 2015-06-04 11:01:57 · 671 阅读 · 0 评论 -
C++【构造函数与析构函数基础知识以及构造析构顺序】
一.构造函数class 类名 { 类名 (形参表) : 初始化表 { 函数体; }};当该类的对象被创建时,相应类型的构造函数被自动执行。创建对象的同时提供构造实参表,与构造函数的形参匹配。1)构造函数可以重载2)缺省构造函数如果一个类中没有定义任何构造函数,那么系统就会自动为其提供一个无参构造函数,谓之缺省构造函数。缺省构造对于基本类型的成员变量不做原创 2015-06-05 13:24:39 · 709 阅读 · 0 评论