1.数据库的范式

这算入门问题了吧,但凡是个数据库类的,都得问吧,

但我们在回答的时候开始背书啦

第一范式(1NF)无重复的列

第二范式(2NF)属性完全依赖于主键 [ 消除部分子函数依赖 ]

第三范式(3NF)属性不依赖于其它非主属性 [ 消除传递依赖 ]

还有什么BCNF,是不是看了好像十分清楚,但不看又好像懵懵懂懂的。

说个我的记忆方式吧

第一范式,1NF,无重复列,字段不冗余且必不可少。这必须得记住

第二范式,2NF,满足第一范式且表必须有主键

第三范式,3NF,满足第二范式且表引用其他表必须通过主键引用

以上是不是好些了呢,这个时候你以为回答完毕就又被面试官给逮着了,你提到了主键了吧

开始扩展问了,数据库建立主键的原则

我们常常会蒙,原则,什么原则,不就是我们常常用到的ID,自增长吗,唯一性,好像没什么原则吧。

其实很多在日常的工作中我们已经注意了,只是不知道如何描述

关于原则内容内容,可以拜读:http://www.cnblogs.com/studyzy/p/3309350.html

分析得十分透彻,特别是其中提到的 《数据库主键与业务主键》。可以用此和面试官好好谈谈,这样会显得你对此有深入的研究,提升自己的实力形象

提到主键,就会继续发展到索引,随便问个数据库有哪几种索引,这个基础吧

A)聚集索引,表数据按照索引的顺序来存储的。
B)非聚集索引,表数据存储顺序与索引顺序无关。

关于索引:http://kb.cnblogs.com/page/45712/

继续往下问的话就是数据库优化方面来,横向分区,纵向分表

这可以参考:http://www.cnblogs.com/yukaizhao/archive/2010/05/31/sql-server-table-split-partition.html

以上我都点到即止,会的同学,会心一笑即可,不会的同学,愿意的,复制链接去看看吧,能增强内力的

最后推荐一篇SQL Server高性能写入方面的文章:http://kb.cnblogs.com/page/156213/

2.C#中,值类型和引用类型的区别

很多时候,我们由于没有把这个底层问题搞清楚,导致我们的程序看起来好像是对的,但运行的结果不符合我们的期望

百度的这篇文章:http://jingyan.baidu.com/article/7082dc1c524b14e40b89bd6d.html

很形象的解释了值类型和引用类型以及堆和栈,你还记不住什么是堆的话,文章中的三角形一样的图片,那是个堆的形状吧,形意结合,是不是清楚了很多。

记得要补充,不同的值类型,在栈中分配的空间大小不一样。不同的引用类型,在栈中分配的空间上一样的,在堆中空间不一样

C#的所有值类型均隐式派生自System.ValueType:

如 Sbyte,byte,short,int,long,DateTime,ushort,unit,ulong,char,float,double,decimal,bool,struct,enum,还有可空类型,如int?是值类型

引用类型:数组,类,接口,委托,Object,String

例外情况来了,一定要说:值类型的实例会存储在栈上,但是,当某个类的实例有个字段是值类型,那么实际该字段会和类的实例保持在同一个地方,即堆上。是不是突然高大上了

别慌,这个只是入门,面试官开始扩展了

String 能不能继承!!!

F12我们发现,string是被sealed修饰的。

英文不好了吧

sealed :密封,

故名思义,就是由它修饰的类或方法将不能被继承或是重写。

再继续追问下去就可以扩展到诸如override,和overload等等方面的关键字上面了

关于override 和 overload 参考:http://www.cnblogs.com/netlyf/archive/2009/09/08/1562642.html

还有如Final,finaly,finallize的区别

final 修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 一句话:final修饰类时:没有祖先的光棍(不能继承也不能被继承),final修饰变量或者方法时:固定的,只能拿来用,不能改。

finally 在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)

3、finalize 方法名。使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

PS,摘自网络

Final并不是一个C#中的关键字,但经常在C#面试题中出现,例如说说“Final、Finally、finalize的区别”,其实这已经超出C#的范畴,这三个关键字分别考核了J#、.Net 容错方法、.Net垃圾收集机制,奇怪的是,每次我面试C#程序人员时,大部分人员对Final这个关键字并无陌生之感,相反却答得头头是道,看来来面试之前,早在网上有所预习,呵呵。

C# 面试前的准备_基础知识点的回顾_02的更多相关文章

  1. C# 面试前的准备_基础知识点的回顾_05

    1.谈谈ViewState 这个问题,回答的好,工资翻一级 基本上浮现在出来的是,它是什么, 具体谈论的东西我就不一一细说了,只能说根据自己的学识去探讨,千万不要背书,很容易露馅,露馅的话给人一种不懂 ...

  2. C# 面试前的准备_基础知识点的回顾_04

    1.Session和Cookie的使用区别 很容易回答的就是Session在服务器端,存储的数据可以较大容量,比如我们存一个Table,上千条数据. Cookie保存在客户端,安全系数低,不能放重要的 ...

  3. C# 面试前的准备_基础知识点的回顾_03

    1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒一口气了,终于出现了一个可以聊上10分钟的问题了. 根据HTTP规范,Get用于信息获取,而且应该是安全的和幂等的. 参数 ...

  4. C# 面试前的准备_基础知识点的回顾_01

    本系列本章来至于http://www.cnblogs.com/LionelMessi/p/4311931.html 1.try{} 里面有个Return语句,那么紧跟try后面的Finally{}会不 ...

  5. [oldboy-django][4python面试]面试前需要熟练掌握的知识点(待更新)

    python基础 - 生成器 - 装饰器 - 迭代器 - 列表生成式 - 引用,传参 - 面向对象,继承 前端Html: - 词法分析 - 作用域 - 语法分析 - this - Jsonp mysq ...

  6. c#基础,面试前迅速巩固c#最基础知识点

    n年前为了面试,搜罗的C#基础知识,记在了文档里.今天写到博客园里,与人分享,因为不是专家,所以仅供参考. 1.面向对象 在面向对象概念提出之前,语言都是面向过程的,说到面向对象,应该与面向过程比较, ...

  7. Redis基础知识点面试手册

    Redis基础知识点面试手册 基础 概述 数据类型 STRING LIST SET HASH ZSET(SORTEDSET) 数据结构 字典 跳跃表 使用场景 会话缓存 缓存 计数器 查找表 消息队列 ...

  8. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  9. Java面试前需要了解的东西

    一.前言 只有光头才能变强 回顾前面: 广州三本找Java实习经历 上一篇写了自己面试的经历和一些在面试的时候遇到的题目(笔试题和面试题). 我在面试前针对Java基础也花了不少的时间,期间也将自己写 ...

随机推荐

  1. python循环输出

    python 目录 python 1.九九乘法表 2.循环输出数字0-9,数字为六,跳出循环,执行其他循环,数字为八,结束循环 3.使用循环计算0-100素数的和 4.使用for循环输出三角形 1.九 ...

  2. Fiddler无法抓取web项目中的http请求解决方案

    问题:webform项目中对接API使用Fiddler无法获取该API的请求,该webform比较老的一个项目, 同一个API写在控制台可以抓取到请求,用web项目放在本地IIS却不行,使用IIS E ...

  3. Docker端口映射及创建镜像演示(二)

    Docker暴露容器方法 第一种:将容器中的一个端口映射成宿主机中的一个随机端口 第二种:将容器中的一个端口映射成宿主机中的一个端口 第三种:将容器中的一个端口映射成宿主机中的一个特定网卡上的随机端口 ...

  4. 云计算openstack共享组件——消息队列rabbitmq(3)

    一.MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们. 消息传 ...

  5. python中RGB色彩

    turtle.colormode(mode)来改变色彩数值的使用 如果在修改颜色时写turtle.colormode(1.0) ,就需要使用RGB小数模式来去改变颜色 如果在修改颜色时写turtle. ...

  6. java虚拟机小贴士之GC分析

    打印日志 通过加入 -XX:+PrintGCDetails 参数则可以打印详细GC信息至控制台.参数-verbose:gc也是可以,但不够详细.通过加入-XX:+PrintGCDateStamps则可 ...

  7. OpenGLshader_uniform

  8. Vue 分支循环

    分支循环 在Vue中,分支循环也是使用标签属性指令完成的,这一点与后端模板语法不太相同. v-for 下面是通过v-for进行循环,不光可以拿到元素本身,也可以拿到索引值. 如果数据是对象类型,则可以 ...

  9. 结合 Shell 对 Koa 应用运行环境检查

    在开发环境中,启动一个koa 应用服务,通常还需要同时启动数据库.比如.Mongodb.mysql 等 如果一直开着数据库服务,在不使用的话,电脑会占一定的性能.然而如果每次手动去启动服务,效率又不高 ...

  10. 前端er,你真的会用 async 吗?

    async 异步函数 不完全使用攻略 前言 现在已经到 8012 年的尾声了,前端各方面的技术发展也层出不穷,VueConf TO 2018 大会 也发布了 Vue 3.0的计划.而在我们(我)的日常 ...