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 ...
随机推荐
- jquery on event
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- linux中的swap
1. 也许你会经常遇到一个经典的swap大小设置问题(比如狗血的面试题). 很多人多会说内存的2倍.. 但是个人认为一般而言 swap 不要设置太大,最好不要超过4G. 2. 进程申请内存不足时,发现 ...
- The Future Of ReactiveCocoa by Justin Spahr-Summers
https://www.bilibili.com/video/av9783052?from=search&seid=14165903430339282774
- HDU-2050 折线分割平面 找规律&递推
题目链接:https://cn.vjudge.net/problem/HDU-2050 题意 算了吧,中文题不解释了 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线 ...
- Rman备份异机恢复
最后更新时间:2018/12/29 前置条件 已准备一台安装好Centos6+oracle11gr2 软件的服务器; 只安装了 oracle 数据库软件,需要手工创建以下目录: #环境变量 expor ...
- 装了ubuntu后笔记本电脑的无线网卡用不了,怎么设置?
百度经验的一篇文章 http://jingyan.baidu.com/article/ca2d939dd4f1b4eb6c31ce09.html 点击右上角的齿轮,选择“系统设置” 点击“软件和更 ...
- 三 概要模式 2) MR倒排索引、性能分析、搜索干扰词。
二 倒排索引 倒排索引(英语:Inverted index),也常被称为反向索引.置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射. ...
- ios学习:swift中实现分享到微博、facebook,twitter等
在swift中打开分享功能原来是如此的简单. 1.首先须要 import Social 2.在分享button事件以下 var controller:SLComposeViewController = ...
- 权重轮询调度算法 java版本号
权重轮询调度算法(Weighted Round-Robin Scheduling)--java版本号 因为每台server的配置.安装的业务应用等不同.其处理能力会不一样.所以,我们依据server的 ...
- 水 hdu5208 2015-04-20 21:03 36人阅读 评论(0) 收藏
题意: 选择数列中两个数,使得最大公约数最大 分析: 类似筛选法,因为数值不大,可以用b[i]计算i是多少个数的因子.最后取最大的i即可. #include <bits/stdc++.h> ...