- N +

javascript課后題答案 js第七章課后作業(yè)

女生零基礎(chǔ)自學(xué)java難嗎

想要參加Java培訓(xùn)的學(xué)習(xí)其實不分性別,只是在程序員行業(yè),一直以來都是男多女少,特別是開發(fā)人員,至于Java培訓(xùn)學(xué)習(xí)難不難,這個還是要看自己的付出,Java的學(xué)習(xí)難度不是很高,封裝的東西很多,所以學(xué)起來也不是太難。但是,也不是很容易,學(xué)習(xí)是要付出努力才能學(xué)好的。

這個問題其實單純字學(xué)習(xí)方面來說的話,沒有適不適合怎么一說,學(xué)習(xí)沒有男女之分,學(xué)習(xí)Java也并不存在男女之分,現(xiàn)在也沒有權(quán)威的證據(jù)表明女生在學(xué)習(xí)Java的能力上會比男生更差。而且學(xué)習(xí)計算機(jī)相關(guān)專業(yè)的女生人數(shù)也挺多,所以你完全可以不用考慮適不適合學(xué)Java這個問題。

只要我們在學(xué)習(xí)java技術(shù)之前能夠找一個比較好的學(xué)校及本上也是沒有什么問題的,現(xiàn)在的java培訓(xùn)機(jī)構(gòu)也都是針對零基礎(chǔ)的學(xué)員制定的課程,所以只要肯努力女生照樣可以學(xué)好java技術(shù),找到合適的工作。

自學(xué)java

“這是一篇完整的java程序員學(xué)習(xí)線路圖,一共分為六個階段。

我以java為例,展示完整的學(xué)習(xí)步驟。

希望對于想通過java自學(xué)的朋友有幫助。

java程序員學(xué)習(xí)線路流程第一步:Java語言基礎(chǔ)

從最簡單的開始,helloworld開始Java之旅

1.編程基礎(chǔ)

常量與變量

數(shù)據(jù)類型

運(yùn)算符

流程控制語句

方法

數(shù)組

2.面向?qū)ο?/p>

面向?qū)ο笏枷?/p>

類與對象

成員變量和局部變量

封裝

this關(guān)鍵字

構(gòu)造方法

3.集合

集合概述

集合特點(diǎn)

ArrayList集合

HashMap集合

常用集合優(yōu)劣比較

4.輸入/輸出IO

字符輸入流

字符輸出流

字符緩沖輸入流

字符緩沖輸出流

復(fù)制文件

集合與文件中數(shù)據(jù)相互讀寫

5.練習(xí)階段

屬于你自己的helloword

第二步:java語言高級

再結(jié)合java高級部分,里面的部分內(nèi)容,這個階段你不一定能理解很徹底。但有一點(diǎn),如果你今后想進(jìn)入高階俱樂部,這些內(nèi)容你必須掌握牢固。

舉個栗子,如果你面試通過進(jìn)入了公司,我一定會在早期仔細(xì)review你的代碼。代碼的功力是欺騙不了人的,不同人寫一個接口,呈現(xiàn)的結(jié)果也是千差萬別(所以才有了規(guī)范)。

1.面向?qū)ο?/p>

繼承

多態(tài)

重寫(Override)

重載(Overload)

封裝

接口

java包package

2.異常處理

異常概述

異常分類

異常處理方案

自定義異常

3.多線程

Java線程:概念與原理

Java線程:創(chuàng)建與啟動

Java線程:多線程的實現(xiàn)方案

Java線程:線程生命周期

Java線程:線程池

Java線程:線程狀態(tài)的轉(zhuǎn)換

Java線程:線程的同步與鎖

Java線程:線程的交互等等

線程的幾個主要概念

在多線程編程時,你需要了解以下幾個概念

線程同步

線程間通信

線程死鎖

線程控制:掛起、停止和恢復(fù)

4.輸入與輸出IO

文件和I/O

讀寫文件

Java流(Stream)

文件(File)

緩沖流

5.泛型(Generic)

泛型的使用場景

泛型類型

泛型方法

泛型通配符?

6.網(wǎng)絡(luò)編程

網(wǎng)絡(luò)機(jī)制

Socket原理機(jī)制

UDP、TCP傳輸?shù)?/p>

7.反射(reflection)

類加載機(jī)制原理

反射構(gòu)造方法、字段、方法

Properties配置文件

8.注解(annotation)

注解的使用和原理

三種內(nèi)置annotation

自定義annotation

注解類的反射調(diào)用

動態(tài)代理類如何處理

9.Java高級特性和類庫

java類加載器classloader

java程序運(yùn)行的基礎(chǔ)知識,java編譯后的bytecode的整個運(yùn)行機(jī)制,這一點(diǎn)對應(yīng).net的IL(intermediatelanguage)。

理解Javanio,關(guān)于這一點(diǎn)網(wǎng)上有非常多的教程,這一條需要重點(diǎn)掌握,對于高并發(fā)的掌握很重要。

javajuc(java.util.concurrent)等等

10.JVM原理和調(diào)優(yōu)

JVM最重要的三個部分必須要非常清楚,內(nèi)存劃分、class加載機(jī)制以及GC策略。搞清楚這三部分不僅僅是為了面試,也是為了讓你對于Java有更深刻的理解,這對于你的Java生涯非常有幫助。

內(nèi)存劃分簡單說分為三個部分,YoungGeneration(年輕代)、OldGeneration(年老代)以及PermGeneration(永久代)。其中的YoungGeneration(年輕代),又分為Eden、From和To,其中From和To又統(tǒng)稱為SurvivorSpaces(幸存區(qū))。

關(guān)于classloader機(jī)制的學(xué)習(xí),可以結(jié)合tomcat去學(xué)習(xí),了解清楚tomcat的classloader機(jī)制,看tomcat是如何保證各個APP之間的類隔離的。如果可能的話,看一下tomcat中classloader的源碼,當(dāng)中也包含了與tomcat類加載機(jī)制相似的部分。

至于GC,需要清楚GCRoots都有哪些,以及如何判斷一個對象可以被回收。此外,GC的算法和策略也要有大概的了解。

第三步:javaweb階段

1.前段技術(shù)掌握

html

css

js

jquery

bootstrap

2.動態(tài)網(wǎng)頁技術(shù)

JavaServletAPI

Velocity

FreeMarker

JSP等常用模板引擎

比如,淘寶前端層使用的是velocity模板,部分公司采用jsp、freemarker等,基本類似。

3.linux服務(wù)器基本命令

在個階段,也可以結(jié)合自己的情況,學(xué)習(xí)linux系統(tǒng)底層原理。

第四步:java框架階段

1.SSH(struts2+spring+hibernate)

2.SSM(springmvc+spring+mybatis)

備注:如果你仔細(xì),網(wǎng)上有部分叫SSI,I為ibatis,后來ibatis改名為mybatis了。

框架組合,我首推SSM,比SSH靈活強(qiáng)大。

框架的優(yōu)缺點(diǎn),我會再單獨(dú)寫文。

如果你還有興趣,可以自己搭建Lucene、solr框架,以及memcached/redis、activeMQ、hadoop等等搜索、分布式緩存、異步消息、數(shù)據(jù)等。

我一般建議自己搭建,從學(xué)習(xí)效果再到理解深度都不一樣。有興趣,就開始自己搭建。

第五步:開發(fā)工具階段

1.web調(diào)試工具

firefox

firebug

webdeveloper

yslow

httpwatch

ietester等

這些都是開發(fā)必用。

2.集成開發(fā)工具

eclipse(首推),STS,myEclipse,Idea

eclipse里的插件太多,推薦幾個必裝插件:

JadClipse、run-jetty-run(很牛的熱部署調(diào)試)、veloctiy、freemarkerIDE、Subclipse、m2eclipse、mybatisEditor、EasyExplorer等等。

3.版本控制工具

svn、git(首推)

4.構(gòu)建工具

maven、nexus搭建maven私服

建議自己搭建一套nexusmaven私服,成為你們公司的代碼倉庫員。

5.java調(diào)試工具

jProfiler(性能跟蹤)

jClarity(性能監(jiān)控和日志分析)

Visualvm(性能分析和調(diào)優(yōu))等

優(yōu)知學(xué)院是IT人的進(jìn)階站,提供系統(tǒng)的互聯(lián)網(wǎng)產(chǎn)品&技術(shù)的入門指南以及進(jìn)階干貨。

學(xué)Java有必要看數(shù)據(jù)結(jié)構(gòu)的書嗎如果是,那么哪本書比較好

你問我有沒有必要,那我肯定覺得是有必要的。作為一個程序員(好吧,說實話我還稱不上,程序員,目前只是個正被JAVA淹沒不知所措的大二狗)。我真心覺得把自己當(dāng)做一個程序員就夠了,前面無需再加任何的語言修飾詞,我們只是為了解決問題,完成功能,至于用什么語言,工具真的無所謂。最好不要把自己綁死在一門語言上而抗拒其它的優(yōu)秀語言(連Sun都開始在JAVA8中吸收scala的函數(shù)式編程,我們還有什么理由拒絕其它語言呢,再說JAVA語法的落后于C#等新的語言也是不爭的事實)再說以后工作也不一定使用大學(xué)學(xué)的語言,能在各種語言之間通用的也只有數(shù)據(jù)結(jié)構(gòu)和算法,學(xué)好了上手哪門語言都很快的。數(shù)據(jù)+算法=程序這個經(jīng)典公式就已經(jīng)告訴我們數(shù)據(jù)結(jié)構(gòu)的重要性,這也是我們能夠從只會套api到有自己的思考和提升解決問題能力的重要途徑。

好啦,切入正題。算法和數(shù)據(jù)結(jié)構(gòu)的書還真不少,可大部分都是用C語言描述的,雖然能看懂,但對我們來說的確不如用JAVA語言描述來的更易懂。先來條在某東找算法書時看到的精彩評論:

java數(shù)據(jù)結(jié)構(gòu)與算法方面的三寶分別是:

1.黑寶書《數(shù)據(jù)結(jié)構(gòu)與算法分析java語言描述》markallenweiss

2.藍(lán)寶書《java數(shù)據(jù)結(jié)構(gòu)和算法》robertlafore

3.紅寶書《算法》robertsedgewick

市面上所有數(shù)據(jù)結(jié)構(gòu)和算法的書我都買過,也看過,最后總結(jié)出這三本是最好的,希望能對其他讀者有所幫助,也免去了其他讀者花冤枉錢的風(fēng)險。接下來說說三寶的特點(diǎn):黑寶書勝在公式推理和證明以及算法的簡潔和精煉,此外習(xí)題較多。藍(lán)寶書勝在對算法的深入淺出的講解,演示和舉例,讓艱澀的理論變得很容易理解。紅寶書勝在系出名門斯坦福,演示通俗易懂,內(nèi)容豐富。有了這三寶,算法不用愁,學(xué)完以后再看《算法導(dǎo)論》就容易多了。

我買的是黑寶書——《數(shù)據(jù)結(jié)構(gòu)與算法分析JAVA語言描述》。其它兩本我沒看過,所以不敢妄加評論!這本書的優(yōu)點(diǎn)正如那條評論說的,公式證明和推論很簡練,還有對JAVA的幾種數(shù)據(jù)結(jié)構(gòu)List,Map的源碼分析和實現(xiàn),每章后面也有很多課后題,可以自己去嘗試解決,練習(xí)一下。其中也有一部分對JAVA設(shè)計的講解,真心覺得不錯(*?′╰╯`?)?,推薦給大家,手機(jī)打字慢,不多說了,細(xì)節(jié)可以自己去網(wǎng)上了解一下這三本書,按照自己的喜好買一本。

備注:我平常也挺喜歡看書的,沒事就翻翻編程有關(guān)的書。看書的方式我也分為兩種:偏記憶類的書,如Spring實戰(zhàn)(挺不錯的一本介紹Spring框架的書,推薦大家去看看),深入淺出Mybatis等,我是當(dāng)課外興趣書來看,沒事就翻翻,場合也沒要求,很隨意。一遍記不住,多翻翻就記住了。第二類是偏理解的書:如數(shù)據(jù)結(jié)構(gòu)和算法,正則表達(dá)式。這類書我介意大家找個充足的時間,帶著筆,帶著演草本,就像考試一樣沉浸進(jìn)去,好好算算,體驗一下。這種書不是翻就行的,重在理解。

本人也是大二狗,水平有限,哪里說的不對的(就當(dāng)我在吹牛啦)請多指教哈,有興趣一起自學(xué)的可以私信我,哈哈(?ω?)hiahiahia,大家一切努力吧!

返回列表
上一篇:
下一篇: