码迷,mamicode.com
首页 > 其他好文 > 详细

基础知识梳理

时间:2017-08-29 14:13:28      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:ping   sql   全局变量   序列   转换   上进   虚拟   路径   rac   

1、进程和线程的区别?

进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是具有一定独立功能的程序的运行活动。

线程是一个进程的不同执行路径。

我们可以把计算机中每一个运行的应用程序都当做是一个进程。而一个进程又是由多个线程组成的。

(一个程序至少有一个进程,一个进程至少有一个线程;进程在执行过程中拥有独立的内存单元,而多个线程是共享内存的。一个线程死掉等于整个进程死掉。)

 

2、js代码中的jQuery表示什么

$其实就是jQuery的别称。是jQuery提供的一个函数,用来将DOM元素、选择器包装成jQuery对象。

所以"$"其实是一个符号,$()代替了jQuery(),当然你也可以使用其他的字符来代替"$"

var jq = jQuery.noConflict();

var v1 = jq(‘#id‘); // 等同于var v1 = $(‘#id‘);

 

3、什么是JavaScript中的闭包?

JavaScript中变量的作用域:全局变量和局部变量。

在函数外部自然无法读取函数内的局部变量。注意:函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!

Javascript语言特有的“链式作用域”结构(chain scope),子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立。

闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成“定义在一个函数内部的函数”。

 

所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

闭包用途:一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。

JavaScript代码:

  function f1(){

    var n=999;

    nAdd=function(){n+=1}

    function f2(){

      alert(n);

    }

    return f2;

  }

  var result=f1();

  result(); // 999

  nAdd();

result(); // 1000

 

4、ORM

ORM((Object Relational Mapping对象关系映射)指的是面向对象的对象模型和

关系型数据库的数据结构之间的互相转换。(表实体跟表之间的相互转换)

具体实现是:将数据库的数据映射成对象。

 

5、C#中的抽象类和接口

抽象类:

l  声明一个抽象类使用abstract关键字

l  一个类中可以包含一个或多个抽象方法

l  抽象类中可以存在非抽象方法

l  抽象类不能直接被实例化

l  实现抽象方法用override关键字

DEMO:
    public abstract class Person
    {
        public abstract void SayHello();
        public void about()
        {
            Console.WriteLine("Abstract Demo");
        }
    }

public class Student : Person
    {
        public override void SayHello()
        {
            Console.WriteLine("SayHello");
        }
    }
    class MainClass
    {
        public static void Main()
        {
            new Student().SayHello();
        }
    }

 

接口:

l  接口成员默认访问方式是public,接口成员声明不能包含任何修饰符

l  接口支持多继承

l  接口只能定义行为,在类或结构中实现

interface IExample

{  

    //注意: 与Java不同的是,C#中接口声明不能添加任何修饰符,默认是public  

    //定义方法  

    void F(int value);

    //定义属性  

    string P { get; set; }

    //定义索引指示器  

    string this[int index] { get; set; } 

    //定义事件  

    event EventHandler E;        

}

 

6、什么叫应用程序域?

应用程序域本质上是一种隔离,为隔离正在运行的应用程序提供了一种安全的方法;

应用程序域为安全性、可靠性、版本控制以及卸载程序集提供了隔离边界。

 

7、什么是反射?

反射提供了描述程序集、模块和类型的对象,是.NET中的重要机制。

 

8、什么是序列化?

序列化是将对象转换为容易传输的格式的过程。

 

9、SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。(10)

l  SELECT ID FROM table1 WHERE LastUpdateDate = (SELECT MAX(LastUpdateDate) FROM table1);

l  select top 1 ID from table1 order by LastUpdateDate desc;

 

10、SQL server查询第31条到40条数据

l  select top 10 * from A where ID not in (select top 30 ID from A);两次对表查询 效率较低

l  select top 10 * from (select top 40 ID from A order by ID ) as a order by a.ID descl; 外层查询  效率稍高

l  select * from (select *,row_number() over(order by ID) as ‘userID’ from A) as  a  where a.userID between 31 and 40;   使用了row_number()函数效率更高

 

11、存储过程 

  存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是   SQL   语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。 

  存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。   

  可以出于任何使用   SQL   语句的目的来使用存储过程,它具有以下优点:      

  可以在单个存储过程中执行一系列   SQL   语句。  

  可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。  

  存储过程在创建时即在服务器上进行编译,所以执行起来比单个   SQL   语句快。   

  存储过程的功能取决于数据库所提供的功能。

视图 

  视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 

  对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。如果有几台不同的服务器分别存储组织中不同地区的数据,而您需要将这些服务器上相似结构的数据组合起来,这种方式就很有用。 

  通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。

 

基础知识梳理

标签:ping   sql   全局变量   序列   转换   上进   虚拟   路径   rac   

原文地址:http://www.cnblogs.com/chrisluo/p/7447751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!