<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                微軟的各種開發工具、開發技術一向簡單易用,容易上手,比較容易的就能出效果,但由于其比較封閉的生態環境,很容易就在技術上止步,相對不容易深入。 Java生態環境很開放,各種開源第三方框架層出不窮,要學習的東西非常多,學習成本相對較高,技術上容易進步。 我個人感覺,Java體系的從業者平均技術水平應該是大于微軟體系的,下面開始學習之旅。 ? # 最基礎的語法和常用類--《Java無難事》 首先配置Java開發環境,到官網下載一個Java SE的SDK,安裝到你的機器上,安裝完畢后,在環境變量-〉系統變量中新增系統變量JAVA_HOME,其值為JDK安裝路徑,比如:D:\Java\jdk1.6.0_39,然后再path變量的頭部新增:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 在cmd中執行命令:java -version,如果輸出版本號,則說明最基本的Java開發環境配置成功了,那么我們可以使用EditPlus之類的文本編輯器書寫第一個Hello World程序了,命名為HelloWorld.java。 ~~~ public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } } ~~~ 進入cmd,執行命令 javac HelloWorld.java編譯這個程序,執行命令 java HelloWorld 就可以看到cmd中正確的打印出了“Hello World”字符串。 Wornderful,是不是應該幸福一下呢 ,大笑現在我們開始基礎語法和常用類的學習吧。 怎么學呢?看厚厚的書嗎?太浪費時間了。建議還是看視頻吧,推薦:孫鑫的 《Java無難事》,可以去優酷下載12講視頻及配套的ppt講解,10/11/12講可以不用看,以后的工作過程中基本用不到;把視頻多看幾遍,理解透徹了,里面的所有例子,都用EditPlus多寫幾遍,調通,開始是抄,后來是自己寫,做到可以自行寫對所有的例子代碼寫對調通的時候,可以說已經Java入門了。 這第一步大約累計需要40小時。 在這個步驟,不要試著去閱讀800多頁的《Java編程思想》,更不要試著去閱讀關于“設計模式”的書籍,我們需要的是盡量壓縮學習時間,用這40個小時的時間,掌握基礎的Java,在這個最低可以工作的基礎上,先去做一個蹩腳的Java程序員,先到實操環境中去實踐。 # JAVA IDE 開發環境(Eclipse) 這第二步的目的是開發一個簡單的Web程序,數據庫的CRUD。 Eclipse就到官網下載一個Eclipse IDE for Java EE Developers,版本隨便:Kepler/Juno/Indigo都行。 這是最流行的,綠色的,解壓就能用。 執行eclipse.exe允許Eclipse,會提示你選擇一個WorkSpace(工作區),WorkSpace可以看作C#開發工具Visual Studio的解決方案(.sln) 試著建立幾個Java Project,試試一個Project如何引用其他的Project,就像Visual Studio中進行項目引用一樣;Eclipse也可以引用JAR包,就像Visual Studio進行DLL引用一樣。Java Project這種工程都可以導出成JAR包。 Eclipse也是可以直接連接SVN的,安裝插件,就像Visual Studio安裝Visual SVN一樣。 下面說下Eclipse集成Web容器(Tomcat): 開發環境一般都用Tomcat或者Jetty,好處就是啟動快,是Jboss的1/2甚至1/3。 官網下載一個Tomcat,綠色的,解壓就可以用,解壓后,cmd運行bin/startup.bat,就開啟了Tomcat,在瀏覽器輸入http://localhost:8080,就可以看到Tomcat的默認站點了;為了方便調試程序,我們是需要在Eclipse中啟動停止Tomcat的,關于具體的設置方法,可以Baidu一下,很多資料。 Eclipse默認支持Tomcat的版本到7,Jboss的版本到5;如果想在Eclipse中啟動停止更高版本的Web容器或者其他的容器,就要安裝插件了。 開發一個簡單的Web程序: 就用Spring+SpringMVC+MyBatis來練手,最好是看別人的例子,我這里也會逐漸放上自己寫的例程。 以上環節走通,大約1周,也就調通了,但是逐步的理解加深,必須到工作中逐步的提高了。 提高是一步一步的,真的。 # Java的常用框架:Spring、ORM、MVC Spring+SpringMVC+MyBatis是值得學習的。 MAVEN:很多工作都用MAVEN管理項目,非常值得用,學習使用也就是幾天的事情,很快就熟。Maven打包和Export導出的war(jar)包,內容可能是不一樣的,比如pom.xml里面的 ~~~ <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> ~~~ 用Maven打包:mvn clean package -Dmaven.test.skip=true -U,會排除包servlet-api-2.5.jar,而Export會把這個包打進去,從而可能導致與容器(Jboss/Tomcat等都是自帶servlet/jsp等包的)里面的包沖突而出現問題。 WebService框架:CXF/Axis2等,最好都不要學習了,工作中能不用就不用吧,用DUBBO/Thrift替代。 Log4/QuartZ:不論哪種語言,都是會使用的吧。 這些也都是循序漸進的,工作中學習,工作中進步。 # Linux(rhel-server-6.2) Java的生產環境基本都是部署在linux上的,常用的linux命令要了解。 容器的性能調優,要逐漸的學習。 個人感覺,最事半功倍的學習,是在工作中學習,學習中工作。有一個良好的氛圍很重要。 # JVM優化 **Tomcat增加內存:**catalina.sh第一行增加:set JAVA_OPTS='-Xms1024m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m' ,linux不需要set。 **Jboss5增加內存:**/usr/java/jboss-eap-5.1/jboss-as/bin/run.conf if [ "x$JAVA_OPTS" = "x" ]; then ? ?JAVA_OPTS="-Xms2048m -Xmx2048m -XX:MaxPermSize=1024m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Dorg.terracotta.quartz.skipUpdateCheck=true -Dspring.profiles.active=production" fi ? ?JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=本機IP地址" 另一臺機器(CPU: Xeon 5620 2G:24線程,內存32G)有如下配置: ? ?JAVA_OPTS="-Xss1280k -Xms15g -Xmx15g ?-Xmn8g -XX:MaxPermSize=300M -XX:+UseConcMarkSweepGC -XX:ParallelGCThreads=16 -XX:CMSFullGCsBeforeCompaction=5 -XX:+UseCMSCompactAtFullCollection -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/applogs/jbosslogs -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/data/applogs/jbosslogs/heap_trace.log -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Dmemcached_config=file:/etc/yougouconf/memcached_cluster.xml -Dspring.profiles.active=production" **內存溢出PermGen解決,增加方法區內存:** -server -Xms768m -Xmx768m -XX:PermSize=1024m -XX:MaxPermSize=1024m 內存問題是需要了解的,找本JVM的書看看,這里簡單介紹 一下JVM內存: [http://hi.baidu.com/zzusec/item/73895f11f405d2f89c778a3d](http://hi.baidu.com/zzusec/item/73895f11f405d2f89c778a3d) [http://blog.csdn.net/kthq/article/details/8618052](http://blog.csdn.net/kthq/article/details/8618052) [http://www.open-open.com/lib/view/open1324736648468.html](http://www.open-open.com/lib/view/open1324736648468.html) JVM優化的核心,實際就是調整各個JVM內存塊為合適的大小,使用合適的垃圾收集器。 **jvm默認參數查看:** java -XX:+PrintFlagsFinal?顯示所有可設置參數及默認值,可結合-XX:+PrintFlagsInitial與-XX:+PrintFlagsFinal對比設置前、設置后的差異,方便知道對那些參數做了調整。 java -XX:+PrintFlagsInitial?可以獲取到所有可設置參數及值(手動設置之后的值),這個參數只能使用在Jdk6 update 21以上版本(包括該版本)。 java -XX:+PrintCommandLineFlags ?顯示出JVM初始化完畢后所有跟最初的默認值不同的參數及它們的值。 jinfo -flag MaxPermSize pid號 ?:jinfo?查詢MaxPermSize 參數的值 # 如何利用各種語言 沒有一種語言能包打天下,都有其適用的場景。 基礎性語言:Html、JavaScript、CSS 通訊框架:Thrift/Hessian/Rest/Soap,常用語言都支持,性能Thrift>Hessian>Rest>Soap;Dubbo,如果公司沒有強大的研發力量開發基礎框架的話,這是一個很好的選擇 Web開發:使用最為廣泛的是Java體系,C#也很多,現在有一些使用Ruby on Rails 桌面開發:C# PDA開發:比如倉儲的手持設備,是WinCE系統,所以還是要用C#開發,框架是.Net Compact FrameWork 手機開發:C、Java 所以,需要根據業務場景,選擇合適的語言,學習來說,是廣泛而深入的學習,不囿于具體語言。如果是新進入IT行業,首選的學習目標,建議還是Java。 # 工作兩到三年之后。。。 你是否已經**足夠努力**的工作了兩年,你是否已經學會使用(不是掌握)了很多很多的Java生態的框架,你是否已經走在了成為一名“高級軟件工程師”,并希望成為一名“資深工程師/架構師”的路上,再深入的看書吧![大笑](https://box.kancloud.cn/2016-01-19_569e21abc5518.gif) 《Java編程思想》,第四版、第五版,快速看一遍,并隨手翻翻,受益良多; 《Java與模式》,這是一本2002年的說,沒錯,10多年前的書,可以很快閱讀,并和這兩年積累的經驗相互印證; 《Spring 3.X企業應用開發指南》,工作中一定用了Spring吧,常用的框架都會給予Spring進行配置吧,這個時候有必要把Spring知識系統的串聯一下了,Spring是因為JDK 有了反射才有可能被創造出來的,IoC只是基礎,AOP才是目的,利用AOP簡化我們的開發工作;如果有更多時間,可以通過《Spring Internals》這本書學習研究一下Spring源碼; 《深入理解Java虛擬機》,虛擬機的知識,還是有必要學習一下的;常用的JDK源碼,以及《算法導論》,也有必要研究一下; 關于Web服務器(Nginx、Apache)的書,關于Servlet容器(JBoss、Tomcat、Jetty)的書; 如果還有時間,擴充一下技術廣度和業務廣度吧; 這個階段,對于進階是最最重要的幾年,大多數人,在這個階段,都是把以前的編程經驗,又重復了很多年,很多年,沒有突破和進階,令人遺憾。。。 # 工作六到八年之后。。。 你已經**足夠努力**的工作了這么多年,真的應該恭喜一下,不論是否真的已經成為專家,你都是一個有恒心的人,真的是值得敬佩的。 但是這個時候,至少應該已經是技術專家/高級架構師級別了吧![大笑](https://box.kancloud.cn/2016-01-19_569e21abc5518.gif) ?。 **我個人覺得,不論什么領域,成為專家有3條是最重要的:** 1、持續的努力,這是不可或缺的; 2、勤于思考,走了更少的彎路,這決定的是在路上的時間; 3、受到了高人的指導,或者自行模仿了高人,至少是仰望了一下,所謂:“身雖不能至,而心向往之”,這是理想,是驅動力。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看