1.C和C++中struct有什么差别?

1>
C++中的struct类似于class,有变量。有构造函数、虚函数等。有继承,多态等类的特征;

2>
C中的struct仅仅有变量,不能有函数,可是能够有函数指针

2.C++中的struct和class有什么差别?

在C++中,两者差别不大,可是有2个基本的差别

1>.
继承权限:struct默认是public继承;class默认是private继承

2>.
訪问权限:struct默认是public訪问。class默认是private訪问

3.怎样推断一段程序是由C
编译程序还是由C++编译程序编译的?

【标准答案】

#ifdef __cplusplus

cout<<“c++";

#else

cout<<"c";

#endif

(这个曾经还真没注意过,涨姿势了。

。。)

4.C和C++有什么不同?

【參考答案】

从机制上:

c是面向过程的(但c也能够编写面向对象的程序)。

c++是面向对象的,提供了类。可是,c++编写面向对象的程序比ceasy。

从适用的方向: c适合要求代码体积小的,效率高的场合。如嵌入式;
c++适合更上层的,复杂的; llinux核心大部分是c写的,由于它是系统软件,效率要求极高。

从名称上也能够看出。c++比c多了+。说明c++是c的超集;那为什么不叫c+而叫c++呢,是由于c++比 c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c++。

C语言是结构化编程语言,C++是面向对象编程语言。 C++側重于对象而不是过程,側重于类的设计而不是逻辑的设计。

关于这个问题。个人认为《Effective
C++》上面第一条说的非常好,

View C++ as a federation of languages. 把C++当做一个语言联邦。

C++由四部分组成

1> C语言部分;

2> 面向对象部分。包含封装、继承、多态这些C语言所没有的特性。

3> 泛型编程部分,大多数类、函数要考虑到把它设计成模板,方便复用。

4> STL库,里面封装了大量的优秀模板,是 3> 中内容的集成, 学会使用它们能够让代码更高效。

当然,最好去深入了解STL源代码,那样会对C++有更深的理解。

5.“引用”与指针的差别是什么?

   【參考答案】

指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。

程序中使用指针。程序的可读性差;而引用本身就是目标变量的别名。对引用的操作就是对目标变量的操作。

在还有一本C++著作《More Effective C++》里,第一条就是论述 point 和 reference的差别

总结一下 。

1> 指针是一个存储地址的变量。而引用是一个变量的别名。

所以在一个函数中,传引用要比传指针速度更快。

2> 指针能够指向一个空值。而引用必须初始化。指针能够例如以下形式出现

  1. int *p;

是合法但不合理的(相当于是一个野指针)。

能够声明一个指向空值的指针

  1. int *p=null

而引用不行

  1. int &r;

是错误的

引用必须初始化为一个变量的别名,如

  1. int a=5;
  2. int &r=a;

3> 也是由于 2>的特性。指针在使用前要推断是否为空。而引用必然不为空(否则会报错),所以不用推断。

4> 指针能够更改指向的内存地址,而引用是和变量绑定的。不可更改。

5> 在运算符重载过程中,通常返回一个引用往往比返回一个指针更好。使用指针易引起语义上的歧义。

6.

class A

{

virtual void func1();

void func2();

} 。

class B: class A

{

void func1()

{

cout < < "fun1 in class B" < < endl;

}

virtual void func2()

{

cout < < "fun2 in class B" < < endl;

}

A, A中的func1和B中的func2都是虚函数

B, A中的func1和B中的func2都不是虚函数.

C, A中的func2是虚函数.,B中的func1不是虚函数.

D, A中的func2不是虚函数,B中的func1是虚函数.

【标准答案】A

水题。。

7.int id[sizeof(unsigned long)];这个对吗?为什么?

【标准答案】

正确

这个 sizeof是编译时运算符,编译时就确定了 能够看成和机器有关的常量。

8.某文件里定义的静态全局变量(或称静态外部变量)其作用域是 ()?

A.仅仅限某个函数 B.本文件   C.跨文件 D.不限制作用域

【參考答案】B。

静态全局变量则限制了其作用域。 即仅仅在定义该变量的源文件内有效, 在同一源程序的其他源文件里不能使用它。

因为静态全局变量的作用域局限于一个源文件内,仅仅能为该源文件内的函数公用, 因此能够避免在其他源文件里引起错误。

在《C和指针》上看过,statickeyword会改变具有外部链接性的变量和函数

9.C++函数中值的传递方式有哪几种?

【标准答案】

C++函数的三种传递方式为:值传递、指针传递和引用传递。

(指针传递就是通常说的地址传递)

10.对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现?

【标准答案】c用宏定义。c++用inline

define实现的函数功能easy出bug。所以在c++中最好不要使用

11.引用与指针有什么差别?

【參考答案】
 

1) 引用必须被初始化,指针不必。

2) 引用初始化以后不能被改变,指针能够改变所指的对象。

3) 不存在指向空值的引用,可是存在指向空值的指针。





能够參考下 在 5 题中补充的内容









12.C++中virtual与inline的含义各自是什么?

【參考答案】

在基类成员函数的声明前加上virtualkeyword。意味着将该成员函数声明为虚函数。

inline与函数的定义体放在一起,使该函数称为内联。

inline是一种用于实现的keyword。而不是用于声明的keyword。



虚函数的特点;假设希望派生类可以又一次定义基类的方法,则在基类中将该方法定义为虚方法,这样可以启用动态联编。



内联函数的特点;使用内联函数的目的是为了提高函数的执行效率。内联函数体的代码不能过长,由于内联函数省去调用函数的时间是以代码膨胀为代价的。

内联函数不能包括循环语句。由于执行循环语句要比调用函数的开销大。

哈!

我想我确实要注意一下表达能力。。

13.

VC中,编译工具条内的Debug与Release选项是什么含义?

【參考答案】

Debug 通常称为调试版本号。它包括调试信息,而且不作不论什么优化,便于程序猿调试程序。

Release 称为公布版本号,它往往是进行了各种优化,使得程序在代码大小和执行速度上都是最优的。以便用户非常好地使用。





Debug带有大量的调试代码,执行时须要对应的执行库。

公布模式程序紧凑不含有调试代码和信息。直接能够执行(假设不须要执行库)









14.函数assert的使用方法?

【參考答案】断言assert是仅在debug版本号起作用的宏,用于检查“不应该“发生的情况。

程序猿能够把assert看成一个在不论什么系统状态下都能够安全使用的无害測试手段





学VC++的时候见过assert宏定义,可是自己从来没用过。

。。









15.const  与 #define 的比較 ,const有什么长处?

【參考答案】

(1) const 常量有数据类型,而宏常量没有数据类型。编译器能够对前者进行类型安全检查。而对后者仅仅进行字符替换,没有类型安全检查,而且在字符替换可能会产生意料不到的错误(边际效应) 。 

#define不能生成 类的专属常量,由于它仅仅是进行简单的替换。。

(2)  有些集成化的调试工具能够对 const 常量进行调试。可是不能对宏常量进行调试。





《Effective C++》中建议以const、enum、inline取代#define。

使用enum的原因

有些情况下,编译器不同意静态常量出如今类的初始设定中,仅仅得以enum的形式

还有一方面,enum和#define更相似,它们都没有详细的类型,比方。有const int a; 却没有 #define N int a。enum和#define都不可以被去地址。而const可以。









16.请你谈谈引用和指针的差别。

【參考答案】

(1)引用被创建的同一时候必须被初始化(指针则能够在不论什么时候被初始化) 。 

(2)不能有 NULL 引用,引用必须与合法的存储单元关联(指针则能够是 NULL) 。 

(3)一旦引用被初始化,就不能改变引用的关系(指针则能够随时改变所指的对象) 。

不断地出现。可见这个问题是常常easy被问到的。

17.

有了 malloc/free 为什么还要 new/delete  ?

【參考答案】

malloc 与 free 是 C++/C 语言的标准库函数,new/delete 是 C++的运算符。

它们都可用于申请动态内存和释放内存。

对于非内部数据类型的对象而言。光用 malloc/free 无法满足动态对象的要求。

对象在创建的同一时候要自己主动运行构造函数,对象在消亡之前要自己主动运行析构函数。

因为malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不可以把运行构造函数和析构函数的任务强加于 malloc/free。 

因此 C++语言须要一个能完毕动态内存分配和初始化工作的运算符 new。以及一个能完毕清理与释放内存工作的运算符 delete。

注意 new/delete 不是库函数。





曾经仅仅是习惯在用C时用malloc/free,用C++时用new/delete,没注意到这些差异性。

18.假设在申请动态内存时找不到足够大的内存块,malloc 和 new 将返回 NULL 指针,宣告内存申请失败。你是怎么处理内存耗尽的?

【參考答案】

(1)推断指针是否为 NULL,假设是则立即用 return 语句终止本函数。

(2)推断指针是否为 NULL,假设是则立即用 exit(1)终止整个程序的执行 

(3)为 new 和 malloc 设置异常处理函数。比如 Visual C++能够用_set_new_hander 函数为 new 设置用户自定义的异常处理函数。也能够让 malloc 享用与 new 同样的异常处理函数。

我通常是直接return 了









19.C++是不是类型安全的?

【參考答案】不是。两个不同类型的指针之间能够强制转换(用reinterpret cast)。









20. const 符号常量;

(1)const char *p 

(2)char const *p (

3)char * const p

说明上面三种描写叙述的差别;

【參考答案】

(1)p是一个指向const char的指针,p是能够改变指向的。可是p指向的值是不能改变的;        

(2)p指向的恰好是一个指向const的char的普通指针。

(3)p是一个指针,这个指针是指向char的const指针。        

(1)和(2)的定义是一样的。

1、2和3的差别在于,1和2的const出如今*号左边,3出如今*号右边。好像也是在《C和指针》上看到的这句话。

21.用C++写个程序,怎样推断一个操作系统是16位还是32位的?

【标准答案】定义一个指针p,打印出sizeof(p),假设节果是4,则表示该操作系统是32位,打印结果是2,表示是16位。

22.用C++写个程序,怎样推断一个操作系统是16位还是32位的?不能用sizeof()函数。

【參考答案】

  1. int a = ~0;
  2. if( a>65536 )
  3. {
  4. cout<<"32 bit"<<endl;
  5. }
  6. else
  7. {
  8. cout<<"16 bit"<<endl;
  9. }

这个參考答案预计參考了不少年了。。。

如今大部分机器都32、64位的了,所以,应该把65536改为4294967296。来推断机器是 32位 || 64 位

23.

  1. void * ( * (*fp1)(int))[10];
  2. float (*(* fp2)(int,int,int))(int);
  3. int (* ( * fp3)())[10]();

分别表示什么意思?

【标准答案】

1.void * ( * (*fp1)(int))[10];

fp1是一个指针,指向一个函数。这个函数的參数为int型,函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素。每一个元素是一个void*型指针。

2.float (*(* fp2)(int,int,int))(int);

fp2是一个指针,指向一个函数。这个函数的參数为3个int型,函数的返回值是一个指针。这个指针指向一个函数,这个函数的參数为int型,函数的返回值是float型。

3.int (* ( * fp3)())[10]();

fp3是一个指针,指向一个函数,这个函数的參数为空。函数的返回值是一个指针。这个指针指向一个数组。这个数组有10个元素,每一个元素是一个指针,指向一个函数。这个函数的參数为空。函数的返回值是int型。

24.多态类中的虚函数表是Compile-Time。还是Run-Time时建立的?

【标准答案】虚拟函数表是在编译期就建立了,各个虚拟函数这时被组织成了一个虚拟函数的入口地址的数组.而对象的隐藏成员--虚拟函数表指针是在执行期--也就是构造函数被调用时进行初始化的,这是实现多态的关键。

25.错误的转义字符是 ()

A.'\091' B.'\\'

C.'\0' D.'\'‘

【标准答案】A

A错误的关键在于。当中出现了9,这样它就不是8进制的转换了。

26.若数组名作实參而指针变量作形參,函数调用实參传给形參的是 ()

A.数组的长度 B.数组第一个元素的值C.数组全部元素的值
D.数组第一个元素的地址

【标准答案】D

27.变量的指针含意是指变量的 ()

A.值   B.地址 C.存储  D.名字

【标准答案】B

28.内存的分配方式有几种?

【參考答案】

一、从静态存储区域分配。内存在程序编译的时候就已经分配好。这块内存在程序的整个执行期间都存在。

比如全局变量。

二、在栈上创建。在运行函数时。函数内局部变量的存储单元都能够在栈上创建,函数运行结束时这些存储单元自己主动被释放。栈内存分配运算内置于处理器的指令集中,效率非常高。可是分配的内存容量有限。

三、从堆上分配,亦称动态内存分配。程序在执行的时候用malloc或new申请随意多少的内存,程序猿自己负责在何时用free或delete释放内存。动态内存的生存期由我们决定,使用很灵活。但问题也最多。

29.float a,b,c ,问等式 (a+b)+c==(b+a)+c 和(a+b)+c==(a+c)+b是否能成立?

【參考答案】

两者都不行。

在比較float或double时。不能简单地比較。因为计算误差,相等的概率非常低。应推断两数之差是否落在区间(-e,e)内。这个e应比浮点数的精度大一个数量级。

我想到的是还有一个运算符 %。

不能对float或double使用%运算符。原因和參考答案中的说法类似

30.全局变量和局部变量有什么差别?是怎么实现的?操作系统和编译器是怎么知道的? 

【參考答案】

1>/2>

生命周期不同:

全局变量随主程序创建而创建,随主程序销毁而销毁;内存中分配在全局数据区。

局部变量在局部函数内部。甚至局部循环体等内部存在。退出就不存在; 分配在栈区。

使用方式不同:

通过声明后全局变量程序的各个部分都能够用到;

局部变量仅仅能在局部使用。

3>

操作系统和编译器通过内存分配的位置来知道的,

全局变量分配在全局数据段而且在程序開始执行的时候被载入。

局部变量则分配在堆栈里面 。

另,全局变量会被初始化为0。而局部变量以随机值进行初始化

31.Heap与stack的区别

【參考答案】

Heap是堆。stack是栈。

Stack的空间由操作系统自己主动分配/释放。Heap上的空间手动分配/释放。

Stack空间有限,Heap是非常大的自由存储区

C中的malloc函数分配的内存空间即在堆上,C++中相应的是new操作符。

程序在编译期对变量和函数分配内存都在栈上进行,且程序执行过程中函数调用时參数的传递也在栈上进行

32.In C++, what does "explicit" mean? what does "protected" mean? 

【标准答案】

c++中的explicitkeyword用来修饰类的构造函数,表明该构造函数是显式的。在某些情况下,我们要求类的使用者必须显示调用类的构造函数时就须要使用explicit,反之默认类型转换可能会造成无法预期的问题。

protected控制的是一个函数对一个类的成员(包含成员变量及成员方法)的訪问权限。protected成员仅仅有该类的成员函数及其派生类的成员函数能够訪问。

我擦!

它俩为啥放在一起问。

33.反复多次fclose一个打开过一次的FILE *fp指针会有什么结果,并请解释。 

【參考答案】考察点:导致文件描写叙述符结构中指针指向的内存被反复释放,进而导致一些不可预期的异常。

34.为什么数组名作为參数,会改变数组的内容,而其他类型如int却不会改变变量的值?

【參考答案】当数组名作为參数时,传递的实际上是地址。

而其它类型如int作为參数时,因为函数參数值实质上是实參的一份拷贝,被调函数内部对形參的改变并不影响实參的值。

传值与传地址的差别

35.你认为假设不使用常量。直接在程序中填写数字或字符串。将会有什么麻烦? 

【參考答案】

(1)  程序的可读性(可理解性)变差。程序猿自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处来、表示什么。

(2)  在程序的非常多地方输入相同的数字或字符串,难保不发生书写错误。 

(3)  假设要修改数字或字符串,则会在非常多地方修改。既麻烦又easy出错。

36.为什么须要使用堆,使用堆空间的原因?

【參考答案】直到执行时才知道一个对象须要多少内存空间。不知道对象的生存期究竟有多长。

由于须要动态分配内存啊。。。

37. constkeyword?有哪些作用

【參考答案】constkeyword至少有下列n个作用:

(1)欲阻止一个变量被改变,能够使用constkeyword。在定义该const变量时。通常须要对它进行初始化,由于以后就没有机会再去改变它了;

(2)对指针来说,能够指定指针本身为const,也能够指定指针所指的数据为const。或二者同一时候指定为const。

(3)在一个函数声明中。const能够修饰形參。表明它是一个输入參数,在函数内部不能改变其值;

(这样既能够利用传地址、传引用的高效特性。又保证了传值的安全性)

(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能改动类的成员变量;

还记得假设要改动成员变量。应该把成员变量声明为什么吗?mutable!

(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。

很多其它更具体的内容。推荐看《Effective C++》

38.、是不是一个父类写了一个virtual 函数,假设子类覆盖它的函数不加virtual ,也能实现多态?

【參考答案】virtual修饰符会被隐形继承的。virtual可加可不加。子类的空间里有父类的全部变量(static除外)。同一个函数仅仅存在一个实体(inline除外)。子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间里。有父类的私有变量。私有变量不能直接訪问。

只是最好是加上,加上表明它是一个虚函数,这样提高了代码的阅读性。

39.面向对象的三个基本特征。并简单叙述之?

【參考答案】

1. 封装:将客观事物抽象成类,每一个类对自身的数据和方法实行protection(private,protected,public)

2. 继承:广义的继承有三种实现形式:

实现继承(指使用基类的属性和方法而无需额外编码的能力)、

可视继承(子窗口使用父窗口的外观和实现代码)、

接口继承(仅使用属性和方法,实现滞后到子类实现)。

前两种(类继承)和后一种(对象组合=>接口继承以及纯虚函数)构成了功能复用的两种方式。

3. 多态:是将父对象设置成为和一个或很多其它的与他的子对象相等的技术,赋值之后,父对象就能够依据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:同意将子类类型的指针赋值给父类类型的指针。

40.重载(overload)、重写(override,有的书也叫做“覆盖”)、重定义(redefinition)的差别?

【标准答案】

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTY5NDgwOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" style="border:none; max-width:100%">

41.多态的作用?

【參考答案】

主要是两个:

1. 隐藏实现细节。使得代码可以模块化;扩展代码模块,实现代码重用;

2. 接口重用:为了类在继承和派生的时候。保证使用家族中任一类的实例的某一属性时的正确调用。

42.当一个类A 中没有声明不论什么成员变量与成员函数,这时sizeof(A)的值是多少,假设不是零,请解释一下编译器为什么没有让它为零。

【标准答案】sizeof(A)= 1;

编译器不同意一个类的大小为0。会为它分配1字节的内存。试想。若,不这样做,那2个类A的实例在内存中将会无法区分。

。。

43.假设Class A中定义并实现虚函数int func(void),Class B中也实现该函数,

那么

  1. A a;
  2. a->func()

将调用哪个类里面的函数?假设int func(void)不是虚函数,情况又怎样?为什么?

【參考答案】第一问调用的是B的。第二问调用A的。虚函数的一个典型应用,虚函数仅仅能借助于指针或者引用来达到多态的效果。

44.C++里面是不是全部的动作都是main()引起的?假设不是,请举例。

【參考答案】比方全局变量的初始化,就不是由main函数引起的。举例:

  1. class   A{};
  2. A   a;   //a的构造函数限运行
  3. int   main() {}

45. 内联函数在编译时是否做參数类型检查

【參考答案】内联函数要做參数类型检查,   这是内联函数跟宏相比的优势。

46.请讲一讲析构函数和虚函数的使用方法和作用? 

【參考答案】

析构函数是特殊的类成员函数,它没有返回类型,没有參数,不能任意调用。也没有重载,仅仅有在类对象的生命期结束的时候。由系统自己主动调用。 有适放内存空间的作用。

虚函数是C++多态的一种表现, 使用虚函数。我们能够灵活的进行动态绑定,当然是以一定的开销为代价。

假设一个类是作为基类存在的,一定要声明一个虚析构函数,否则删除动态分配的子类实例时会出现"局部删除",造成内存泄露和未知错误

47.“new”in c++ is a:

A. library function like malloc in c

B. key word

C. operator

D. none of the above

【參考答案】C。malloc是库函数,不在编译器控制范围之内;new是运算符,在编译器控制范围之内。   调用malloc时。从堆中申请内存;调用new时,从堆中申请内存并为内存调用构造函数。

48.对于C++中类(class) 与结构(struct)的描写叙述正确的为:

A,类中的成员默认是private的,当是能够声明public,private 和protected,结构中定义的成员默认的都是public;

B,结构中不同意定义成员函数,当是类中能够定义成员函数;

C,结构实例使用malloc() 动态创建,类对象使用new 操作符动态分配内存;

D,结构和类对象都必须使用new 创建;

E,结构中不能够定义虚函数,当是类中能够定义虚函数.

F,结构不能够存在继承关系,当是类能够存在继承关系.

【标准答案】A,D

很多其它内容,參见C++经典面试题(一)

49.两个互相独立的类:ClassA 和 ClassB,都各自己定义了非静态的公有成员函数 PublicFunc() 和非静态的私有成员函数 PrivateFunc();如今要在ClassA 中添加定义一个成员函数ClassA::AdditionalPunction(ClassA
a,ClassB b);则能够在AdditionalPunction(ClassAx,ClassB y)的实现部分(函数功能体内部)出现的合法的表达是最全的是: 

A,x.PrivateFunc();x.PublicFunc();y.PrivateFunc();y.PublicFunc();

B,x.PrivateFunc();x.PublicFunc();y.PublicFunc();

C,x.PrivateFunc();y.PrivateFunc();y.PublicFunc();

D,x.PublicFunc();y.PublicFunc();

【标准答案】B

(主要考察private和public的作用,private下的成员变量和成员函数仅仅能由类本身的成员变量和函数訪问,子类不行、其他类更不行)

50.C++程序下列说法正确的有:

A,对调用的虚函数和模板类都进行迟后编译.

B,基类与子类中函数假设要构成虚函数,除了要求在基类中用virtual 声明,并且必须名字同样且參数类型同样返回类型同样。

C,重载的类成员函数都必需要:或者返回类型不同,或者參数数目不同,或者參数序列的类型不同.

D,静态成员函数和内联函数不能是虚函数,友员函数和构造函数也不能是虚函数,可是析构函数能够是虚函数.

【标准答案】A

这道题查了不少资料了。各种说法都有,说下我的理解吧,

首先。没有继承性的函数都不能是虚函数,由于这样毫无意义。所以,普通函数是不能作为虚函数存在的。

A中。虚函数是动态联编的,但模板类是在编译期间就确定的,迟后编译应该也是动态联编,这样A应该是错的?!

B中,假设基类中声明一个虚函数。子类函数和基类函数的名字、參数类型、返回类型有任一不同,都将会生成一个新的函数。

这样看来。B应该是正确的。

C中,切记,重载的函数之间的不同,不包含返回类型!

D中,静态函数在类中仅仅有一份,被全部对象共享,不存在多态性。自然不能是虚函数;

内联函数在编译时直接展开。自然也不能是虚函数;

友元函数不是类的成员函数。不能被继承,故而也不能被声明为虚函数;

构造函数不可以被继承,不能是虚函数,而且,构造函数是用来运行初始化的。虚函数是用来实现多态性的。若尚未构造出来。怎样实现多态?。显然行不通。

my_adu

C++面试必备,概念解析的更多相关文章

  1. AI面试必备/深度学习100问1-50题答案解析

    AI面试必备/深度学习100问1-50题答案解析 2018年09月04日 15:42:07 刀客123 阅读数 2020更多 分类专栏: 机器学习   转载:https://blog.csdn.net ...

  2. 面试必备:ArrayList源码解析(JDK8)

    面试必备:ArrayList源码解析(JDK8) https://blog.csdn.net/zxt0601/article/details/77281231 概述很久没有写博客了,准确的说17年以来 ...

  3. Java常用英语汇总(面试必备)

    Java常用英语汇总(面试必备) abstract (关键字)             抽象 ['.bstr.kt] access                            vt.访问,存 ...

  4. 李洪强iOS经典面试题156 - Runtime详解(面试必备)

    李洪强iOS经典面试题156 - Runtime详解(面试必备)   一.runtime简介 RunTime简称运行时.OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制. 对于C ...

  5. 【面试必备】常见Java面试题大综合

    一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...

  6. 面试必备的10道MySQL题

    MySQL 事务,是我们去面试中高级开发经常会被问到的问题,很多人虽然经常使用 MySQL,SQL 语句也写得很溜,但是面试的时候,被问到这些问题,总是不知从何说起.下面我们先来了解一下什么是 MyS ...

  7. [转帖]MySQL的又一神器-锁,MySQL面试必备

    MySQL的又一神器-锁,MySQL面试必备 https://segmentfault.com/a/1190000020762791 lock 低一级的是 latch   原文链接:blog.ouya ...

  8. 分享一套主流框架源码资料,征服阿里 P7 面试必备!

    2019年已经过完一半了, 我在这里为大家准备了一份资料,征服阿里 P7 面试必备! 希望这些资料可以帮助到大家,从一个码农进阶为一个优秀的程序员,也可以帮大家提升系统实战能力. 这些资料包括: 讲解 ...

  9. Java1.7的HashMap源码分析-面试必备技能

    HashMap是现在用的最多的map,HashMap的源码可以说是面试必备技能,今天我们试着分析一下jdk1.7下的源码. 先说结论:数组加链表 一.先看整体的数据结构 首先我们注意到数据是存放在一个 ...

  10. 2020Android面试重难点之Handler机制,含字节、京东、腾讯经典面试真题解析!

    Handler 在整个 Android 开发体系中占据着很重要的地位,对开发者来说起到的作用很明确,就是为了实现线程切换或者是执行延时任务,稍微更高级一点的用法可能是为了保证多个任务在执行时的有序性. ...

随机推荐

  1. Redis封装之String

    RedisBase类 /// <summary> /// RedisBase类,是redis操作的基类,继承自IDisposable接口,主要用于释放内存 /// </summary ...

  2. dubbo+zookeeper+springMVC +maven

    pom:                    <dependency>             <groupId>com.github.sgroschupf</grou ...

  3. Semi-Prime(半素数)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2723 Semi-Prime Time Limit: 2 Seconds   ...

  4. openSUSE leap 42.3 添加HP Laserjet Pro M128fn打印机和驱动

    一.安装驱动 YaST控制中心->软件管理->搜索->hplip 安装hplip 如下图: HPLIP(Linux Imaging and Printing Object)以前有hp ...

  5. python数据处理技巧二

    python数据处理技巧二(掌控时间) 首先简单说下关于时间的介绍其中重点是时间戳的处理,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00 ...

  6. Safe and efficient allocation of memory

    Aspects of the present invention are directed at centrally managing the allocation of memory to exec ...

  7. CF(438D) The Child and Sequence(线段树)

    题意:对数列有三种操作: Print operation l, r. Picks should write down the value of . Modulo operation l, r, x. ...

  8. MySpring dataSource从配置文件获取

    大神就不看了.本篇是一个人笔记. 原来的数据库配置文件是写死的. 看代码:Mybatis的配置文件 <bean id="dataSource" class="org ...

  9. 游戏开发之UDK引擎介绍和模型导入

    2014-09-18 10:01:3 3.7.5" style="border:0px; vertical-align:middle; max-width:100%"&g ...

  10. Java源代码之集合框架(图)

    百度"java 集合"图时.搜出来一张图.图蛮不错的.跟大家分享下.