当前位置:首页 » 网络管理 » 程序员如何自动删除文字
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

程序员如何自动删除文字

发布时间: 2022-06-01 01:23:45

‘壹’ Mac 有没有删除右侧文字的快捷键

Mac OSX 命令行快捷键:
删除右侧所有字符:control + e
删除左侧所有字符:control + u
回到命令行行首:control + a
删除左侧一个单词:option + delete
删除整行:option + delete
删除右侧一个字符:fn + delete
备注:
delete 键在右上角。
“命令行”指的是程序员玩儿的:bash, ITerm2.

‘贰’ 键盘如何取消insert


键盘取消insert模式可以用再次点击的方式取消。笔记本电脑的insert键就在删除键的上方,和delete减在同一个位置;而台式机的insert键在删除键的右侧。不小心按到insert键,会导致打字的时候会自动删除后边的内容,没法正常打字。其实再次点击即可回到正常模式。
insert键也叫改写键,这个按键的作用是在输入内容时,会把光标所在后边的内容覆盖掉。当我们不小心按到这个键是会发现平常的光标从一根细线变成了粗方块,insert模式一般是程序员修改代码的时候使用。

‘叁’ java程序员敲代码的时候是怎么迅速打完public static void main(String args []);等类似代码的。

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)
Ctrl+D: 删除当前行
Ctrl+Alt+↓ 复制当前行到下一行(复制增加)
Ctrl+Alt+↑ 复制当前行到上一行(复制增加)
Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)
Alt+↑ 当前行和上面一行交互位置(同上)
Alt+← 前一个编辑的页面
Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)
Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性
Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在当前行插入空行(原理同上条)
Ctrl+Q 定位到最后编辑的地方
Ctrl+L 定位在某行 (对于程序超过100的人就有福音了)
Ctrl+M 最大化当前的Edit或View (再按则反之)
Ctrl+/ 注释当前行,再按则取消注释
Ctrl+O 快速显示 OutLine
Ctrl+T 快速显示当前类的继承结构
Ctrl+W 关闭当前Editer
Ctrl+K 参照选中的Word快速定位到下一个
Ctrl+E 快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)
Ctrl+/(小键盘) 折叠当前类中的所有代码
Ctrl+×(小键盘) 展开当前类中的所有代码
Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)
Ctrl+Shift+E 显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)
Ctrl+Shift+J 反向增量查找(和上条相同,只不过是从后往前查)
Ctrl+Shift+F4 关闭所有打开的Editer
Ctrl+Shift+X 把当前选中的文本全部变味小写
Ctrl+Shift+Y 把当前选中的文本全部变为小写
Ctrl+Shift+F 格式化当前代码
Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)

下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)
Alt+Shift+R 重命名 (是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)
Alt+Shift+M 抽取方法 (这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)
Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)
Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)
Alt+Shift+F 把Class中的local变量变为field变量 (比较实用的功能)
Alt+Shift+I 合并变量(可能这样说有点不妥Inline)
Alt+Shift+V 移动函数和变量(不怎么常用)
Alt+Shift+Z 重构的后悔药(Undo)

编辑
作用域 功能 快捷键
全局 查找并替换 Ctrl+F
文本编辑器 查找上一个 Ctrl+Shift+K
文本编辑器 查找下一个 Ctrl+K
全局 撤销 Ctrl+Z
全局 复制 Ctrl+C
全局 恢复上一个选择 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 内容辅助 Alt+/
全局 全部选中 Ctrl+A
全局 删除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器 显示工具提示描述 F2
Java编辑器 选择封装元素 Alt+Shift+↑
Java编辑器 选择上一个元素 Alt+Shift+←
Java编辑器 选择下一个元素 Alt+Shift+→
文本编辑器 增量查找 Ctrl+J
文本编辑器 增量逆向查找 Ctrl+Shift+J
全局 粘贴 Ctrl+V
全局 重做 Ctrl+Y

查看
作用域 功能 快捷键
全局 放大 Ctrl+=
全局 缩小 Ctrl+-

窗口
作用域 功能 快捷键
全局 激活编辑器 F12
全局 切换编辑器 Ctrl+Shift+W
全局 上一个编辑器 Ctrl+Shift+F6
全局 上一个视图 Ctrl+Shift+F7
全局 上一个透视图 Ctrl+Shift+F8
全局 下一个编辑器 Ctrl+F6
全局 下一个视图 Ctrl+F7
全局 下一个透视图 Ctrl+F8
文本编辑器 显示标尺上下文菜单 Ctrl+W
全局 显示视图菜单 Ctrl+F10
全局 显示系统菜单 Alt+-

导航
作用域 功能 快捷键
Java编辑器 打开结构 Ctrl+F3
全局 打开类型 Ctrl+Shift+T
全局 打开类型层次结构 F4
全局 打开声明 F3
全局 打开外部javadoc Shift+F2
全局 打开资源 Ctrl+Shift+R
全局 后退历史记录 Alt+←
全局 前进历史记录 Alt+→
全局 上一个 Ctrl+,
全局 下一个 Ctrl+.
Java编辑器 显示大纲 Ctrl+O
全局 在层次结构中打开类型 Ctrl+Shift+H
全局 转至匹配的括号 Ctrl+Shift+P
全局 转至上一个编辑位置 Ctrl+Q
Java编辑器 转至上一个成员 Ctrl+Shift+↑
Java编辑器 转至下一个成员 Ctrl+Shift+↓
文本编辑器 转至行 Ctrl+L

搜索
作用域 功能 快捷键
全局 出现在文件中 Ctrl+Shift+U
全局 打开搜索对话框 Ctrl+H
全局 工作区中的声明 Ctrl+G
全局 工作区中的引用 Ctrl+Shift+G

文本编辑
作用域 功能 快捷键
文本编辑器 改写切换 Insert
文本编辑器 上滚行 Ctrl+↑
文本编辑器 下滚行 Ctrl+↓

文件
作用域 功能 快捷键
全局 保存 Ctrl+X
Ctrl+S
全局 打印 Ctrl+P
全局 关闭 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部关闭 Ctrl+Shift+F4
全局 属性 Alt+Enter
全局 新建 Ctrl+N

项目
作用域 功能 快捷键
全局 全部构建 Ctrl+B

源代码
作用域 功能 快捷键
Java编辑器 格式化 Ctrl+Shift+F
Java编辑器 取消注释 Ctrl+\
Java编辑器 注释 Ctrl+/
Java编辑器 添加导入 Ctrl+Shift+M
Java编辑器 组织导入 Ctrl+Shift+O
Java编辑器 使用try/catch块来包围 未设置,太常用了,所以在这里列出,建议自己设置。
也可以使用Ctrl+1自动修正。

运行
作用域 功能 快捷键
全局 单步返回 F7
全局 单步跳过 F6
全局 单步跳入 F5
全局 单步跳入选择 Ctrl+F5
全局 调试上次启动 F11
全局 继续 F8
全局 使用过滤器单步执行 Shift+F5
全局 添加/去除断点 Ctrl+Shift+B
全局 显示 Ctrl+D
全局 运行上次启动 Ctrl+F11
全局 运行至行 Ctrl+R
全局 执行 Ctrl+U

‘肆’ 程序员必须知道的HTML常用代码有哪些

html+css代码
文本设置
1、font-size: 字号参数
2、font-style: 字体格式
3、font-weight: 字体粗细
4、颜色属性
color: 参数
注意使用网页安全色

超链接设置
text-decoration: 参数
主要用途是改变浏览器显示文字链接时的下划线。
参数取值范围:
underline:为文字加下划线
overline:为文字加上划线
line-through:为文字加删除线
blink:使文字闪烁
none:不显示上述任何效果

背景
1、背景颜色
background-color: 参数
2、背景图片
background-image: url(URL)
URL就是背景图片的存放路径,none表示无。
3、背景图片重复
background-repeat: 参数
参数取值范围 :
no-repeat:不重复平铺背景图片
repeat-x:使图片只在水平方向上平铺
repeat-y:使图片只在垂直方向上平铺
如果不指定背景图片重复属性,浏览器默认的是背景图片向水平、垂直两个方向上平铺。
4、背景图片固定
背景图片固定控制背景图片是否随网页的滚动而滚动。如果不设置背景图片固定属性,浏览器默认背景图片随网页的滚动而滚动。为了避免过于花哨的背景图片在滚动时转移浏览者的注意力,一般都设为固定
background-attachment: 参数
参数取值范围:
fixed:网页滚动时,背景图片相对于浏览器的窗口而言,固定不动
scroll:网页滚动时,背景图片相对于浏览器的窗口而言,一起滚动

区块
1、单词间距
word-spacing: 间隔距离
2、字母间距
letter-spacing: 字母间距
3、文本对齐
text-align: 参数
参数的取值:
left:左对齐
right:右对齐
center:居中对齐
justify:相对左右对齐
4、垂直对齐
vertical-align: 参数
top:顶对齐
bottom:底对齐
text-top:相对文本顶对齐
text-bottom:相对文本底对齐
baseline:基准线对齐
middle:中心对齐
sub:以下标的形式显示
super:以上标的形式显示
5、文本缩进
text-indent: 缩进距离
12px相当于一个文字距离
6、空格
white-space: 参数
normal 正常
pre 保留
nowrap 不换行
7、显示样式
display: 参数
参数取值范围:
block:块级元素,在对象前后都换行
inline:在对象前后都不换行
list-item:在对象前后都换行,增加了项目符号
none:无显示

方框
1、height 高度
2、width 宽度
3、padding 内边距
4、margin 外边距
5、float(浮动):可以让块级元素在一行中排列,例如横向菜单。
6、clear 清除浮动

边框
1、样式
border style 参数
边框样式的参数:
none:无边框
dotted:边框为点线
dashed:边框为长短线
solid:边框为实线
double:边框为双线
2、宽度
border width 参数
3、颜色
border color 参数

列表
list-style-type 列表样式
不同浏览器的列表符可能不相同,可能会影响到网页,所以网页中的列表大多都是由背景图片显示。
控制用户界面的样式

鼠标
cursor:鼠标形状参数
CSS鼠标形状参数表:
鼠标形状:CSS代码
style="cursor:hand" 手形
style="cursor:crosshair" 十字形
style="cursor:text" 文本形
style="cursor:wait" 沙漏形
style="cursor:move" 十字箭头形:
style="cursor:help" 问号形
style="cursor:e-resize" 右箭头形
style="cursor:n-resize" 上箭头形
style="cursor:nw-resize" 左上箭头形
style="cursor:w-resize" 左箭头形
style="cursor:s-resize" 下箭头形
style="cursor:se-resize" 右下箭头形
style="cursor:sw-resize" 左下箭头形

HTML常用代码之:结构性定义
文件类型<HTML></HTML> (放在档案的开头与结尾)
文件主题<TITLE></TITLE> (必须放在“文头”区块内)
文头<HEAD></HEAD> (描述性资料,像是“主题”)
文体<BODY></BODY> (文件本体)
标题<H?></H?> (从1到6,有六层选择)
标题的对齐 <H?ALIGN=LEFT|CENTER|RIGHT></H?>
区分<DIV></DIV>
区分的对齐 <DIVALIGN=LEFT|RIGHT|CENTER|JUSTIFY></DIV>
引文区块<BLOCKQUOTE></BLOCKQUOTE> (通常会内缩)
强调<EM></EM> (通常会以斜体显示)
特别强调<STRONG></STRONG> (通常会以加粗显示)
引文<CITE></CITE> (通常会以斜体显示)
码<CODE></CODE> (显示原始码之用)
样本<SAMP></SAMP>
键盘输入<KBD></KBD>
变数<VAR></VAR>
定义<DFN></DFN> (有些浏览器不提供)
地址 <ADDRESS></ADDRESS>
大字<BIG></BIG>
小字<SMALL></SMALL>
与外观相关的标签(作者自订的表现方式)
加粗<B></B>
斜体<I></I>
底线<U></U> (尚有些浏览器不提供)
删除线<S></S> (尚有些浏览器不提供)
下标<SUB></SUB>
上标<SUP></SUP>
打字机体<TT></TT> (用单空格字型显示)
预定格式<PRE></PRE> (保留文件中空格的大小)
预定格式的宽度<PRE WIDTH=?></PRE>(以字符计算)
向中看齐<CENTER></CENTER> (文字与图片都可以)
闪耀<BLINK></BLINK> (有史以来最被嘲弄的标签)
字体大小 <FONTSIZE=?></FONT>(从1到7)
改变字体大小 <FONTSIZE=+|-?></FONT>
基本字体大小 <BASEFONTSIZE=?> (从1到7; 内定为3)
字体颜色 <FONTCOLOR="#$$"></FONT>($$为颜色代码)

HTML常用代码之:修改页面的实用性HTML代码
贴图:<img src="图片地址">
加入连接:<a href="所要连接的相关地址">写上你想写的字</a>
在新窗口打开连接:<a href="相关地址" target="_blank">写上要写的字</a>
移动字体(走马灯):<marquee>写上你想写的字</marquee>
字体加粗:<b>写上你想写的字</b>
字体斜体:<i>写上你想写的字</i>
字体下划线: <u>写上你想写的字</u>
字体删除线: <s>写上你想写的字</s>
字体加大: <big>写上你想写的字</big>
字体控制大小:<h1>写上你想写的字</h1> (其中字体大小可从h1-h5,h1最大,h5最小)
更改字体颜色:<font color="#value">写上你想写的字</font>(其中value值在000000与ffffff(16位进制)之间
消除连接的下划线:<a href="相关地址" style="text-decoration:none">写上你想写的字</a>
贴音乐:<embed src="音乐地址" width="宽度" height="高度" autostart=false>
贴flash: <embed src="flash地址" width="宽度" height="高度">
贴影视文件:<img dynsrc="文件地址" width="宽度" height="高度" start=mouseover>
换行:<br>
段落:<p>段落</p>
原始文字样式:<pre>正文</pre>
换帖子背景:<body background="背景图片地址">
固定帖子背景不随滚动条滚动:<body background="背景图片地址" body bgproperties=fixed>
定制帖子背景颜色:<body bgcolor="#value">(value值见10)
帖子背景音乐:<bgsound="背景音乐地址" loop=infinite>
贴网页:<iframe. src="相关地址" width="宽度" height="高度"></iframe>

HTML常用代码之:常常会遇到的问题

点击关闭窗口
<a href="javascript.:top.window.close();">点击关闭窗口</a>!

请问如何去掉主页右面的滚动条?
<body scroll="no">

<body style="overflow-y:hidden">

如何做到让一个网页自动关闭.
<html>

<head>
<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<param name="Command" value="Close">
</object>
</head>
<body >
这个窗口会在10秒过后自动关闭,而且不会出现提示. </body>

如何在不刷新页面的情况下刷新css?
<style>
button{ color:#000000;}
</style>
<button nclick=document.styleSheets[0].rules[0].style.color=‘‘‘‘red‘‘‘‘>点击按钮直接修改style标签里button选择符使按钮改为红色</button>

请问如何让网页自动刷新?
在head部记入<META. HTTP-EQUIV="Refresh" c>其中20为20秒后自动刷新,你可以更改为任意值。
如何让页面自动刷新?
方法一,用refresh
HTML 代码片段如下:
<head>
<meta. http-equiv="refresh" c>
</head>
5表示刷新时间
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
方法二,使用setTimeout控制
<img src=/logo.gif>
<script>
function rl(){
document.location.reload()
}
setTimeout(rl,2000)
</SCRIPT>

如何让超链接没有下划线
在源代码中的<HEAD>…</HEAD>之间输入如下代码:
<style. type="text/css"> <!--
a { text-decoration: none}
--> </style>

请问如何去掉IE的上下滚动条?
<body style=‘‘‘‘overflow:scroll;overflow-y:hidden‘‘‘‘>
</body>

怎样才能把RealPlayer文件在网页做一个试听连接?
<embed height=25src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart="false" c>

如何用html实现浏览器上后退按钮的功能?
<a href="java script.:history.go(-1)">点击后退</a>
或者
<script> history.back() </SCRIPT>

HTML常用代码之:你不一定知道的技巧

ncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table borderncontextmenu=return(false)><td>no</table> 可用于Table

<body nselectstart="return false"> 取消选取、防止复制

onpaste="return false" 不准粘贴

on="return false;" ncut="return false;" 防止复制

<link rel="Shortcut Icon"href="favicon.ico"> IE地址栏前换成自己的图标

<link rel="Bookmark"href="favicon.ico"> 可以在收藏夹中显示出你的图标

<inputstyle="ime-mode:disabled"> 关闭输入法

永远都会带着框架
<script. language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>

防止被人frame.
<SCRIPT. LANGUAGE=JAVASCRIPT><!--
if (top.location != self.location)top.location=self.location;
// --></SCRIPT>

网页将不能被另存为
<noscript><iframe.src=*.html></iframe></noscript>

查看网页源代码
<input type=button value=查看网页源代码
onclick="window.location = "view-source:"+"http://www.w3cschool.cn"">

删除时确认
<a href="javascript:if(confirm("确实要删除吗?"))location="boos.asp? &areyou=删除&page=1"">删除</a>

屏蔽功能键Shift,Alt,Ctrl
<script>
function look(){
if(event.shiftKey)
alert("禁止按Shift键!");//可以换成ALTCTRL
}
document.onkeydown=look;
</script>

网页不会被缓存
<META. HTTP-EQUIV="pragma" CONTENT="no-cache">
<META. HTTP-EQUIV="Cache-Control"CONTENT="no-cache, must-revalidate">
<META. HTTP-EQUIV="expires"CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
或者<META. HTTP-EQUIV="expires"CONTENT="0">

怎样让表单没有凹凸感?
<input type=text style="border:1 solid #000000">
<input type=text style="border-left:none;border-right:none; border -top:none; border-bottom: 1 solid#000000"></textarea>

不要滚动条?
让竖条没有:
<body style="overflow:scroll;overflow-y:hidden">
</body>
让横条没有:
<body style="overflow:scroll;overflow-x:hidden">
</body>
两个都去掉?更简单了
<body scroll="no">
</body>

怎样去掉图片链接点击后,图片周围的虚线?
<a href="#"nFocus="this.blur()"><img src="logo.jpg"border=0></a>

电子邮件处理提交表单
<form. name="form1"method="post" action="mailt****@***.com"enctype="text/plain">
<input type=submit>
</form>

在打开的子窗口刷新父窗口的代码里如何写?
window.opener.location.reload()

如何设定打开页面的大小
<body nload="top.resizeTo(300,200);">
打开页面的位置<bodynload="top.moveBy(300,200);">

在页面中如何加入不是满铺的背景图片,拉动页面时背景图不动
<STYLE>
body
{background-image:url(logo.gif); background-repeat:no-repeat;
background-position:center;background-attachment: fixed}
</STYLE>

检查一段字符串是否全由数字组成
<script. language="Javascript"><!--
function checkNum(str){return str.match(//D/)==null}
alert(checkNum("1232142141"))
alert(checkNum("123214214a1"))
// --></script>

获得一个窗口的大小
document.body.clientWidth; document.body.clientHeight

怎么判断是否是字符
if (/[^/x00-/xff]/g.test(s)) alert("含有汉字");
else alert("全是字符");

TEXTAREA自适应文字行数的多少
<textarea rows=1 name=s1 cols=27npropertychange="this.style.posHeight=this.scrollHeight">
</textarea>

日期减去天数等于第二个日期
<script. language=Javascript>
function cc(dd,dadd)
{
//可以加上错误处理
var a = new Date(dd)
a = a.valueOf()
a = a - dadd * 24 * 60 * 60 * 1000
a = new Date(a)
alert(a.getFullYear() + "年" + (a.getMonth() +1) + "月" + a.getDate() + "日")
} cc("12/23/2002",2)
</script>

选择了哪一个Radio
<HTML><script. language="vbscript">
function checkme()
for each ob in radio1
if ob.checked then window.alert ob.value
next
end function
</script><BODY>
<INPUT name="radio1" type="radio"value="style" checked>Style.
<INPUT name="radio1" type="radio"value="barcode">Barcode
<INPUT type="button" value="check"nclick="checkme()">
</BODY></HTML>

脚本永不出错
<SCRIPT. LANGUAGE="JavaScript">
<!-- Hide function killErrors(){return true;} window.onerror = killErrors;// -->
</SCRIPT>

ENTER键可以让光标移到下一个输入框
<input nkeydown="if(event.keyCode==13)event.keyCode=9">

‘伍’ 程序员面试经常被提到的问题

java 程序员常用面试题- -

Java程序员面试三十二问

Java程序员面试三十二问
作者:佚名 来自:未知

第一,谈谈final, finally, finalize的区别。

第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以

implements(实现)interface(接口)?

第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

第四,&和&&的区别。

第五,HashMap和Hashtable的区别。

第六,Collection 和 Collections的区别。

第七,什么时候用assert.

第八,GC是什么? 为什么要有GC?

第九,String s = new String("xyz");创建了几个String Object?

第十,Math.round(11.5)等于多少? Math.round(-11.5)等于多少?

第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

第十二,sleep() 和 wait() 有什么区别?

第十三,Java有没有goto?

第十四,数组有没有length()这个方法? String有没有length()这个方法?

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()?

它们有何区别?

第十七,给我一个你最常见到的runtime exception.

第十八,error和exception有什么区别?

第十九,List, Set, Map是否继承自Collection接口?

第二十,abstract class和interface有什么区别?

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是

synchronized?

第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体

类(concrete class)?

第二十三,启动一个线程是用run()还是start()?

第二十四,构造器Constructor是否可被override?

第二十五,是否可以继承String类?

第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它

方法?

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行

,什么时候被执行,在return前还是后?

第二十八,编程题: 用最有效率的方法算出2乘以8等于几?

第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对



第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后

的结果,那么这里到底是值传递还是引用传递?

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

第三十二,编程题: 写一个Singleton出来。

以下是答案

第一,谈谈final, finally, finalize的区别。

final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父

类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,

可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能

读取,不可修改。被声明为final的方法也同样只能使用,不能重载finally?再异常处理时提供 finally

块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入

finally 块(如果有的话)。

finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去

之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是

在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执

行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以

implements(实现)interface(接口)?

匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口

,由另一个内部类实现。

第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套

类最大的不同就在于是否有指向外部的引用上。具体可见http:

//www.frontfree.net/articles/services/view.asp?id=704&page=1

注: 静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2

不能从一个static内部类的一个对象访问一个外部类对象

第四,&和&&的区别。

&是位运算符。&&是布尔逻辑运算符。

第五,HashMap和Hashtable的区别。

都属于Map接口的类,实现了将惟一键映射到特定的值上。

HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。

Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步

的。

第六,Collection 和 Collections的区别。

Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。

Collection是个java.util下的接口,它是各种集合结构的父接口。

第七,什么时候用assert。

断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为 true。如果表达式计算为

false,那么系统会报告一个 AssertionError。它用于调试目的:

assert(a > 0); // throws an AssertionError if a <= 0

断言可以有两种形式:

assert Expression1 ;
assert Expression1 : Expression2 ;

Expression1 应该总是产生一个布尔值。
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。

断言在默认情况下是禁用的。要在编译时启用断言,需要使用 source 1.4 标记:

javac -source 1.4 Test.java

要在运行时启用断言,可使用 -enableassertions 或者 -ea 标记。
要在运行时选择禁用断言,可使用 -da 或者 -disableassertions 标记。
要系统类中启用断言,可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。

可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。

不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参

数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任

何方式改变程序的状态。

第八,GC是什么? 为什么要有GC? (基础)。

GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收

集,可以调用下面的方法之一:

System.gc()
Runtime.getRuntime().gc()

第九,String s = new String("xyz");创建了几个String Object?

两个对象,一个是"xyx",一个是指向"xyx"的引用对象s。

第十,Math.round(11.5)等于多少? Math.round(-11.5)等于多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?

short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为

s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

第十二,sleep() 和 wait() 有什么区别? 搞线程的最爱

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。

这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)"醒来"的线程具有更

高的优先级,(b)正在运行的线程因为其它原因而阻塞。

wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对

象进入等待状态,直到被唤醒或等待时间到。

第十三,Java有没有goto?

Goto?java中的保留字,现在没有在java中使用。

第十四,数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。
String有有length()这个方法。

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类

之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其

父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子

类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或

有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改

变返回值的类型。

第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它

们有何区别?

Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相

等。

equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的

内容和类型相配的话,返回真值。

第十七,给我一个你最常见到的runtime exception。

ArithmeticException, ArrayStoreException, BufferOverflowException,

BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException,

CMMException, , DOMException, EmptyStackException,

IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,

IllegalStateException, ImagingOpException, IndexOutOfBoundsException,

MissingResourceException, NegativeArraySizeException, NoSuchElementException,

NullPointerException, ProfileDataException, ProviderException, RasterFormatException,

SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException,

UnsupportedOperationException

第十八,error和exception有什么区别?

error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能

处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

第十九,List, Set, Map是否继承自Collection接口?

List,Set是

Map不是

第二十,abstract class和interface有什么区别?

声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基

本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而

可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象

静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代

之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的

接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量

。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即

将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。

由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类

型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是

synchronized?

都不能

第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类

(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类

必须有明确的构造函数。

第二十三,启动一个线程是用run()还是start()?

启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由

JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。

第二十四,构造器Constructor是否可被override?

构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。

第二十五,是否可以继承String类?

String类是final类故不可以继承。

第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它

方法?

不能,一个对象的一个synchronized方法只能由一个线程访问。

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行

,什么时候被执行,在return前还是后?

会执行,在return前执行。

第二十八,编程题: 用最有效率的方法算出2乘以8等于几?

有C背景的程序员特别喜欢问这种问题。

2 << 3

第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?

不对,有相同的hash code。

第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后

的结果,那么这里到底是值传递还是引用传递?

是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数

的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int

、 short、 char 或者 byte。long,string 都不能作用于swtich。

第三十二,编程题: 写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

一般Singleton模式通常有几种种形式:

第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,

在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。

public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}

第二种形式:

public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}

其他形式:

定义一个类,它的构造函数为private的,所有方法为static的。

一般认为第一种形式要更加安全些

第三十三 Hashtable和HashMap

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许

还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为

contains方法容易让人引起误解。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,

不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

‘陆’ 键盘快捷键

以下是微软官方发布的Windows 7操作系统快捷键的应用解释:1. 轻松访问键盘快捷方式 按住

右Shift 八秒钟: 启用和关闭筛选键 按左 Alt+左 Shift+PrtScn(或 PrtScn):启用或关闭

高对比度 按左 Alt+左 Shift+Num Lock :启用或关闭鼠标键 按 Shift 五次: 启用或关

闭粘滞键 按住 Num Lock 五秒钟:启用或关闭切换键 Windows 徽标键 + U : 打开轻松访

问中心2. 常规键盘快捷方式 F1 显示帮助 Ctrl+C 复制选择的项目 Ctrl+X 剪切选择

的项目 Ctrl+V 粘贴选择的项目 Ctrl+Z 撤消操作 Ctrl+Y 重新执行某项操作

Delete 删除所选项目并将其移动到“回收站” Shift+Delete 不先将所选项目移动到“回

收站”而直接将其删除 F2 重命名选定项目 Ctrl+向右键 将光标移动到下一个字词的起始

处 Ctrl+向左键 将光标移动到上一个字词的起始处 Ctrl+向下键 将光标移动到下一个段落

的起始处 Ctrl+向上键 将光标移动到上一个段落的起始处 Ctrl+Shift 加某个箭头键 选择

一块文本 Shift 加任意箭头键 在窗口中或桌面上选择多个项目,或者在文档中选择文本

Ctrl 加任意箭头键+空格键 选择窗口中或桌面上的多个单个项目 Ctrl+A 选择文档或窗口中的

所有项目 F3 搜索文件或文件夹 Alt+Enter 显示所选项的属性 Alt+F4 关闭活动项目或

者退出活动程序 Alt+空格键 为活动窗口打开快捷方式菜单 Ctrl+F4 关闭活动文档(在允许

同时打开多个文档的程序中) Alt+Tab 在打开的项目之间切换 Ctrl+Alt+Tab 使用箭头键在

打开的项目之间切换 Ctrl+鼠标滚轮 更改桌面上的图标大小 Windows 徽标键 + Tab 使用

Aero Flip 3-D 循环切换任务栏上的程序 Ctrl + Windows 徽标键 + Tab 通过 Aero Flip

3-D 使用箭头键循环切换任务栏上的程序 Alt+Esc 以项目打开的顺序循环切换项目 F6 在

窗口中或桌面上循环切换屏幕元素 F4 在 Windows 资源管理器中显示地址栏列表 Shift

+F10 显示选定项目的快捷菜单 Ctrl+Esc 打开“开始”菜单 Alt+加下划线的字母 显示相

应的菜单 Alt+加下划线的字母 执行菜单命令(或其他有下划线的命令) F10 激活活动程序

中的菜单栏 向右键 打开右侧的下一个菜单或者打开子菜单 向左键 打开左侧的下一个菜单

或者关闭子菜单 F5 刷新活动窗口 Alt+向上键 在 Windows 资源管理器中查看上一级文件

夹 Esc 取消当前任务 Ctrl+Shift+Esc 打开任务管理器 插入 CD 时按住 Shift 阻止

CD 自动播放3. 对话框键盘快捷方式 Ctrl+Tab 在选项卡上向前移动 Ctrl+Shift+Tab

在选项卡上向后移动 Tab 在选项上向前移动 Shift+Tab 在选项上向后移动 Alt+加下

划线的字母 执行与该字母匹配的命令(或选择选项) Enter 对于许多选定命令代替单击鼠标

空格键 如果活动选项是复选框,则选中或清除该复选框 箭头键 如果活动选项是一组选项

按钮,则选择某个按钮 F1 显示帮助 F4 显示活动列表中的项目 Backspace 如果在“另

存为”或“打开”对话框中选中了某个文件夹,则打开上一级文件夹4. Windows 徽标键相关的快

捷键 Windows徽标键就是显示为Windows旗帜,或标有文字Win或Windows的按键,以下简称Win

键。XP时代有4个经典的 Win 键组合:R/E/F/L。到了 Win7,花样更多了。 Win:打开或关闭

开始菜单 Win + Pause:显示系统属性对话框 Win + D:显示桌面 Win + M:最小化所

有窗口 Win + SHIFT + M:还原最小化窗口到桌面上 Win + E:打开我的电脑 Win + F

:搜索文件或文件夹 Ctrl + Win + F:搜索计算机(如果您在网络上) Win + L:锁定您的

计算机或切换用户 Win + R:打开运行对话框 Win + T:切换任务栏上的程序(感觉是和

alt+ESC 一样 ) Win + 数字:让位于任务栏指定位置(按下的数字作为序号)的程序,新开一个

实例。(感觉这个比较新颖,貌似快速启动。) Shift+ Windows logo key +number:Start a new

instance of the program pinnedto the taskbar in the position indicated by the

number Ctrl + Win + 数字:让位于任务栏指定位置(按下的数字作为序号)的程序,切换到上

一次的活动窗口。 Ctrl+Windowslogo key +number:Switch to the last active window of

the program pinnedto the taskbar in the position indicated by the number ALT +

Win + 数字:让位于任务栏指定位置(按下的数字作为序号)的程序,显示跳转清单。 Alt+Windows

logokey +number: Open the Jump List for the program pinned to the taskbarin the

position indicated by the number Win + TAB:循环切换任务栏上的程序并使用的Aero三维

效果 Ctrl + Win + TAB:使用方向键来循环循环切换任务栏上的程序,并使用的Aero三维效果

按Ctrl + Win + B:切换到在通知区域中显示信息的程序 Win + 空格:预览桌面 Win

+ ↑:最大化窗口 Win + ↓:最小化窗口 Win + ←:最大化到窗口左侧的屏幕上 Win

+ →:最大化窗口到右侧的屏幕上 Win + Home:最小化所有窗口,除了当前激活窗口 Win+

SHIFT + ↑:拉伸窗口的到屏幕的顶部和底部 Win+ SHIFT + →/←:移动一个窗口,从一个显

示器到另一个 Win + P:选择一个演示文稿显示模式 Win + G:循环切换侧边栏的小工具

Win + U:打开轻松访问中心 Win + x:打开Windows移动中心5. Windows Explorer相关快

捷键 Ctrl+N 打开新窗口 Ctrl+Shift+N 新建文件夹 End 显示活动窗口的底部

Home 显示活动窗口的顶部 F11 最大化或最小化活动窗口 Num Lock+小键盘星号(*) 显示选

中文件夹的所有子文件夹 Num Lock+小键盘加号(+) 显示选中文件夹的内容 Num Lock+小键

盘减号(-) 折叠选中文件夹 左方向键 折叠当前展开的选中文件夹或选中上层文件夹 Alt

+Enter 打开选中项目的属性对话框 Alt+P 显示预览窗格 Alt+左方向键 切换到前一次打开

的文件夹 右方向键 显示(展开)当前选中项目或选中第一个子文件夹 Alt+右方向键 切换到

下一次后打开的文件夹 Alt+上方向键 打开上层文件夹 Ctrl+鼠标滚轮 改变文件和文件夹

图标的大小和外观 Alt+D 选中地址栏(定位到地址栏) Ctrl+E 选中搜索框(定位到搜索框)

6. 放大镜键盘快捷方式 Windows 徽标键 + 加号或减号 放大或缩小 Ctrl+Alt+空格键 显

示鼠标指针 Ctrl+Alt+F 切换到全屏模式 Ctrl+Alt+L 切换到镜头模式 Ctrl+Alt+D 切

换到停靠模式 Ctrl+Alt+I 反色 Ctrl+Alt+箭头键 按箭头键的方向平移 Ctrl+Alt+R

调整镜头的大小 Windows 徽标键 + Esc 退出放大镜7. 远程桌面相关快捷键 Alt+Page Up

按从左向右顺序切换程序 Alt+Page Down 按从右向左切换程序 Alt+Insert 按程序打开先

后顺序循环切换程序 Alt+Home 显示“开始”菜单 Ctrl+Alt+Break 在窗口模式和全屏之间

切换 Ctrl+Alt+End 显示Windows安全性对话框 Alt+Delete 显示当前窗口的系统菜单

Ctrl+Alt+-(小键盘减号) 当前活动窗口截图 Ctrl+Alt++(小键盘加号) 全屏截图 Ctrl

+Alt+向右键 从远程桌面控件“跳转”到主机程序中的控件(如按钮或文本框)。将远程桌面控件嵌

入到其他(主机)程序后,此功能非常有用。 Ctrl+Alt+向左键 从远程桌面控件“跳转”到主机

程序中的控件(如按钮或文本框)。将远程桌面控件嵌入到其他(主机)程序后,此功能非常有用。8.

画图键盘快捷方式 Ctrl+N 创建新的图片 Ctrl+O 打开现有图片 Ctrl+S 将更改保存到

图片 F12 将此图片另存为新文件 Ctrl+P 打印图片 Alt+F4 关闭图片及其画图窗口

Ctrl+Z 撤消更改 Ctrl+Y 恢复更改 Ctrl+A 选择整个图片 Ctrl+X 剪切选择内容

Ctrl+C 将选择内容复制到剪贴板 Ctrl+V 从剪贴板粘贴选择内容 向右键 将选择内容或活

动图形向右移动一个像素 向左键 将选择内容或活动图形向左移动一个像素 向下键 将选择

内容或活动图形向下移动一个像素 向上键 将选择内容或活动图形向上移动一个像素 Esc 取

消某个选择 Delete 删除某个选择 Ctrl+B 粗体选择文本 Ctrl++ 将画笔、直线或形状

轮廓的宽度增加一个像素 Ctrl+- 将画笔、直线或形状轮廓的宽度减少一个像素 Ctrl+I 将

所选文本改为斜体 Ctrl+U 为所选文本添加下划线 Ctrl+E 打开“属性”对话框 Ctrl+W

打开“调整大小和扭曲”对话框 Ctrl+Page Up 放大 Ctrl+Page Down 缩小 F11 以全

屏模式查看图片 Ctrl+R 显示或隐藏标尺 Ctrl+G 显示或隐藏网格线 F10 或 Alt 显示

快捷键提示 Shift+F10 显示当前快捷菜单 F1 打开“画图”帮助9. 写字板的键盘快捷方式

Ctrl+N 新建一个文档 Ctrl+O 打开一个现有文档 Ctrl+S 将更改保存到文档 F12

将此文档另存为新文件 Ctrl+P 打印文档 Alt+F4 关闭“写字板” Ctrl+Z 撤消更改

Ctrl+Y 恢复更改 Ctrl+A 选择整个文档 Ctrl+X 剪切选择内容 Ctrl+C 将选择内容

复制到剪贴板 Ctrl+V 从剪贴板粘贴选择内容 Ctrl+B 将所选文本改为粗体 Ctrl+I 将

所选文本改为斜体 Ctrl+U 为所选文本添加下划线 Ctrl+= 使选择的文本成为下标

Ctrl+Shift+= 使选择的文本成为上标 Ctrl+L 向左对齐文本 Ctrl+E 向中心对齐文本

Ctrl+R 向右对齐文本 Ctrl+J 对齐文本 Ctrl+1 设置单倍行距 Ctrl+2 设置双倍行距

Ctrl+5 将行距设置为 1.5 Ctrl+Shift+> 增加字体大小 Ctrl+Shift+< 减小字体大小

Ctrl+Shift+A 将字符更改为全部使用大写字母 Ctrl+Shift+L 更改项目符号样式

Ctrl+D 插入 Microsoft 画图图片 Ctrl+F 在文档中查找文本 F3 在“查找”对话框中查

找文本的下一个实例 Ctrl+H 在文档中替换文本 Ctrl+向左键 将光标向左移动一个字

Ctrl+向右键 将光标向右移动一个字 Ctrl+向上键 将光标移动到上一行 Ctrl+向下键 将光

标移动到下一行 Ctrl+Home 移动到文档的开头 Ctrl+End 移动到文档的结尾 Ctrl

+Page Up 向上移动一个页面 Ctrl+Page Down 向下移动一个页面 Ctrl+Delete 删除下一

个字 F10 显示快捷键提示 Shift+F10 显示当前快捷菜单 F1 打开“写字板”帮助10.

计算器的键盘快捷方式 Atl+1 切换到标准模式 Alt+2 切换到科学型模式 Alt+3 切换到

程序员模式 Alt+4 切换到统计信息模式 Ctrl+E 打开日期计算 Ctrl+H 将计算历史记录

打开或关闭 Ctrl+U 打开单位转换 Alt+C 计算或解决日期计算和工作表 F1 打开“计算

器”帮助 Ctrl+Q 按下 M- 按钮 Ctrl+P 按下 M+ 按钮 Ctrl+M 按下 MS 按钮

Ctrl+R 按下 MR 按钮 Ctrl+L 按下 MC 按钮 % 按下 % 按钮 F9 按下 +/– 按钮 /

按下 / 按钮 * 按下 * 按钮 + 按下 + 按钮 - 按下 – 按钮 R 按下 1/× 按钮

@ 按下平方根按钮 0-9 按下数字按钮 (0-9) = 按下 = 按钮 . 按下 .(小数点)按钮

Backspace 按下 Backspace 按钮 Esc 按下 C 按钮 Del 按下 CE 按钮 Ctrl

+Shift+D 清除计算历史记录 F2 编辑计算历史记录 向上箭头键 在计算历史记录中向上导

航 向下箭头键 在计算历史记录中向下导航 Esc 取消编辑计算历史记录 Enter 编辑后

重新计算计算历史记录 F3 在科学型模式下选择“角度” F4 在科学型模式下选择“弧度”

F5 在科学型模式下选择“梯度” I 在科学型模式下按 Inv 按钮 D 在科学型模式下按

Mod 按钮 Ctrl+S 在科学型模式下按 sinh 按钮 Ctrl+O 在科学型模式下按 cosh 按钮

Ctrl+T 在科学型模式下按 tanh 按钮 ( 在科学型模式下按 ( 按钮 ) 在科学型模式下按

) 按钮 N 在科学型模式下按 ln 按钮 ; 在科学型模式下按 Int 按钮 S 在科学型模式

下按 sin 按钮 O 在科学型模式下按 cos 按钮 T 在科学型模式下按 tan 按钮 M 在科

学型模式下按 dms 按钮 P 在科学型模式下按 pi 按钮 V 在科学型模式下按 F-E 按钮

X 在科学型模式下按 Exp 按钮 Q 在科学型模式下按 x^2 按钮 Y 在科学型模式下按 x^y

按钮 # 在科学型模式下按 x^3 按钮 L 在科学型模式下按 log 按钮 ! 在科学型模式下

按 n! 按钮 Ctrl+Y 在科学型模式下按 y√x 按钮 Ctrl+B 在科学型模式下按 3√x 按钮

Ctrl+G 在科学型模式下按 10x 按钮 F5 在程序员模式下选择 Hex F6 在程序员模式下选

择 Dec F7 在程序员模式下选择 Oct F8 在程序员模式下选择 Bin F12 在程序员模式下

选择 QWord F2 在程序员模式下选择 Dword F3 在程序员模式下选择 Word F4 在程序员

模式下选择 Byte K 在程序员模式下按 RoR 按钮 J 在程序员模式下按 RoL 按钮 % 在

程序员模式下按 Mod 按钮 ( 在程序员模式下按 ( 按钮 ) 在程序员模式下按 ) 按钮 |

在程序员模式下按 or 按钮 ^ 在程序员模式下按 Xor 按钮 ~ 在程序员模式下按 Not 按钮

在程序员模式下按 And 按钮 A-F 在程序员模式下按 A-F 按钮 空格键 在程序员模式

下切换位值 A 在统计信息模式下按 Average 按钮 Ctrl+A 在统计信息模式下按 Average

Sq 按钮 S 在统计信息模式下按 Sum 按钮 Ctrl+S 在统计信息模式下按 Sum Sq 按钮 T

在统计信息模式下按 S.D. 按钮 Ctrl+T 在统计信息模式下按 Inv S.D. 按钮 D 在统计信

息模式下按 CAD 按钮11. Windows 日记本键盘快捷方式 Ctrl+N 开始新的便笺 Ctrl+O 打

开最近使用的便笺 Ctrl+S 将更改保存到便笺 Ctrl+Shift+V 将便笺移动到特定的文件夹

Ctrl+P 打印便笺 Alt+F4 关闭便笺及其日记本窗口 Ctrl+Z 撤消更改 Ctrl+Y 恢复

更改 Ctrl+A 选择页面上的所有项目 Ctrl+X 剪切选择内容 Ctrl+C 将选择内容复制到

剪贴板 Ctrl+V 从剪贴板粘贴选择内容 Esc 取消某个选择 Delete 删除某个

选择 Ctrl+F 开始基本查找 Ctrl+G 转到页面 F5 刷新查找结果 F5 刷新便笺列表

F6 在便笺列表和便笺之间切换 Ctrl+Shift+C 显示便笺列表中列标题的快捷菜单 F11 以

全屏模式查看便笺 F1 打开“日记本”帮助12. Windows 帮助查看器键盘快捷方式 Alt+C

显示目录 Alt+N 显示“连接设置”菜单 F10 显示“选项”菜单 Alt+向左键 返回先前

查看过的主题 Alt+向右键 向前移动到下一个(先前已查看过的)主题 Alt+A 显示客户支持

页面 Alt+Home 显示帮助和支持主页 Home 移动到主题的开头 End 移动到主题的末尾

Ctrl+F 搜索当前主题 Ctrl+P 打印主题 F3 将光标移动到搜索框

‘柒’ Android程序员工具书,至少要能很方便查找到常用的类库啊,常用控件(widget)的属性和方法什么的

《Google Android开发入门与实战》网上有电子书版本的
pdf 下载地址http://ishare.iask.sina.com.cn/f/7617452.html,望采纳

‘捌’ input指令用不了

在前面的学习中,我们学会了用 print()函数让计算机执行打印指令,开始使用 Python 基本的三大数据类型,并且可以通过 if 条件判断语句来实现与计算机沟通的逻辑。
经过了这三关的学习,你对 Python 的了解迈进了一大步!有没有开始觉得,过去冷冰冰的计算机似乎在和你的沟通下,也变得亲切起来了~
接下来,我们将学习一种新的魔法来让程序拥有更强大的力量!先来回顾我们上一关最后的练习:
虽然我们可以手动修改第一行 status的值来让条件语句进入不同的分支里。但是真正代码是不会这样写呢!
虽然我们可以手动修改第一行 status的值来让条件语句进入不同的分支里。但是真正代码是不会这样写呢!
那有没有什么高级的方法来让用户把自己的答案输入给计算机的呢?当然是有的!
下面对上一关的练习赋予了 输入的魔法,通过代码运行来体会吧~
编程练习
运行代码,根据提示输入 dying 或 healthy,dying 代表即将去世,healthy 代表健康。
注意:不需要修改代码,也不要求阅读代码,直接点 运行按钮来体验下运行的过程~。
input() 函数
有了 输入魔法,程序就好像有了对话的功能,计算机根据你的回答进行对应的处理,计算机能听懂你说的话。
你通过 Python 代码向计算机提供指令,计算机执行指令,然后通过 input()函数把问题显示在屏幕上,等你输入答案。这个过程就实现一个互动的程序。
执行输入指令(input)和之前学过的打印指令(print)的方法类似。上图
input()函数的内容就是显示在屏幕上的问题。
接下来我们进入唐伯虎和秋香的故事,来学习 input()函数的用法~
唐伯虎喜欢了华夫人的婢女秋香,华夫人不想轻轻松松就把秋香许配给他。
于是,她想找你开发一个程序实现“唐伯虎点秋香”。
初为程序员的你第一次接需求,是不是有点小激动?
我们先来分析她的需求要如何实现,可以用 A、B、C、D 四个选项代表四个女子,其中只有一个是真正的秋香,比如 C。唐伯虎运行程序,如果选择 C,他就成功选到秋香;否则,A、B、D 都是奇丑无比的女子。
是不是挺简单的?那我们先来实现第一步,使用刚刚学习的 input() 函数在屏幕上显示问题。
编程练习
通过 input() 函数在屏幕上显示问题,问题内容为:“请从 A、B、C、D 中选择你要娶的姑娘:”。
input() 赋值
现在我们已经可以通过 input() 函数在屏幕上显示问题,下一步就是怎么拿到用户回答问题的答案。
上一关我们学过变量赋值,可以通过变量赋值的方式获取用户输入的答案:
上面这行代码将 input() 函数的执行结果(也就是用户的答案)赋值给变量 answer。所以,我们放进 answer 这个盒子里的东西,就是通过 input() 函数拿到的用户的答案。
为了看到 answer里面存放的是什么内容,可以通过 print()函数,打印 answer变量。
现在我们可以通过 answer 向用户提问,然后将用户的回答打印到屏幕上了。
编程练习
按照华夫人的需求,只有唐伯虎选的是 C 时,他选中的才是秋香。现在,根据注释的提示补全代码,实现唐伯虎点秋香的程序。
注意:计算机识别英文时会区分大小写。选项中的 C 要求的是大写,如果输入了小写 c,系统会判定与条件不符哦。
看看现在的代码,你已经可以将 input() 函数、print()函数和条件语句组合起来使用,已经非常厉害了!
现在你来猜猜,通过 input()函数拿到的结果(answer)是什么类型的数据呢?
虽然我们还没学习这个知识点,但是通过前面的代码你或许能猜到。因为字符串的加法操作要求左右两边都是字符串,所以第二行代码中右边的 answer 是字符串变量。就可以反推出来 input() 函数拿到的结果是字符串类型。
对于 input() 函数来说,不管用户输入的回答是什么,比如整数 33、小数 3.14 或者火星文,Python 都会统一把它转换为字符串类型。
由于我们使用赋值运算符 =把 input() 函数的字符串结果,赋给了变量 answer,所以这个变量也一定是字符串类型。
如果我们需要这个字符串变量 answer转换为整数类型,你知道怎么实现吗?
你还记得第二关学习的三个类型转换函数吧~
虽然 input() 函数给我们的是字符串类型,但是你可以使用类型转换将结果转为你需要的类型!
使用 int() 进行类型转换后,通过 type() 获取到的 answer将是整数类型。有的同学看到上面指令的嵌套调用可能有点晕。来图解一下:
拓展:其实上面的代码可以简写为:print(type(int(input('猜一猜闻闻的年龄(1-30 之间):'))))
上面展示了二层嵌套执行的情况,以后的代码你还会碰到更深层级的嵌套执行,比如三级、四级等等。不过他们原理都是一样的,现在考考你,猜猜下面两行代码的效果?
print(type(str('秋香')))print(type('秋香'))
第一行代码是一个三层的函数嵌套执行。指令从右到左执行,顺序是 str() -> type() -> print()。先执行 str('秋香'),执行后结果为 '秋香',然后把结果给 type() 函数执行,type('秋香') 的结果是 <class 'str'>,然后把 <class 'str'> 给 print() 函数执行,最终屏幕打印 <class 'str'>。是不是越来越晕了 ,别担心,我们看一下图解,一目了然:
因为 '秋香'本身就是字符串,所以 '秋香' 和 str('秋香’) 的结果一样,这两行代码效果一样。现在你对 input()函数的使用和函数的多层嵌套执行清楚了吗?
编程练习
将字符串 '3.14' 转换为数字 3.14,然后在屏幕上打印出它的类型。
总复习
现在,本关卡的重点,input() 函数的所有知识点我们就介绍完了。最后,我们再来整理一下 input()函数的重点内容。
现在,请你回忆一下,你是不是已经学会了 input() 函数的用法,并且将之前学到的变量、数据类型、条件分支、类型转换,一起结合着 input() 函数又复习、利用了一遍?回望前几关,我们学会了指令的执行、三大数据类型、条件结构等等非常多的知识。一路走来的你,现在是不是不再觉得编程深奥难解了。
现在我们已经学会了五个函数(print()、input()、str()、int()、float())的使用,通过 input()和 print() 实现一个文本的输入和输出~
在理解了三大基本数据类型的同时可以在需要的时候进行类型转换,应付自如!而条件分支的学习让我们的代码具有了条件判断的逻辑,实现更强大的功能!
是不是发现已经在不知不觉中学习了这么多东西,进入了全新的编程世界!
想当初,开始学习时,你或许觉得犹豫、不自信:编代码很酷,但是好难哦,它对我神秘且遥不可及,我真的能学会吗?
而现在,你已经站在 Python 之旅的起点,通过 print() 函数、条件语句、input() 函数,你学会了如何用代码找到至尊宝的意中人、讲述孔明的故事,用代码完成阿甘的选择获得璀璨的人生,帮华夫人实现唐伯虎点秋香的程序。
你已经可以用代码做这么多的事情了!
在通关基础课的所有关卡后,你将不仅能读懂网上的代码,自己也能熟练地写出大段代码,还能编出迷宫小游戏!

一起看看我们学完后续进阶的课程,我们能做些什么呢?
Python 爬虫项目
我的同事乐乐,在前段时间,想自动收集知乎上的关于 Python 编程话题的高赞问题和高赞回答,学了爬虫课后,自己动手写了一个爬虫程序,可以自动爬取知乎 Python 话题下所有讨论里的高赞回答,精准获取一手资料,其他同事对他称赞不已!
生活中,乐乐是个追星族,他利用爬虫技术,写了个微博抢沙发的程序,每当他的爱豆发了微博,他的疯狂打 call 总是出现在沙发位,俨然成为一个“敬业”的 fans!
学会了爬虫,你就可以在庞大的网络世界里畅游,随意抓取你需要的信息。往有趣了说,你可以自动发微博,抓取爱豆行程;往实用了说,你可以在全网订阅自己关注的领域新闻,下载各种文稿视频资料。

信息即价值,这项技能会让你在各行各业中脱颖而出!
Python 数据分析项目
Python 的另一个热门应用就是数据分析。互联网发展至今,已离不开数据,使得很多公司格外青睐具备数据分析能力的人。
掌握分析数据的你,可以从杂乱的数据中找到规律,发现其中隐藏的不为人知的奥秘从而创造商业价值!
现在,很多人都跃跃欲试,想要掌握数据分析的技能,让自己在职场上更有主动权!
Python 自动化办公项目
接下来介绍一下我身边的财务丹丹,使用自动化办公解放自己的故事。
丹丹在每个月初统计数据要花好几天,而且老板一直催着要数据,她一着急赶数据就会出现更多的纰漏,比如业务 A 的某项数据写成了业务 B 的,每个月初都是她最烦的几天……
终于,有一天她意识到不能再这样下去了!
丹丹找到了拯救自己的工具——Python,开始了她人生第一门编程语言的学习。
一个月后,她已经可以用 Python 编好代码,一键运行,计算机批量处理数据,然后生成 Excel 表格,最终邮件自动发送给相关人员。
现在她只需要几分钟,比以前手动操作方便多了,同时出错率为 0%!多次获得了老板的表扬!
Python 自动化办公不仅限于处理 Excel,还可以处理文本文件、CSV、自动邮件发送等等,把日常工作中重复的事情抽象出来,交给 Python 去执行。这样你就可以把节省的时间放在更高级的事情上面去,从而提升自己的职场竞争力!
当实现一部分的工作自动化以后,你就会走上“工作自由”的快车道!
Python 人工智能项目
Python 最具深度的应用场景是人工智能、机器学习、云计算这些高精尖的领域。作为最接近人工智能的语言,Python 因它的动态便捷性和灵活的三方扩展,成就了它在人工智能领域的丰碑。
还记得吗,第一关里我们用二十几行代码就可以轻松写出一个基于概率模型的拼写检查器!Python 可是当下最接近人工智能的编程语言!
我们还可以利用 Python 进行人脸识别,进行智能机器人的开发,搭建人工智能数据分析平台。
掌握了编程能力后,我们就可以从工作中解放自己,拥有高效工作的技巧,为自己的未来创造更多的可能性,拥抱更大的世界!
Python 编程的学习,将培养你抽象的思维方式,带给你崭新的科学世界观,让你拥有强大的技能,顺应万变,不被人工智能替代。无论你身处什么行业、从事什么工作,学会编程都能让你在同类人群中出类拔萃!
现在你已经站在 Python 之旅的起点,路还很长。
以 Python 为基础的编程、爬虫和数据分析等能力,正成为未来人才重要乃至必备的技能!
低头前行,但不要忘记星辰大海。当别人捡起地上的六便士时,你却抬头看见了月亮。
“一路上我都会发现从未想过的东西,如果当初我没有勇气去尝试看来几乎不可能的事,如今我就还只是个牧羊人而已。”

‘玖’ 电脑问题

单击开始菜单 运行CMD 打开命令提示符 接着输入 net start srservice 命令即可.
什么是注册表?
注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘。不幸的是,微软并没有完全公开讲述关于注册表正确设置的支持信息,这样使得注册表看上去更不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这样,因为用户对这方面的缺乏了解使得注册表更多的出现故障。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件system.dat和user.dat里,还有它们的备份system.da0和user.da0。通过Windows目录下的regedit.exe程序可以存取注册表数据库。在以前,在windows的更早版本(在win95以前),这些功能是靠win.ini,system.ini和其他和应用程序有关联的.ini文件来实现的.
在windows操作系统家族中,system.ini和win.ini这两个文件包含了操作系统所有的控制功能和应用程序的信息,system.ini管理计算机硬件而win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这些记录会在程序代码中被引用。因为受win.ini和system.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个excel.ini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路径和文件名即可。
最开始,system.ini和win.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.ini和win.ini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。这样下来多个.ini文件影响了系统正常的存取级别设置。如果一个应用程序的.ini文件和WIN.INI文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位操作系统和应用程序包括了所有功能下的东东.注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。

注册表都做些什么?
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。
在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
控制面板功能;
桌面外观和图标;
网络参数;
浏览器功能性和特征;
那些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
存取控制;
登陆确认;
文件和打印机共享;
网卡设置和协议;
系统性能和虚拟内存设置;
没有了注册表,Win95和Winnt 就不太可能存在。它们实在太复杂了,以致于用过去的.ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比.ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。
二、注册表的结构
注册表的结构
注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。
计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
Win95中所有系统注册信息保存在windows目录下的SYSTEM.DAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的user.dat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USER.DAT下它自己的user.dat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USER.DAT信息)将被装入,以用来保持你自己的桌面和图标。

控制键
在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER

Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。
通过控制键可以比较容易编辑注册表。虽然它们显示和编辑好象独立的键,其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。
HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE\SOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。

键和子键
数据被分割成多层次的键和子键,建立分层次(就象Exploer一样)结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。每个键在它的文件夹图标上都有一个加号(+)标志子键说明在它下面还有更多内容的东西。当点开它的时候,文件夹的加号标志被替换成一个减号(-)标志,然后显示出下一级的子键。
所有软件,硬件,windows工作的设置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享信息也包括在这个键中。用户权限,安全策略,共享信息可以通过Windows NT域用户管理器,Explorer和Win95中控制面板来设置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息:
在文件和应用程序之间所有的扩展名和关联;
所有的驱动程序名称;
类的ID数字(所要存取项的名字用数字来代替);
DDE和OLE的信息;
用于应用程序和文件的图标;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中当前硬件配置信息的映射。如果系统只有一个配置文件,也就是原始配置,数据将一直在同样的地方。在控制面板|系统|硬件配置文件|创建一个额外的配置使额外配置信息放入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文件时,当每次计算机启动时将给出一个提示让你选择一个配置文件。在Winnt中,在启动时你可以按空格键来选择上次正常启动时硬件配置文件。根据硬件配置文件选择的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上它并不被写入硬盘驱动器中。Win95的一个优点是,在系统启动时HKEY_DYN_DATA这个控制键储存收集到的即插即用信息并配置它们。它保存在内存中,Win95用它来控制硬件。因为是在内存中,所以它不从硬盘中读取,每次当你启动计算机时,配置都有可能会不一样。在启动时Win95必须计算超过1600种可能的配置。所以,如果系统改变既定的设置而没有报告给Win95那么潜在的问题就可能发生。系统大多数时间工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。虽然它包含了所有独立用户的设置,但在用户未登陆网络时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。
HKEY_CURRENT_USER
用来保存当前用户和缺省用户的信息,HKEY_CURRENT_USER仅映射当前登陆用户的信息。

各主键的简单介绍
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有用户的。
HKEY_LOCAL_MACHINE\AppEvents
为了以后在瘦客户机上运行客户机/服务器这样的应用程序,在Win95/98中AppEvents键是空的。应用程序实际上都驻留网络服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINE\Config
这个键保存着你计算机上所有不同的硬件设置(这些从控制面板的系统属性中硬件配置文件中可以创建)。这些配置在启动时通常被复制到HKCC。每个配置会被用一个键(比如0001或者0002等等)来保存,每个都是一个独立的配置。如果你只有一个单一的配置,那就只会有0001这个键
HKEY_LOCAL_MACHINE\Config\0001\Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致Windows不能启动时(黑屏),可以修改分辨率来解决。进入安全模式,运行regedit.exe,在这个键的Resolution键值中把数据值修改为640,480或者800,600这样的低分辨率,然后重新启动计算机即可。
HKEY_LOCAL_MACHINE\Config\0001\System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers
在这个键下面,有一个键是为系统上每一个打印机设置的,通过控制面板添加和删除打印机会调整这个列表
HKEY_LOCAL_MACHINE\Enum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信息。Win95使用总线列举在启动时通过不同的.ini文件来检测硬件信息。那些在启动时被安装的和被检测到的硬件会显示在这里。子键包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子键名表示它们各自的硬件设备信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一套代码数列出,包括每一个键的详细说明,举例,*pnp0400是并行口LPT1的键。如果LPT1并不具备即插即用功能,它就会别列入到Enum下的Root键中
HKEY_LOCAL_MACHINE\Enum\Root
Root键包括所有非即插即用设备的信息。在这里,我们可以迅速断定哪些设备是即插即用,那些不是。比如SCSI适配器,这个设备必须符合Win95中一个键名为ForcedConfig的硬件设置,这个不会改变。
HKEY_LOCAL_MACHINE\Enum\Network
win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协议。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,它包含了中央处理器和一个浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个hardware键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINE\Network
这个键仅保存网络登陆信息。所有网络服务细节都保存在HKEY_LOCAL_MACHINE\Enum\Network这个键中。这个键有一个子键,logon,包括了lmlogon(本地机器登陆?0=false 1=true)的值,logonvalidated(必须登陆验证),策略处理,主登陆方式(Windows登陆 ,微软网络客户方式等),用户名和用户配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
这个键列出了所有已安装的32位软件和程序的.ini文件。它包括了变化,依靠软件安装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。
我们在\Microsoft\Windows\Current Version下发现了一些有意思的设置,它有如下子键:
1.App paths: 你曾经安装过的所有32位软件的位置。
2.Applets, Compression, Controls Folder : 包括下控制面板象显示属性那样属性条的附件。
3.Detect, explorer :很多有意思的子键如Namespace keys of Desktop和My Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己的提示。
4.Extensions : 一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适合的目标类型。
5.Fonts, fontsize, FS Templates :系统属性条中所选择文件系统模板, 服务器,桌面计算机或者笔记本电脑信息。
6.MS-DOS Emulation :包括一个应用程序兼容子键 为大量过时的程序二进制键所设。
7.MS-DOS Options :在dos模式下的设置,如himem.sys,cd-roms等。
8.Network :网络驱动的配置。
9.Nls, Policies :系统管理员认为你不应该去做的事。
10.ProfileList :所有可以登陆你计算机的用户名列表。
11.在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子键中被执行。
Run : 程序在启动时运行
RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动服务器,在这里可以去掉它)。
12.SharedDLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等级。
13.Shell Extensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。
14.ShellScrap :这个包含了一个PriorityCacheformats的子键,它包括了一个空的有限值,它更象过去SmartDrive命令行参数的派生。
15.Time Zones : 主键值是你现在的时区;子键定义了所以可能的时区。
16.Uninstall:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装程序的路径。和安装向导相似.......)winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于windows nt,win95只包括限制驱动的控制设置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改变在很多地方,一个丢失的项会使这个系统变的不稳定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
这个键包括了所有win95的标准服务。所有被添加的服务和设备,每个标准的服务键包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Arbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解决的信息。四个子键包括了内存地址,冲突,DMA,I/O端口冲突和IRQ冲突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class
class键包括了所有win95支持的设备classes控制,这些和你在添加新硬件出现的硬件组很类似,还包括了这些设备如何安装的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\inetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在你安装过ie2。0或者更高版本才出现。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它包括了认证过程和认证者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNP32
nenp32键描述了windows客户如何在netware网络中工作功能,它包括了关于认证过程和证明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
在这个键里包括需要远程工作在win95系统上的信息,有认证参数,主机信息,和为了建立一个拨号连接工作的协议信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
这个键包括了所以snmp(简单网络管理协议)的参数。它包括了允许的管理,配置陷阱,和有效的团体。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
vxd键包括了win95中所有32位虚拟设备驱动信息,win95自动管理它们,所以不必要用注册表编辑器编辑它们,所以的静态vxds用子键列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
webpost键包括了所有装载的internet邮局的设置,如果你连接一个isp,并且它列出载这里,你应该给自己选则一个服务器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
这个键列出了当连接到internet上winnsock文件的信息,如果列出了不正确的文件,你将不会连接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
wintrust功能是检查从Internet上下载来的文件是否有病毒,它可以确保你得到干净安全的文件。

HKEY_CLASSES_ROOT
在注册表中HKEY_CLASSES_ROOT是系统中控制所有数据文件的项。这个在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制键包括了所有文件扩展和所有和执行文件相关的文件。它同样也决定了当一个文件被双击时起反应的相关应用程序。
HKEY_CLASSES_ROOT被用作程序员在安装软件时方便的发送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序员在运行他们的启动程序时不需要担忧实际的位置,相反的,他们只需要在HKEY_CLASSES_ROOT中加入数据就可以了。
在Windows用户图形界面下,每件事----每个文件,每个目录,每个小程序,每个连接,每个驱动---都被看做一个对象;每个对象都有确定的属性和它联系。HKCR包含着对象类型和它们属性的列表。HKCR主要的功能被设置为:
一个对象类型和一