.net面试基础题

1.SQL

-- 返回有区别的字段
SELECT DISTINCT houseSerialNo
FROM device_item

-- 排序
SELECT device_item.`name`
FROM device_item ORDER BY device_item.createTime

-- 插入
INSERT INTO table_name
VALUES (value1,value2,value3,...);

-- 更新
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

-- mysql 前十条数据
select  *
FROM device_item 
LIMIT 10

-- 总数
select count(*) 
FROM online_record 
WHERE isOnline='1'

-- 指定匹配的值
select * 
FROM online_record 
WHERE isOnline IN('0','1')

-- 连表查询
SELECT C.`name` ,D.`name`  
FROM device_item AS D 
JOIN controller AS C 
WHERE D.controllerId=C.id

-- 连表查询(字段匹配的行)
SELECT C.`name` ,D.`name`  
FROM device_item AS D 
JOIN controller AS C 
ON D.controllerId=C.id

-- 表复制
CREATE TABLE 新表
AS
SELECT * FROM 旧表 

2.算法

冒泡

int temp = 0;
for (int i = 0; i < arr.Length-1; i++)
{
    for (int j = i; j < arr.Length-1; j++)
    {
        if (arr[i] > arr[j+1])
        {
            temp = arr[i];
            arr[i] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}

递归

public static int Fun(int i)
{
    if (i == 1) { return 1; }
    if (i == 2) { return 2; }
    return i * (Fun(i - 1));
}

3.面向对象理解

1)特征

封装,继承,多态;

2)正常逻辑完成某件事是一步一步走的,但是面向对象思路是先规划好要做什么事,然后拆分单一职责,模块化、抽象化一个事物或动作。

4.值类型

定义:

C#的引用类型包括:数组、委托、接口、object、字符串、用户定义的类。

C#的值类型包括:数值类型、结构体、bool型、枚举、可空类型、用户定义的结构体。

区别:

值类型:占用空间固定、保存与复制的是值本身、使用typeof检测数据的类型、基本类型数据是值类型

引用类型:占用空间不固定、保存与复制的是指向对象的一个指针、使用instanceof检测数据类型、使用new()方法构造出的对象是引用型

有哪些类型:

值类型:有符号整数(由小到大):sbyte、short、int、long 无符号整数(由小到大):byte、ushort、uint、ulong 浮点型:float、double、decimal

布尔型:bool

字符型:char

引用类型:string、object

5.异步和线程的区别

异步就线程的一种封装方式,本质都是线程。异步是可以等待获取最终结果的。

6.常用的加密算法

MD5、base64、SHA1、RSA

7.委托(声明 delegate)

1)在相同入参和出参的方法,进行统一的委托管理,可对方法进行增减,类似吧方法看成一种变量进行使用。
2)传入相同的参数可以各自执行不同的动作。

8.泛型(T)

编程的方法和类的一种数据规范,使得程序的拓展行更强。
仓储封转

9.生命周期

 1)、请求页面:页请求发生在页生命周期开始之前。
  2)、开始:在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性。
  3)、初始化页面:页面初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。
  4)、加载页面:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
  5)、验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性。
  6)、回发事件处理:如果请求是回发请求,则将调用所有事件处理程序。
  7)、呈现页面:在页面呈现期间,视图状态将被保存到页面,然后页面将调用每个控件,以将其呈现的输出提供给页的Response属性的OutputStream。
  8)、卸载页面:完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理。

10.堆和栈的区别

  • 栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在内存中

  • 堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小

你可能感兴趣的:(sql,数据库)