函数堆栈的三个用途: 1.进入函数前保存环境变量和返回地址; 2.进入函数时保存实参的拷贝; 3.保存函数体内的局部变量。 函数调用规范:定义函数实参压栈,退栈以及堆栈释放方式。 1._cdecl:函数默认规范,参数从右到左依次压栈,便于可变参数函数,C++静态成员函数和友元函数使用此规范。 2._ Read More
posted @ 2017-09-02 16:17 一种微笑 Views(174) Comments(0) Diggs(0)
1. #define 宏常量为字面常量,编译前就被替换。 2. const常量: C为值不能修改的变量,因此会分配内存空间,并且默认是外连接的,因此const定义在头文件并被多个c文件包含时,链接会出错。 C对于static const,static const定义在头文件并被多个c文件包含时,每个 Read More
posted @ 2017-08-25 23:00 一种微笑 Views(209) Comments(0) Diggs(0)
1.C与C++ NULL区别 #ifdef_cplusplus #define NULL 0 #else #define NULL ((void*)0) #endif 2.字节是内存编址的最小单位。 3.大小端转换:如变量 short test = 0x0D25 大端CPU:低字节放在高地址,高字节 Read More
posted @ 2017-08-20 22:37 一种微笑 Views(144) Comments(0) Diggs(0)
从9月到11月,我经历了大部分互联网或实体企业的面试,我是学计算机的,报的岗位也是开发,一路的各种笔试、面试,实在是风雨飘摇。下面我就说说自己的面试经历吧,也可以给以后的师弟师妹们一个借鉴。第一场宣讲会是华为,人几乎是爆满的,原因无他,工资很高。宣讲完后是机试,我记得有3道题,一道是字符串,一道是排序,还有一道是树的。前两题挺简单的,后面一题比较难,当初还没复习数据结构,想了很久都没想出来。后面听其他同学说答出一道就可以通过,然后我就过了。过了几天收到短信做网上性格测试,花了半个钟就就弄好了。最后是到华工大酒店进行专业面试和综合面试,好像非技术的是5轮面试。专业面试问的都是C++和java基础 Read More
posted @ 2013-11-23 15:54 一种微笑 Views(1305) Comments(0) Diggs(0)
c没有重载。c++(overloading)重载:函数名相同但参数列表不相同(参数数量或参数类型不同)的方法。1.方法名必须相同。2.参数列表必须不相同,但和参数列表的顺序无关。3.返回值类型可以不相同,但不是必须,例如double g()和int g()不是重载,会报错(重复声明)。int f(int, float)->c++编译后为_int_f_int_float,注意const会被忽略,因此它和 int f(const int, const float)为同一声明。c++(overriding)重写:派生类重写基类的虚函数。1.只有虚方法和抽象方法才能够被重写。2.方法名必须相同。 Read More
posted @ 2013-10-25 20:59 一种微笑 Views(414) Comments(0) Diggs(0)
前序遍历(根左右):void InOrderTree(Node* root){ if(root!=NULL){ preOrderTree(root->left); coutdataright); }}void InOrderTree(){ stact s; Node* p=root; while(p!=NULL||!s.empty()){ while(p!=NULL){ s.push(p); p=p->left; } if(!s.empty()){ ... Read More
posted @ 2013-10-25 20:52 一种微笑 Views(679) Comments(0) Diggs(0)
char * strcat(char * dest,const char * src){ assert((dest!=NULL)&&(src!=NULL)); char *ret=dest; while(*dest++); dest--; while(*dest++=*src++); return ret;}char * strcpy(char * dest,const char * src){ assert((dest!=NULL)&&(src!=NULL)); char *ret=dest; while(*dest++=*src++);... Read More
posted @ 2013-10-25 20:46 一种微笑 Views(625) Comments(0) Diggs(0)
servlet是web容器最基本的组成单元,http请求是向web服务器请求一种信息资源,而servlet就充当了这种资源的最小单位,servlet可以无限扩展,使用java所有的类库资源,为用户返回文本、图片、音频的各类信息资源。 从程序员的角度看,servlet是一个java类,需要实现javax.servlet.Servlet接口的所有方法,提供一个公开的无参数的构造方法。由web容器来控制它的创建、初始化、提供服务、销毁等。它的各种行为方式通过web.xml文件中来配置。Servlet接口有3个重要的方法,分别是init(),destroy()和service(),由于Servlet是 Read More
posted @ 2013-07-12 19:13 一种微笑 Views(171) Comments(0) Diggs(0)
web应用程序需要部署到web容器中才能运行,两者都必须符合javaEE规范。web容器的应用程序规范:1.目录结构规范:javaWeb程序的所有文件都包含在一个文件夹中,包含WEB-INF子文件夹和META-INF子文件夹,WEB-INF文件夹包含classes文件夹和lib文件夹以及web.xml。2.jar文件放在WEB-INF/lib文件夹中。3.web.xml规范:是整个web应用程序的描述文件,里面定义者该Web应用程序可供访问的信息资源以及这些资源的行为,包括servlet,过滤器,监听器,安全验证等信息资源。4.其他资源文件,如jsp,html,图片和声音的放在与WEB-INF Read More
posted @ 2013-07-12 19:11 一种微笑 Views(517) Comments(0) Diggs(0)
数据库连接池: 原因:频繁的创建数据库连接是十分耗费资源的,一旦某一时刻用户的请求太多,可能会造成系统缓慢甚至瘫痪。 原理:程序员需要连接数据库时,只需要从池子里取出一个即可,没有真正进行数据库的创建,当调用con.close方法时连接就会回到池子里,而没有和真正的数据库断开连接。当连接不够用时会创建新的连接,连接太多后会自动关闭一些不必要的连接。使用连接池和传统的JDBC的差异主要是获取连接方式的不同。传统的JDBC是通过驱动管理器(DriverManager)来获取连接,而连接池则是需要用数据源(DataSource)来获取,数据源由JNDI的形式提供,如://创建JNDI初始化上下文对象 Read More
posted @ 2013-07-12 19:08 一种微笑 Views(396) Comments(0) Diggs(0)