當前位置:首頁 » 網路管理 » 程序員如何自動刪除文字
擴展閱讀
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主要的功能被設置為:
一個對象類型和一