java工程師大型企業(yè)常見面試題總結(jié)_第1頁
java工程師大型企業(yè)常見面試題總結(jié)_第2頁
java工程師大型企業(yè)常見面試題總結(jié)_第3頁
java工程師大型企業(yè)常見面試題總結(jié)_第4頁
java工程師大型企業(yè)常見面試題總結(jié)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

企業(yè)面試總結(jié)

通過一星期H勺緊張面試,獲得了許多的面試經(jīng)驗(yàn),總結(jié)了面試中碰到的問題,現(xiàn)對某些重要

問題進(jìn)行總結(jié),但愿能給大家以協(xié)助。

非項(xiàng)目方面

1.redis內(nèi)存溢出及宕機(jī)狀態(tài)的處理

redis存在于內(nèi)存中,內(nèi)存大小有限,也會存在宕機(jī)或重啟導(dǎo)致內(nèi)存數(shù)據(jù)清空的狀況,此時

我們可通過對redis中的數(shù)據(jù)設(shè)置生存周期及對數(shù)據(jù)進(jìn)行持久化操作來盡量防止這些狀況帶

來的危害。

?設(shè)置生命周期:到期后數(shù)據(jù)銷毀

EXPIREkeyseconds設(shè)置生存時間

PERSISTkey清除生命時間(重新設(shè)值也會清除生命周期)

TTLkey查看剩余生存時間

TTL返回值:

不不大于0的數(shù)字:剩余生存時間,單位為秒i

-1:沒有生存時間,永久存儲

-2:數(shù)據(jù)已經(jīng)被刪除

?持久化:是把數(shù)據(jù)從內(nèi)存以某種形式持久化到磁盤上。

持久化方式:RDB(relationaldatabase)和AOF(appendonlymode)

RDB:

通過快照方式實(shí)現(xiàn),當(dāng)符合條件時就對內(nèi)存數(shù)據(jù)進(jìn)行快照并存儲到硬盤上??煺盏臈l件在配

置文獻(xiàn)中配置。由2個參數(shù)構(gòu)成,時間和改動的鍵H勺個數(shù)。

在配置文件中己經(jīng)預(yù)置了3個條件:

save9001#15分鐘內(nèi)有至少1個鍵被更改則進(jìn)行快照

save30010#5分鐘內(nèi)至少有10個鍵被更改則進(jìn)行快照

save6010000#1分鐘內(nèi)至少有10000個健被更改則進(jìn)行快照

以上條件之間是“或”的關(guān)系。

快照過程:

使用fork函數(shù)復(fù)制一份目前進(jìn)程(父進(jìn)程)的副本(子進(jìn)程),然后父進(jìn)程繼續(xù)處理任務(wù),

子進(jìn)程則執(zhí)行寫入磁盤操作。寫入完畢后再用臨時文獻(xiàn)替舊的RDB文獻(xiàn)。

可以通過SAVE和BGSAVE命令來尹動快照,茯個命令的區(qū)別是前者是由£

進(jìn)程進(jìn)行快照,會阻塞其他請求,后者是通過fork子進(jìn)程快照操作。

注意:由于Redis使用fork來復(fù)制一份當(dāng)前進(jìn)程,那么子進(jìn)程就會占有和主

進(jìn)程一樣的內(nèi)存資源.比如說主進(jìn)程8G內(nèi)存,那么在備份的時候必須保證

有16G的內(nèi)存,要不然會信用虛擬內(nèi)存,性能韭常惹.___________________

AOF:

是將redis的每一條命令進(jìn)行記錄,并保留到磁盤的AOF文獻(xiàn)中,重啟后會執(zhí)行該文獻(xiàn)進(jìn)行

數(shù)據(jù)恢復(fù),需要手動啟動,

優(yōu)化:aof會記錄每一條命令,包括一條數(shù)據(jù)的多次操作,這樣導(dǎo)致了冗余??墒褂?/p>

BGREWRITEAOF技術(shù)來進(jìn)行重寫,清除數(shù)據(jù)的中間執(zhí)行過程,保留最終數(shù)據(jù)命令即可。重寫

日勺方略是當(dāng)aof文獻(xiàn)的大小超過上一次大小日勺某個比例時就會進(jìn)行重寫。

問題:文獻(xiàn)是先寫入緩存的,而緩存讀取到硬盤需要時間,假設(shè)在這個時間數(shù)據(jù)丟失那也會

導(dǎo)致數(shù)據(jù)的丟失。因此雖然每秒做文獻(xiàn)同步也也許導(dǎo)致數(shù)據(jù)丟失。

2.Spring注解開發(fā)的配置

此處會讓你說出幾種常用注解,說幾種就行:。有時還會向作注解底層怎么實(shí)現(xiàn)就說不太理解。

在xml配置文獻(xiàn)中啟動注解功能

<!--base-package:注解寫在哪個包

<context:component-scanbase-package="cn.itcast.bean"/>

注解:

@Component(value="名稱')運(yùn)用構(gòu)造措施創(chuàng)立對象

@Scope(value="singleton/prototype")單例和多例

@Lazy(value=true/false)延遲創(chuàng)立問題

@PostConstruct指定措施為初始化措施

@PreDestory指定措施為銷毀措施

@Aulowired注入引用類型,只能按照類型進(jìn)行匹配

@Resource注入引用類型,假如有name屬性值,則按照bean口勺名稱進(jìn)行匹配;假

如沒有name屬性值,則按照類型進(jìn)行類型匹配

索引是迅速搜索口勺關(guān)鍵。MySQL索引的建立對于MySQL的高效運(yùn)行是很重要的。索引分單

列索引和組合索引。單列索引,即一種索引只包括單個列,一種表可以有多種單列索弓,但

這不是組合索引。組合索引,即一種索包括多種列。

MySQL索引類型包括:

一般索引:這是最基本的索引,它沒有任何限制。

唯一索引:它與前面的一般索引類似,不同樣H勺就是:索引列時值必須唯一,但容許有空

值。假如是組合索引,則列值的組合必須唯一。

主鍵索引:它是一種特殊的唯一索引,不容許有空值。

組合索引:將多種字段建到一種索引里。有個“最左前提”的成果。

建立索引日勺時機(jī):

一般來說,在WHERE和」OIN中出現(xiàn)的)列需要建立索引,但也不完全如此,由于MySQL只

對<,<=,=,>,>=,BETWEEN,IN,以及某些時候日勺LIKE才會使用索引。在以通配符%和_

開頭作查詢時,MySQL不會使用索引。

SELECT*FROMmytableWHEREusernamelike'admin%'而下句就不會使用:

SELECT*FROMmytableWHEREtNamelike^admin'

缺陷:

提高了查詢速度,但減少了更新速度。由于更新時要額外保留索引文獻(xiàn)。

索引文獻(xiàn)在大數(shù)據(jù)量時會影脹很快。

因此假如你日勺MySQL有大數(shù)據(jù)量的表,就需要花時間研究建立最優(yōu)秀的索引,或優(yōu)化查詢

語句。

使用索引的技巧和注意事項(xiàng):

1)索引不會包具有NULL值的列

只要列中包具有NULL值都將不會被包括在索引中,復(fù)合索引中只要有一列具有NULL值,

那么這一列對于此復(fù)合索引就是無效的。因此我們在數(shù)據(jù)庫設(shè)計時不要讓字段口勺默認(rèn)值為

NULL.

2)使用短索引

對串列進(jìn)行索引,假如也許應(yīng)當(dāng)指定一種前綴長度。例如,假如有一種CHAR(255)的歹L,假

如在前10個或20個字符內(nèi),多數(shù)值是惟一的,那么就不要對整個列進(jìn)行索引。短索引不僅

可以提高查詢速度并且可以節(jié)省磁盤空間和I/O操作。

3)索引列排序

MySQL杳詢只使用一種索引,因此假如where子句中已經(jīng)使用了索引B勺話,那么orderby

中的列是不會使用索引的,因此數(shù)據(jù)庫默認(rèn)排序可以符合規(guī)定口勺狀況下不要使用排序操作;

盡量不要包括多種列的排序,假如需要最佳給這些列創(chuàng);復(fù)合索引。

4)like語句操作

一般狀況下不鼓勵使用like操作,假如非使用不可,怎樣使用也是一種問題。like"%aaa%”不

會使用索引而like“aaa%”可以使用索引。

5)不要在列上進(jìn)行運(yùn)算

select*fromuserswhereYEAR(adddate)<2023;將在每個行上進(jìn)行運(yùn)算,這將導(dǎo)致索引失效而

進(jìn)行全表掃描,因此我們可以改成

select*fromuserswhereadddate</2023-01-01,;

6)不使用NOTIN和<>操作

淘寶分庫分表機(jī)制:

淘寶根據(jù)訂單號做拆分的,下單有兩個維度,買家和賣家。

淘寶將訂單表拆分到16個mysql庫中,而在每個庫中又將訂單表拆分為64份,相稱于將一

張表拆分為1024份,事務(wù)進(jìn)行了分散,很大程度上提高了并發(fā)的事務(wù)處理能力。

因此買家和賣家怎么找到對應(yīng)口勺表呢?

對于16臺服務(wù)器,每臺服務(wù)器64張表只需要2位買家和賣家id的后兩位數(shù)字就可以精確

定位到詳細(xì)的庫和表。訂單號中同步存在買家id的最終兩位和賣家id的最終兩位。分別在

訂單號的倒數(shù)第3位,4位和最終兩位數(shù)。

4.RabbitMq消息隊(duì)列

此處要點(diǎn)是消費(fèi)者沒收到消息該怎么處理。

應(yīng)用進(jìn)程之間H勺通信措施

開發(fā)語言:Erlang-面向并發(fā)的編程語言。

AMQP是消息隊(duì)列的一種協(xié)議。

六種模式,只用五種

1、簡樸隊(duì)列

2、Work模式:兩個消費(fèi)者,能者多勞

3、訂閱模式

1、1個生產(chǎn)者,多種消費(fèi)者

2、每一種消費(fèi)者均有自己的一種隊(duì)列

3、生產(chǎn)者沒有將消息直接發(fā)送到隊(duì)列,而是發(fā)送到了互換機(jī)

4、每個隊(duì)列都要綁定到互換機(jī)

5、生產(chǎn)者發(fā)送的消息,通過互換機(jī),抵達(dá)隊(duì)列,實(shí)現(xiàn),一種消息被多種消費(fèi)者獲取的目的

注意:消息發(fā)送到?jīng)]有隊(duì)列綁定日勺互換機(jī)時,消息將丟失,由丁,互換機(jī)沒有存儲消息日勺能

力,消息只能存在在隊(duì)列中。

4、路由模式

amqp.gen-S9b..*

error

re

type=di5^^jnfoamqp.gen-Agl..

COY■AYA

生產(chǎn)者為消息指定類型,路由綁定不同樣的隊(duì)列,隊(duì)列指定接受的類型,只有類型匹配隊(duì)列

才接受。

TopicExchang?-將路由批和某視式進(jìn)行理。此時從方盛要?淀要一個橫式上]符號同一個或多個詞,符號一匹配不多不少一個詞?曠前婚陪

到-auditKscorporal,但是.auSt一只會工配到.初狽心、找在RcdHal的膽友1丁-?蒙F18的雷,泉衰明1然空擔(dān)機(jī)是JU何工柞的:

模式1:自動確認(rèn)

只要消息從隊(duì)列中獲取,無論消費(fèi)者獲取到消息后與否成功消息,都認(rèn)為是消息已經(jīng)成

功消費(fèi)。

模式2:手動確認(rèn)

消葫者從隊(duì)列中獲取消息后,服舞器會將該消息標(biāo)識為不可用狀態(tài),等待消假者的反饋,

假如消費(fèi)者?直沒有反饋,那么該消息將?直處在不可用狀態(tài)。

5.Spring的IOC和AOP的底層實(shí)現(xiàn)

IOC底層:工廠設(shè)計模式+XML技術(shù)+反射配置

AOP底層:動態(tài)代理

6.SSH中單例多例問題

三層構(gòu)造各用的是單例還是多例,為何,action層是單例還是多例,什么時候用多例。

單例多例重要看該層有無定義組員變量,定義了組員變量的話由于存在多線程的共同調(diào)用相

似變量因此要設(shè)置為多例,

scope屬性:bean的生命周期

singleton:單例(默認(rèn)值)(在初始化配置文獻(xiàn)的時候創(chuàng)立H勺對象,不是getBean。)

prototype:多例(在getBean()的時候創(chuàng)立對象)

<beanid=*'s5"class="cn.itcast.bean.Student"scope="singleton"x/bean>

<beanid="s5"class="cn.itcast.bean.Student"scope="prototype"x/bean>

結(jié)合項(xiàng)目中使用場景:

分層開發(fā)日勺時候:

dao對象:單例

biz對象:單例

action對象:必須多例的(屬性或模型驅(qū)動有數(shù)據(jù)共享,因此必須多例)

7.單例的書寫及多種模式的區(qū)別

面試官讓我手寫出一種單例模式并解釋多種模式歐I區(qū)別,此處最佳寫出雙重校驗(yàn)鎖模式。

〃雙重校驗(yàn)鎖寫法

classSingleDemoProblem4{

privateSingleDemoProblem4(){}

privatestaticSingleDemoProblem4sdp=null;

privatestaticObjectobj=newObject();

publicstaticSingleDemoProblem4getlnstance(){

/*設(shè)置雙重校驗(yàn)鎖防止多線程狀況下,某個線程進(jìn)來判斷變量為空進(jìn)入準(zhǔn)備創(chuàng)立

對象,但還沒創(chuàng)立CDU被搶走.

別日勺線程過來發(fā)現(xiàn)變量還是空又進(jìn)來創(chuàng)立對象,成果導(dǎo)致多種線程創(chuàng)立多種對象出

來*/

if(sdp==null){

synchronized(obj){

if(sdp==null){

sdo=newSingleDemoProblem4();

)

)

)

returnsdp;

)

}

餓漢式:在類加載時就創(chuàng)立對象,不管對象用不用都會創(chuàng)立,導(dǎo)致內(nèi)存H勺揮霍。但能保證對

象的唯一性。

懶漢式:只在使用的時候創(chuàng)立對象,多線程下不能保證每次使用的對象唯一。

8.SpringBuild和springBuffer時區(qū)別

聯(lián)絡(luò):兩者都是字符串緩沖區(qū)類,作用與功能相似,內(nèi)部啊措施也都相似.但使用場景不同樣.

區(qū)別:

StringBuffer是線程安全的但對「多線程效率低下(由「內(nèi)部用了synchronize關(guān)鍵字保證線

程安全,這樣必然犧牲了執(zhí)行效率)

StringBuilder安全性稍差,但對于多線程效率稍高

9.Mybatis中${}和#{}的區(qū)別

此處要點(diǎn)是注意哪種能防止sql注入,為何能防止sql注入。

在Mybatis的mapper中,參數(shù)傳遞有2種方式,一種是#0另一種是$0,兩者有著很大的區(qū)別:

”()實(shí)現(xiàn)的是sql語句的預(yù)處理參數(shù).之后執(zhí)行sql中用。號代替.使用時不需要關(guān)注數(shù)據(jù)類型.

Mybatis自動實(shí)現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換。并且可以防止SQL注入。

$0實(shí)現(xiàn)是sql語句的直接拼接,不做數(shù)據(jù)類型轉(zhuǎn)換,需要自行判斷數(shù)據(jù)類型。不能防止SQL注入

O

是不是$0就沒用了呢?不是的,有些情況下就必須使用$0,舉個例子:

在分表存儲的情況下,我們從哪張表查詢是不確定的,也就是說sql語句不能寫死,表名是動態(tài)

的,查詢條件的固定的,這樣:SELECT"FROM${tableName}WHEREid=#{id}

總結(jié),

到}占位符,用于參數(shù)傳遞。

${}用于SQ助接.

10.線程池問題

問你用的線程池引用的I哪個包。

加…門類提供了用于此包中所提供的執(zhí)行程序服務(wù)的工廠方法,

和線程池有關(guān)H勺幾種概念:

最大容量:一種線程池中最多可以保留的線程數(shù)量;

最小容量:一種線程池中,至少保留的線程數(shù)量;

最大存活時間:i種線程最多可以保持空閑II勺時間;假如超過這個時間,一般這個線程就會

被銷毀;

線程的某些面試問題要多理解。

ILLinux怎么查看文獻(xiàn)內(nèi)容的前10行,怎么查看進(jìn)程

Linux你肯定不能說不懂得,說理解一點(diǎn),然后他會問你某些常用指令,因此要記住某些常

用的指令。有的答不出來就說平時用的J不多,并且平時不會就會上網(wǎng)查。

1、Netstat-an|grep80查看端口信息

2、Vim中:/內(nèi)容直接搜索內(nèi)容

3、Ps-ef|grepredis杳看服務(wù)端II進(jìn)程

4、servicenetworkrestart重啟網(wǎng)絡(luò)服務(wù)

5、tail-200fcatalina.log動態(tài)顯示日志最終200行

6、head-n10catalina.log查看前10行命令

7、tar-zcvfabc.tar.gz*壓縮目前目錄卜所有文獻(xiàn),壓縮后文獻(xiàn)名為

tar-zxvfabc.tar.gz-C/usr/local/xixi/解壓到指定目錄中記得指定目錄前

面加-C

8、查找文獻(xiàn)

查找的是腳本文獻(xiàn)(執(zhí)行文獻(xiàn))whichfilename

查找的I是二進(jìn)制H勺文獻(xiàn)(執(zhí)行文獻(xiàn))whereis-bfilename

查找特定文獻(xiàn)whereisfilename(運(yùn)用數(shù)據(jù)庫來查找)

12>eclipse快捷鍵

Alt+Shift+M任意選中一塊代碼,自動轉(zhuǎn)換為措施,自動添加參數(shù)返回類型。

ctrl+shift+x轉(zhuǎn)為大寫ctrl-shift+y轉(zhuǎn)為小寫

13、hashmap和hashtableaI區(qū)另!]

I--:HashMap:是開發(fā)中,吏用最多的一種m叩集合類;在它的底層使用哈希表保留數(shù)據(jù)(數(shù)

據(jù)是無序歐I):它的鍵和值容許使用null;是線程不安全的;

|…:LinkedHashMap:是HashMap日勺子類,重要操作和HashMap同樣;不同樣日勺是,在底

層使用哈希表和鏈表保留數(shù)據(jù),哈希表負(fù)責(zé)保留數(shù)據(jù)和維護(hù)數(shù)據(jù)的唯一性,鏈表負(fù)責(zé)記錄數(shù)

據(jù)添加的次序;因此它和HashMap不同樣之處是,它的數(shù)據(jù)是有序口勺(添加和迭代的次序

同樣);

實(shí)際上,在HashSet底層就是使用H勺HashMap實(shí)現(xiàn)的;LinkedHashSet底層使用的是

LinkedHashMap實(shí)現(xiàn);

I--:HashTable:出現(xiàn)B勺比較早,在JDK1.1版本就出現(xiàn);它的重要操作和HashMap同樣,

不同樣之處在于,HashTable是線程安全日勺,效率比較低;它不容許使用null做鍵或值;在

實(shí)際開發(fā)中目前被HashMap取代;

I-:Properties:重要保留Key-Value的集合,在開發(fā)中重要用來操作配置文獻(xiàn)(文獻(xiàn)中的

配置信息都是鍵值對時形式)到I。流在學(xué);

I--:TreeMap:底層使用二又樹實(shí)現(xiàn),它保留的數(shù)據(jù),在保留的時候鍵都是有序W、J;

此處還問了--種課堂沒講過歐j實(shí)現(xiàn)類可取代hashTable,它是ConcurrentHashMap,這個自己

可做下理解。

ConcurrentHashMap與HashTable都可以用「多線程日勺環(huán)境,不過當(dāng)Hashtable日勺大小增長到

一定的時候,性能會急劇下降,由于迭代時需要被鎖定很長R勺時間。由于ConcurrentHashMap

引入了分割(segmentation),不管它變得多么大,僅僅需要鎖定mapH勺某個部分,而其他H勺

線程不需要等到迭代完畢才能訪問mapo簡而言之,在迭代FI勺過程中,ConcurrentHashMap

僅僅鎖定mapU勺某個部分,而Hashtable則會鎖定整個map。

HashTable雖然性能上不如ConcurrentHashMap,但并不能完全被取代,兩者的迭代器H勺一

致性不同樣的,HashTableI時迭代器是強(qiáng)一致性”勺,而ConcurrentHashMap是弱一致的。

ConcurrentHashMapget,clear,iterator都是弱一致性的。

14、ArrayList怎么去重

巧妙運(yùn)用hashSet不能存儲反復(fù)元素的原理,把a(bǔ)rrayLis:放到hashSet中再放I可arrayLst即

15、說說垃圾處理機(jī)制

大體理解,能說出一點(diǎn)即可

目前使用於JJava虛擬機(jī)并不是只是使用一種內(nèi)存回收機(jī)制,而是分代搜集的J算法。就是將

內(nèi)存根據(jù)對象存活口勺周期劃分為幾塊。一般是把堆分為新生代、和老年代。短命對象寄存在

新生代中,長命對象放在老年代中。

對于不同樣的代,采用不同樣的搜集算法:

新生代:由于存活的對象相對比較少,因此可以采用復(fù)制算法該算法效率比較快。

老年代:由于存活的I對象比較多哈,可以采用標(biāo)識?清除算法或是標(biāo)識?整頓算法

16、與否寫過mysql的存儲過程

mysql執(zhí)行語句是要先編譯,然后再執(zhí)行的。這樣假如查詢并發(fā)大的時候。會揮霍諸多資源

和時間。導(dǎo)致mysql進(jìn)程占用資源過多,癥狀就是慢。

但存儲過程可以把某些尤其H勺語句封裝成一種措施,再編譯好成一種可以執(zhí)行的措施,對

外只要接受參數(shù)就可以了,這樣就不用再編譯。執(zhí)行就快了

什么時候會用到?你覺得你數(shù)據(jù)庫由于同步出現(xiàn)太多讀寫操作而變得慢,那么就要用了。

17、JDBC底層環(huán)節(jié)

1、注冊驅(qū)動..

Class.forNameCcom.mysql.jdbc.Driver");

2、獲得型據(jù)庫連接

Connectionconn=DriverManager.getConnection(url,user,password)

3、創(chuàng)建向數(shù)據(jù)庫發(fā)送sql的statement對盤

Statementstmt=conn.CreateStatement();

4、向數(shù)據(jù)庫發(fā)送sq]

Resultsetrs=stmt.executeQuery(sql);//select語句

intupdateSum=stmt.executeUpdate(sql);//insertsupdate、delete語句

5、處理結(jié)果集

while(rs.nextO){

rs.getString(列名或者列的別名)

rs.getlnt(列卸

6、關(guān)閉資源

rs.closeO;

stmt.closeO;

conn.closet);

18、Jvm機(jī)制及類附加載過程

棧區(qū),堆區(qū),措施區(qū)

類加載次序:

類加載時先在措施區(qū)中為類開辟一種空間.非靜態(tài)組員加載到非靜態(tài)區(qū)域,靜態(tài)絹員加載到

靜態(tài)區(qū)域,為靜態(tài)組員變量分派空間并賦默認(rèn)值,然后執(zhí)行靜態(tài)代碼塊或顯示賦值,賦值完

畢類加載結(jié)束。

對象創(chuàng)立過程:

碰到new關(guān)鍵字在堆中開辟?種空間,為非靜態(tài)組員變量分派空間并賦默認(rèn)值,執(zhí)行構(gòu)造

函數(shù)先看有無this語句調(diào)用其他構(gòu)造函數(shù),沒有就執(zhí)行隱式三步:1、執(zhí)行父類構(gòu)造函數(shù),2、

為非靜態(tài)組員變量顯示賦值,3、執(zhí)行構(gòu)造代碼塊。結(jié)束后執(zhí)行構(gòu)造函數(shù)體中的內(nèi)容,執(zhí)行

完對象創(chuàng)立結(jié)束。

19、抽象類和接口的區(qū)別

共同點(diǎn):都可以有抽象函數(shù),都不能被實(shí)例化。

區(qū)別:

申明上:抽象類,class:接口interface

書寫組員:抽象類,書寫任何類組員;接口:只能書寫組員變量和函數(shù)

有無構(gòu)造函數(shù):抽象類,有構(gòu)造函數(shù);接口:沒有構(gòu)造函數(shù)。

作用上:抽象類是描述的繼承體系中的共同的特性和行為,假如行為不確定,就定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論