Scott Hanselman的问题-2
.Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)
昨天回答了Scott Hanselman在他清单上关于C#那部分的题目,.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题),今天接着回答他在清单上列出的"每个写代码的人都应该知道"部分的题目。
1. 描述线程跟进程的区别 (Describe the difference between a Thread and a Process?)
进程是指处于运行状态中的程序, 例如在windoe 环境下Ctrl + Alt + Delete 可以看见此时本台window运行中的程序。
线程是指在运行状态中的程序的一个可能路径。
所以一个进程至少有一个线程,多个线程可以在一个进程(多线程的程序)。一个进程开始的时候,会被分配属于它自己的内存地址,但是线程只能拥有所属进程的内存地址。还有同一个进程的线程跟线程之间可以直接访问。但进程跟进程之间需要通过interprocess communication才能相互访问(这一点我没有用过,也不大明白,google上看到的)。
2. 什么是Windows Service, 跟一般的EXE的生命周期由何不同 (What is a Windows Service and how does its lifecycle differ from a "standard" EXE?)
没有写过Windows Service相关的程序, 不太清楚, 上MSDN, Introduction to Windows Service Applications, 才知道Windows Service是写给服务器用的程序. 这种程序没有用户界面, 可以设定随着服务器开启而自动启动或重起, 不依赖于登陆的用户.
至于与EXE生命周期不同的问题, 不是非常得清楚, 有谁了解吗? 请赐教.
3. 在Windows平台下一个单进程最多可获得的内存有多大? 跟这个系统本省允许的最大虚拟内存是一样的吗? 知道这些问题的答案对系统设计有什么影响? (What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?)
自己不知道这个问题的答案, 在Stackoverflow上 http://stackoverflow.com/questions/716798/maximum-net-achievable-memory, 读到对于32bit的,是2GB, 对于64bit的是8TB. MSND上有个表, 对不同版本的Windows系统给出一个介绍, Memory Limits for Windows Releases .
一台系统的最大虚拟内存取决于很多因素, 在Coding Horror 上有一篇文章讲的很详细, Dude, Where's My 4 Gigabytes of RAM? 对于32位的系统基本公式是:
2
32
= 4,294,967,296
4,294,967,296 / (1,024 x 1,024) = 4,096
所以是4G. 所以系统允许的最大虚拟内存不等同于Windwo平台下一个单进程可获得的最大内存.
知道这一点对于系统设计的影响是, 当你跟一些对内存要求比较大的系统打交道时, 比如数据库之类的, 一定要考虑内存这一块.
4. EXE 和 DLL 有什么区别 (What is the difference between an EXE and a DLL?)
Exe是Executable, 可执行的文件, 其中包括可以让这个程序执行的起始点 Public Static Void Main() in .Net. DLL是一个exe可以调用的包含有功能的文件.
5. 什么是强类型跟弱类型? 哪个好, 为什么? What is strong-typing versus weak-typing? Which is preferred? Why?
strong-typing是指尽量早的检查变量的类型, 通常在编译的时候就检查. week-typing是指尽量退后对变量类型的检查, 通常在运行时检查. 到底哪个好? 其实各有各的好, 像ruby, javascript, 都属于week-typing, 好处是写代码的时候比较快. C#属于strong-typing, 好处是如果变量类型不对的话, 编译不会通过, Visual Studio 还会有提示. 至于写代码的速度上讲, 自从C# 3.0以来, 使用var来定义变量, 简单了很多.
6. Corillian's product is a "Component Container." Name at least 3 component containers that ship now with the Windows Server Family.
谁能回答一下这个问题, 我不懂.
7. 什么是PID, 在解决系统问题时有用吗? (What is a PID? How is it useful when troubleshooting a system?)
PID全称是 Process Identifier, 就是进程的一个号码, 通常当系统哪个程序不听使唤的时候, 可以用它来把这个程序关闭. 而且Debug的时候, 也有用.
8. 一个TCP/IP端口可以被多少个进程分享? (How many processes can listen on a single TCP/IP port?)
一个
9. 什么是GAC,它的用处是什么? (What is the GAC? What problem does it solve?)
GAC 是指 Global Assembly Cache, 用处是放在这里的程序集可以被多个程序共同调用, 就像microsoft的很多程序集都在这里. 解决的问题是, 省点硬盘空间. 但是不好的地方是Why should I NOT use the GAC? 管理起不同版本的程序集很麻烦, 可以升级了一个, 不只不觉破坏了很多引用它的程序.
Scott Hanselman的问题-2的更多相关文章
- “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
美国时间 6月7日--9日,为期三天的微软.NET社区虚拟大会正式在 Channel9 上召开,美国时间6.9 是第三天, Scott Hanselman 做Keynote.今天主题围绕的是.NET ...
- 北京时间28号0点以后Scott Hanselman同志台宣布dotnet core 1.0 rtm
今日占住微信号头条的好消息<终于来了!微软.Net Core 1.0下载放出>.本人立马跑到官网http://dot.net看了一下,仍然是.net core 1.0 Preview 1版 ...
- Scott Hanselman's 2014 Ultimate Developer and Power Users Tool List for Windows -摘自网络
Everyone collects utilities, and most folks have a list of a few that they feel are indispensable. ...
- .Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)
过去几年都在忙着找项目,赶项目,没有时间好好整理深究自己在工作中学到的东西.现在好了,趁着找工作的这段空余时间,正好可以总结和再继续夯实自己的.Net, C#基本功.在05年的时候,Scott Han ...
- .Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)
昨天回答了Scott Hanselman在他清单上关于C#那部分的题目,.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题),今天接着回答他在清单上列出的"每个写 ...
- .Net程序员面试 中级篇 (回答Scott Hanselman的问题)
继<.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)>跟<.Net程序员面试 每个人都应知道篇 (回答Scott Hanselman的问题)>之 ...
- Scott Hanselman的问题-3
.Net程序员面试 中级篇 (回答Scott Hanselman的问题) 继<.Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)>跟<.Net程序员 ...
- Scott Hanselman的问题-1
Scott Hanselman的问题 .Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题) 过去几年都在忙着找项目,赶项目,没有时间好好整理深究自己在工作中学到的东西. ...
- Connect() 2016 大会的主题 ---微软大法好
文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technolo ...
随机推荐
- 安卓第一课:android studio 的环境搭建与真机运行以及遇到的问题
AS的下载: https://developer.android.com/studio/index.html AS的安装: android studio, sdk, virtual device都要安 ...
- 关于table布局
html-table 宝贝 状态 单价 数量 商品总价 运费 1sdsdf 2 3fffff 4sdfsfsffsdfs 5dsfs 6
- Python3基础笔记--基础知识
目录: 一.变量问题 二.运算符总结 三.字符串问题 四.数据结构 五.文件操作 一.变量问题 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间.它自始至终都是在内存中活动,只有指明 ...
- inception - resnet
只有reduction-A是共用的,只是改了其中的几个参数 linear是线性激活. 结构是一样的
- Hadoop集群配置搭建
环境:Centos 6.9,Hadoop 2.7.1,JDK 1.8.0_161,Maven 3.3.9 前言: 1.配置一台master服务器,两台或多台slave服务器. 2.master可 ...
- SQL Server存储ntext截断问题
SQL Server存储ntext截断问题 最近遇到一个问题:将大文本存储到数据库的时候,查询出来的文本却被截断了. 最后百度发现,作者提出 sql server management studi ...
- 使用glPushMatrix和glPopMatrix的原因
转自 百度百科 glPushMatrix 函数将当前矩阵堆栈推送,通过一个,复制当前矩阵. 这就是后 glPushMatrix 的调用堆栈的顶部矩阵是它下面的相同的. 1. 原理讲解 终于明白 ...
- UnrealEngine4编码风格的思考
第一次拿到UE4源码,扫了一遍.各种宏定义,各种模板,各种类层次.杂乱无章. 后来慢慢明确其规律: UE4的编码风格是在匈牙利命名法的基础下做了改进,使其更适用游戏引擎业务(业务特点:数据可视编辑.脚 ...
- ubuntu下安装RemixOS双系统(Android x86)
这篇文章主要讲在怎样在ubuntu下安装RemixOS pc版(Android x86版本号),下面两种做法的思路都适合安装不论什么版本号的Android x86版本号到ubuntu系统上,仅仅须要改 ...
- Scala具体解释---------Scala是什么?可伸展的语言!
Scala是什么 Scala语言的名称来自于"可伸展的语言". 之所以这样命名,是由于他被设计成随着使用者的需求而成长.你能够把Scala应用在非常大范围的编程任务上.从写个小脚本 ...