经过昨天大量的简历投递,今天陆续收到面试邀约,明日准备大战一场,是死是活一试便知

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#知识点回顾----03

    经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...

  2. 面试前的准备---C#知识点回顾----05

    技术博客还得继续写,工作还在筛选,学习还得继续 1.Session和Cookie的使用区别 很容易回答的就是Session在服务器端,存储的数据可以较大容量,比如我们存一个Table,上千条数据. C ...

  3. 面试前的准备---C#知识点回顾----04

    播下的种子,慢慢开始发芽收获了,陆陆续续offer就来了,该轮到我挑的时候了 今天面试的一家公司,技术问的相对宽广和细致,程度令人发指 1.谈谈ViewState 这个问题,回答的好,工资翻一级 基本 ...

  4. 面试前的准备---C#知识点回顾----01

    过完年来,准备找份新工作,虽然手里的工作不错,但树挪死,人挪活.咱不能一直在一个坑里生活一辈子,外面的世界毕竟是很美好的. 为了能正常的找到自己中意的工作,最近是将所有的基础知识拿出来复习了一次.仅作 ...

  5. 前端知识点回顾——HTML,CSS篇

    前端知识点回顾篇--是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考. doctype 有什么用 doctype是一种标准通用标记语言的文档类型声明,目的是告诉标 ...

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

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

  7. 从面试连跪到收割offer,回顾我的春招面试历程(研发岗位)

    本文首发于自微信公众号[程序员江湖] 作者How 2 Play Life,985 软件硕士,阿里 Java 研发工程师,在技术校园招聘.自学编程.计算机考研等方面有丰富经验和独到见解,目前致力于分享程 ...

  8. 最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备

    在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架,我相信其它公司招初级开发时,应该也照着这个标准来面 ...

  9. 95%的技术面试必考的JVM知识点都在这,另附加分思路!

    概述:知识点汇总 jvm的知识点汇总共6个大方向:内存模型.类加载机制.GC垃圾回收是比较重点的内容.性能调优部分偏重实际应用,重点突出实践能力.编译器优化和执行模式部分偏重理论基础,主要掌握知识点. ...

随机推荐

  1. <经验杂谈>C#中一种最简单、最基本的反射(Reflection):通过反射获取方法函数

    说起反射之前和很多用C#/.net的同仁们一样,相比于一般应用层对数据的增删改查总有点觉得深奥到难以理解.其实程序这东西,用过.实践过就很简单,我一直这么认为. 先说下概念:反射 Reflection ...

  2. C# 大小写转换

    全部大写: string upper = str.ToUpper() 全部小写: string lower = str.ToLower(); str是需要转换的字符.

  3. TortoiseSVN上次文件显示被锁定

    1.可以使用SVN clean up来清除锁定. 2.如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除. 3.如果在根目录下都无法clean的话,一般采取的方法是另外找一个目录 ...

  4. WCF入门教程系列六

    一.前言 前面的几个章节介绍了很多理论基础,如:什么是WCF.WCF中的A.B.C.WCF的传输模式.本文从零开始和大家一起写一个小的WCF应用程序Demo. 大多框架的学习都是从增.删.改.查开始来 ...

  5. C# Linq Group By 多个字段并返回给实体类List

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace stud ...

  6. java基础知识3

    58.线程的基本概念.线程的基本状态以及状态之间的关系线程指在程序执行过程中,能够执行程序代码的一个执行单位,每个程序至少都有一个线程,也就是程序本身.Java中的线程有四种状态分别是:运行.就绪.挂 ...

  7. 火狐Firefox 浏览器 onblur() 并且alert()时文本被选中问题

    说明:镜像是组成在线实验课程的基础环境,教师设计的实验绑定一个或多个镜像,就组成了一讲独立的在线实验课程. 镜像名称:     火狐Firefox 浏览器 onblur() 并且alert()时文本被 ...

  8. Form 表单常用正则验证 (收藏)

    1.^\d+$ //匹配非负整数(正整数 + 0) 2.^[0-9]*[1-9][0-9]*$ //匹配正整数 3.^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0) 4.^-[0-9 ...

  9. Android平台之不预览获取照相机预览数据帧及精确时间截

    在android平台上要获取预览数据帧是一件极其容易的事儿,但要获取每帧数据对应的时间截并不那么容易,网络上关于这方面的资料也比较少.之所以要获取时间截,是因为某些情况下需要加入精确时间轴才能解决问题 ...

  10. 如何在异步请求时设置RequestHeader

    一.为何要用到setRequestHeader 通常在HTTP协议里,客户端像服务器取得某个网页的时候,必须发送一个HTTP协议的头文件,告诉服务器客户端要下载什么信息以及相关的参数.而 XMLHTT ...