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. LR Robust Stereo VIO for Fast Autonomous Flight

    Abstract 我们展示说我们的Stereo MSCKF在算力上跟state-of-the-art的单目方案是可比的, 而且提供了很大的鲁棒性. 1. Introduction 贡献 第一个开源的f ...

  2. 【JVM系列1】深入分析Java虚拟机堆和栈及OutOfMemory异常产生原因

    前言 JVM系列文章如无特殊说明,一些特性均是基于Hot Spot虚拟机和JDK1.8版本讲述. 下面这张图我想对于每个学习Java的人来说再熟悉不过了,这就是整个JDK的关系图: 从上图我们可以看到 ...

  3. 关于bat脚本中的命令状态码相关的%errorlevel%变量

    bat脚本中常用%errorlevel%表达上一条命令的返回值,即命令执行状态码.也称命令退出码 一般上一条命令的执行结果返回的值只有两种,0和非0 (如常见的1,2,4,5,9009等等),0一般会 ...

  4. dubbo学习(八)dubbo项目搭建--消费者(服务消费者)

    PS:  项目架子以及工程间的maven依赖配置暂时省略,后续看情况可能会单独写一篇文章捋捋框架结构,先马克~ 配置和启动 1.pom文件引入dubbo和zookeeper的操作客户端(此步骤与生产者 ...

  5. php基础复习

    基础捡漏: 1.短标记<??> 通过修改ini文件的short_open_tag或编译时 --enable-short-tags 可用 不推荐使用. 2.?>默认有隐藏分号结束,而文 ...

  6. Metasploit之漏洞利用( Metasploitable2)

    每个操作系统都会存在各种Bug,像Windows这样有版权的操作系统,微软公司会快速地开发针对这些Bug或漏洞的补丁,并为用户提供更新.全世界有大量的漏洞研究人员会夜以继日地发现.研究新的Bug,这些 ...

  7. 超详细的 Vagrant 上手指南

    搭建 Linux 虚拟机,别再用 VirtualBox 从 .iso 文件安装了. 概述 2020 年了,也许你已经习惯了 docker,习惯了在 XX 云上快速创建云主机,但是如果你想在个人电脑上安 ...

  8. Spring学习(八)--Spring的AOP

    自工作以后身不由己,加班无数,996.995不可控制,高高立起的flag无法完成,无奈,随波逐流,尽力而已! 1.advice通知 advice主要描述Spring AOP 围绕奥方法调用而注入的切面 ...

  9. _1_html_框架

    创:18_3_2017修:20_3_2017 什么是html? --超文本标记语言 --告诉浏览器内容的语义 html页面的框架是什么? <!DOCTYPE html> <!--DT ...

  10. 067 01 Android 零基础入门 01 Java基础语法 08 Java方法 05 数组作为方法参数

    067 01 Android 零基础入门 01 Java基础语法 08 Java方法 05 数组作为方法参数 本文知识点:数组作为方法参数 说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进 ...