1. java程序員面試時被問到:如何在j2ee項目中處理高並發量訪問 該怎麼回答 請仔細看題干再回答
盡量使用緩存,包括用戶緩存,信息緩存等,多花點內存來做緩存,可以大量減少與資料庫的交互,提高性能。
2. java web程序設計要學些什麼
一、 HTML CSS Javascript
正如嚴老師所說:「Java Web 的基礎是建立在HTML這套標簽的地基之上的」。所以學習Java Web 就要學習HTML的標簽,開始對HTML的理解並不是很深,本以為作為程序員對HTML的重點掌握無非就是From表單,哦,對了,還有Table,<a herf=」」>,文檔的格式<head><body>等等等等,而對於CSS,更覺得這對於作為程序員的我們沒有什麼太大的必要,那些事情完全是由美工來做的,而對於Javascript則覺得他應當是與vbscript一個時代的腳本語言,其作用無非是給頁面添加一些花哨的動態效果沒有什麼實際意義,但是當我接觸到更多的新技術如AJAX的時候便覺得我所掌握的遠遠不夠,對於AJAX而言你學要知道每個細節從而能夠設計出既美觀又具有人性化的用戶界面。而AJAX所以依託的基礎便是Javascript、CSS、HTML、XML,其思想在於使用XMLHttpRequest實現非同步調用把數據偷偷的下載到客戶端從而使得用戶無需刷新界面從而得到更好的上網體驗,此三種技術在AJAX中發揮的淋漓盡致。這才知道那本OReilly的 「Javascript犀牛書」並不是蓋的。這三個基礎性的東西還是學要好好的學習,老的技術相結合也能煥發出新的光彩。
二、 TomCat
總覺的這是一個讓人頭疼的東西,學習的時候常需要給他進行很多項配置,首先是虛擬路徑,在server.xml文件夾下加上<Context path=」/test」 docBase=」F:\dwb」>,有一次給同學安裝Tomcat6.0把Tomcat5.5裡面老師寫好的server.xml直接粘貼到了Tomcat6.0的cong文件夾下竟不能運行,這才知道版本不同隨便粘貼後果是很可怕的,還是老老實實的把<Context path=」/test」 docBase=」F:\dwb」>這句話粘貼上才是。東西有時命名目錄里的東西已經更改了,TomCat也已經重新啟動了,但網頁上顯示的依舊是以前的東西,還得把C:\Program Files\Apache Software Foundation\Tomcat 5.5\work\Catalina\localhost\這個目錄下的虛擬路徑刪掉(如經典的test目錄)。在做第9、10、11章的例子的時候還要把WEB-INF文件夾放到虛擬目錄的根目錄下否則會找不到WEB-INF文件夾,總之問題多多,問題越多,自己的經驗也就越多。
三、 JSP基本語法
1、 < % %>在jsp頁面中插入Java代碼,<%= %>表達式輸出語句
2、 JSP指令和動作:指令主要是<%@page %>、<%@include %>;動作主要是<jsp:forward>、<jsp:include>、<jsp:usebean>、<jsp:setProperty>、<jsp:getProperty>
3、 四種屬性的作用域page、request、session、appliction,一個比一個大,page只對當前頁面有效,request是在兩個頁面跳轉的時候包括伺服器端的跳轉,seesion只要瀏覽器不關閉,屬性一直存在。Appliction只要伺服器(如Tomcat)不關閉它一直都存在
總之我感覺JSP的基本語法還是很簡單的無非就是幾個標簽指令什麼的,稍需要注意的是<jsp:forward>是伺服器端的跳轉URL地址不變,<%@include %>、<jsp:include>主要是包含靜態和動態的區別。
四、 JSP內置對象
Request:主要作用接受表單傳來的數據,
Response:主要是可以像客戶端發送頭部信息和重定向sendRedirect
Out:輸出一些東西
Exception:一些異常信息
Config:這個對象比較厲害,它能獲得web.xml中的許多信息,如<application>中的值,<servlet>中的parm值等
Session和applicition對象主要是用他們的setAttribute和getAttribute方法存取一些屬性值,不同之處在於他們的作用域
五、 JDBC
與資料庫進行連接,這是學習程序的重頭戲,但也不是很難,主要是記住連接資料庫的一些流程
1、 Class.forName(驅動程序字元串)
主要有四種驅動方式,字元串也各不相同,我們常用的是連接access的jdbc odbc bridge字元串為sun.jdbc.odbc.jdbcodbcdriver
2、 DirverManger.getConnection(DBURL)
DBURL字元串為 Jdbc:odbc:數據源名稱
3、新建statement對象
4、執行exectuQuery或exectuUpdata方法
5、逆序關閉資料庫
六、結語:設計模式 與開發框架
DAO模式已經過時了,現在的主流模式是MVC;其中主要用了servlet充當控制層, 還需要在web.xml中配置servlet映射,它主要是起到數據控制流向的作用,現在說有主流的框架都是使用MVC模式,如SSH,但是這些框架都沒有想微軟vasual Studio那樣的可是控制項(雖然JavaBen是一些可復用的類),2005年推出的JSF開發框架彌補了這一缺陷,相信在未來作為SUN官方標准推出的JSF開發框架可能會成為主流框架,因為ESRI的ArcGIS Server就是依託於JSF框架開發的產品,相信JSF會成為以後開發框架的主流!
3. 怎麼學習Java編程才更有效率,怎麼提高自己敲代碼的速度
1 與其反復閱讀,不如經常回顧
大家記住,對於Java技術性的書籍,絕對不是讓你一頁一頁去看的,像是完成做一樣。有一句話說:溫故而知新,可以為師矣。學過的知識點,你時常去復習一下,你每天都見到你自然就記住了,而不會像很多人說「學了就忘」你不總去回顧,那能不忘記嗎?不如有意識地總結回顧看過的Java書,學過的知識。只需要每晚趟在床上的時候,回想一下今天都學到了什麼?今天自己有進步一點點嗎?
2 多做練習,多寫代碼,從錯誤中學習
一個優秀的Java開發者,沒有什麼聰明人,他們都是一行一行代碼積累出來的,對於一個Java初學者來說,如果你想要找到一份不錯的Java工作,你只能是大量的練習,形成一個好的學習習慣。在初學階段哪怕對著書本敲也沒有什麼問題。認真完成書中留的習題,在自己沒有盡最大努力的情況下面不要去看答案。不要怕犯錯,每一次犯錯都是自己進步的機會。
3.向別人解釋你的知識,多與人討論
一個NB的Java開發者,一定是一個很會思考的,有能力就多寫博客,多分享自己的所學所思,只要你能寫出東西,不怕你寫的太低級,這些對於學習者自身也是非常有益的。通過用別人能夠理解的語言來解釋你學到的東西,本身就要求你對該知識充分理解。另外,很多人經常感嘆「跟你討論一下,我馬上變得有思路了」,這其實就是交流的作用。
這是一個非常不錯的java交流群:四九四,八零一,九三一。如果你想要更好的學習java可以多交流討論,有什麼不懂的問題隨時來問我。
4 對於自己想要學習的內容,制訂一下計劃,有節奏地學習
一個學習習慣好的人,做什麼事情都會有一個明確的計劃,對於一個Java初學者來說,一份好的學習計劃是你開始的前提,因為學習一個東西最怕三天打漁,如果能夠持續地學習一個東西,我可以把它學習地很好。這時候,你就應該結合我自身的情況,選擇一段最佳的學習時間,在這段學習時間里我可以不被打擾,保持高度專注。比如每天早上6.30起床看一個小時書。
5.注意勞逸結合
對於電腦工作者來說,多參加體育鍛煉,多去戶外走走,運動能夠增強人的記憶力,並且有時候還能產生靈感。如果身體不好,你的學習效率會非常低,人的精神狀態一旦非常好的時候,做什麼都會如魚得水。想要成為大神,身體好是前提條件。有人30歲成為大神,我資質不好,我35歲成為大神總可以吧。切莫在30歲的時候就把身體弄跨了,然後35歲轉行了,永遠失去了成長為大神的機會。
6 多總結問題的解決方案,多寫可復用的代碼,拒絕復制粘貼
每天把學習中遇到的問題最後的解決方案總結一下,想想為什麼出現了這個錯誤,加深自己的印象,是什麼導致了這個錯誤,犯過一次的錯誤就盡量不要犯第二次,導致錯誤的根本原因是什麼。是自己的邏輯混亂,粗心大意,還是程序太復雜?
4. 做Java開發都需要學什麼怎麼學
java開發主要學習的課程內容有:
1.JAVA SE基礎
Java 開發前奏 環境搭建
Java程式設計基礎
面向物件
常用 類 API
泛型 集合
異常處理
IO
多執行緒
網路程式設計
類載入機制與反射
設計模式
2、JavaWeb核心技術
HTTP 協議 WEB伺服器 TomCat
Servlet
request與response
Cookie與Session
JSP
資料庫高階開發
AJAX
JavaWEB高階開發技術
基礎加強之框架載入
專案管理
3、核心框架
Struts2
Hibernate
Spring
Maven
MyBatis
JPA
SpringData
SpringMVC
SpringSecurity
Shiro
Linux
專案穿插
4、大資料
大資料架構基礎
雲端計算基礎
Shell
環境搭建
Hadoop體系
HDFS分散式檔案系統
資料匯入
5、綜合學習,Java大資料課程
Java大資料課程定位中高階Java開發工程師,課程內容涉及面廣,內容深
課程涵蓋了JavaWeb,資料庫,企業流行框架,JavaScript等企業最佳實踐、雲端計算大資料課程、內容由淺入深,剖析原理,掌握實用技術。
多個企業級的大型真實專案學習;
Java大資料課程內容來源於企業,課程包含企業中使用最多、最熱門的核心技術和框架;
java的學習方式如下:
1、網上參加網路線上教育直播課程,通過邊學習網上操作專案實戰學習,一般課時為6個月左右。
2、參加線下的java型別的培訓班,以全日制上課模式,一般為6個月——2年時間左右。
3、如果有一定的程式設計和計算機經驗,自學可以選擇看書、看視訊教學,然後操作實戰方式。學習時長未知。
」,「我看完了Thinking in Java, 可以學習J2EE了么?」。於是就有了寫這篇文章的想法,希望能幫助初學者少走一些彎路。也算是對自己幾年來學習Java的一個總結吧。 在開始之前有必要再討論一下J2ME,J2SE,J2EE這些概念。J2ME,The Micro Edition of the Java 2 Platform。主要用於嵌入式Java,如手機,PDA等等。J2SE,Java 2 Platform,Standard Edition,我們通常所說的JDK(Java Development Kit)包含在此,是J2EE的基礎。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業級Java。這些只是從API級別上的劃分,實際上Sun給J2EE的定義是:開發基於元件的多層的企業級應用的規范。也就是為各種不同的技術定義一個Java的規范,使這些不同的技術結合起來,在Java平台上構建強壯的企業級應用。從這一點來看,J2EE這個概念應該是涵蓋J2ME,J2SE的。比如一個典型的J2EE應用,網上商店,它支援web方式下訂單,也支援手機下訂單。顯然必須用到J2SE,J2ME。所以也就不存在所謂的從J2SE轉向J2EE的問題了,只是後者包含的范圍更廣而已。 來看看Sun給出的J2EE 相關技術主要分為幾大塊。 1. Web Service技術 - Java API for XML Processing (JAXP) - Java API for XML Registries (JAXR) - Java API for XML-based RPC (JAX-RPC) - SOAP with Attachments API for Java (SAAJ) 2. 元件模型技術(Component Model Technologies) - Java Servlet - JavaServer Pages - JavaServer Faces - Enterprise JavaBeans - Java Message Service - J2EE Connector Architecture 3. 管理技術(Management Technologies) - J2EE Deployment Specification - J2EE Management Specification - J2EE Client Provisioning - Java Authorization Contract for Containers 4. 其他相關技術(Other J2EE Technologies) - JDBC - Java Data Objects (JDO) - CORBA (Java IDL and Java RMI-IIOP) - JavaMail - Transactions 如此之多的技術難免使初學者無所適從,望而卻步。即使是一位經驗豐富的J2EE開發者,又有幾個人敢說J2EE相關的技術我都熟練掌握了。不過作為一名普通J2EE應用程式的開發者來說,我們只需要重點學習其中的一部分技術就可以了,對於其他部分只要做到心中有數,哪天需要用到了知道跑哪裡去找到資料就行了。以我個人的觀點,下面這些技術是一般J2EE應用開發人員所必須熟練掌握的。Java Server Page,Java Servlet,Enterprise JavaBean,JDBC,Transactions。還有JAXP等XML相關技術,Java Message Service,Java Mail,JDO等等是最好應該掌握的。其他Management Technologies,Connector Architecture等等主要是給容器提供商中介軟體提供商參考的,應用開發者不需要怎麼關心,等用到了再去學習也不遲。 、、 Java發展到現在,按應用來分主要分為三大塊:J2SE,J2ME和J2EE。這三塊相互補充,應用范圍不同。 J2SE就是Java2的標准版,主要用於桌面應用軟體的程式設計; J2ME主要應用於嵌入是系統開發,如手機和PDA的程式設計; J2EE是Java2的企業版,主要用於分散式的網路程式的開發,如電子商務網站和ERP系統。 先學習j2se 要學習j2ee就要先學習j2se,剛開始學習j2se先建議不要使用IDE,然後漸漸的過渡到使用IDE開發,畢竟用它方便嘛。學習j2se推薦兩本書,《java2核心技術一二卷》,《java程式設計思想》,《java模式》。其中《java程式設計思想》要研讀,精讀。這一段時間是基本功學習,時間會很長,也可能很短,這要看學習者自身水平而定。 不要被IDE糾纏在學習java和j2ee過程中,你會遇到五花八門的IDE,不要被他們迷惑,學JAVA的時候,要學語言本身的東西,不要太在意IDE的附加功能,JAVA程式設計在不同IDE之間的轉換是很容易的,過於的在意IDE的功能反而容易耽誤對語言本身的理解。目前流行的IDE有jbuilder,eclipse和eclipse的加強版WSAD。用好其中一個就可以了,推薦從eclipse入手j2ee。因為Jbuilder更適合於寫j2se程式。 選擇和學習伺服器使用配置當你有了j2se和IDE的經驗時,可以開始j2ee的學習了,web伺服器:tomcat,勿庸置疑,tomcat為學習web服務首選。而應用伺服器目前主要有三個:jboss、weblogic、websphere。有很多專案開始採用jboss,並且有大量的公司開始做websphere或weblogic向jboss應用伺服器的移植(節省成本),這里要說的是,學習tomcat和jboss我認為是首選,也是最容易上手的。學習伺服器使用配置最好去詢問有經驗的人(有條件的話),因為他們或許一句話就能解決問題,你自己上網摸索可能要一兩天(我就干過這種傻事),我們應該把主要時間放在學習原理和理論上,一項特定技術的使用永遠代替不了一個人的知識和學問。 學習web知識如果你是在做電子商務網站等時,你可能要充當幾個角色,這是你還要學習: ,可能要用到dreamwave等IDE。 Javascript,學會簡單的資料校驗,資料聯動顯示等等 J2eeAPI學習學習j2eeAPI和學習伺服器應該是一個迭代的過程。先學習jsp和servlet程式設計,這方面的書很多,我建立看oreilly公司的兩本《jsp設計》和《java servlet程式設計》,oreilly出的書總是那本優秀,不得不佩服。學習jdbc資料庫程式設計,j2ee專案大多都是MIS系統,訪問資料庫是核心。這本應屬於j2se學習中,這里拿出來強調一下。學習jndi api,它和學習ejb可以結合起來。學習ejb api,推薦書《精通ejb》經過上面的這些的學習,大概可以對付一般的應用了。有人說跟著sun公司的《j2ee tutorial》一路學下來,當然也可以。 學習ejb設計模式和看程式碼(最重要)設計模式是練內功,其重要性可以這么說吧,如果你不會用設計模式的話,你將寫出一堆使用了ejb的垃圾,有慢又是一堆bug,其結果不如不用ejb實現(ejb不等於j2ee)無論學習什麼語言,都應該看大量程式碼,你看的程式碼量不到一定數量,是學不好j2ee的目前有很多開源的工程可以作為教材: jive論壇 petstore sun公司 ne sun公司等等,研讀一個,並把它用到自己的工程中來。 J2ee其他學習當你漸漸對j2ee了解到一定深度時,你要開始關注當前領域中的一些技術變化,J2ee是一塊百家爭鳴的領域,大家都在這里提出自己的解決方案,例如structs,hiberate,ofbiz等等,學習這些東西要你的專案和目標而定,預先補充一下未嘗不可,但不用涉及太深,畢竟學習原理和理論是最最重要的事。 目前常見j2eeAPI JavaServer Pages(JSP)技術1.2 Java Servlet技術2.3 JDBC API 2.0 Java XML處理API(JAXP)1.1 Enterprise JavaBeans技術2.0 Java訊息服務(JMS)1.0 Java命名目錄介面(JNDI)1.2 Java事務API(JTA) 1.0 JavaMail API 1.2 JavaBeans啟用架構(JAF)1.0 J2EE聯結器體系結構(JCA)1.0 Java認證和授權服務(JAAS)1.0 學習上面的某些API要以你的專案而定,了解所有他們總之是有好處的上面印證了大家說的一句話,java語言本身不難學,但是技術太多,所以學java很費勁。回想一下,基本上每個初學者,在剛學習java的時候可能都會問別人這么一句話,你怎麼知道的哪個方法(api)在哪個包里的?呵呵,無他,唯手熟爾。
一般分為四個學習階段,
第一階段:小型桌面應用開發
階段目的:掌握JAVA語言的語法,理解面向物件的程式設計思想,能夠熟練使用JAVA語言開發小型桌面應用。
基礎技能訓練:作業系統與網路技術、JAVA面向功能物件程式設計、JAVA核心程式設計、JAVA網路程式設計
第二階段:中小型網站應用開發
階段目的:掌握資料庫設計與開發技能,熟練使用JAVAEE元件技術開發中小型網站應用。
資料庫(Oracle資料庫管理及開發)、UI開發(WEB頁面開發基礎、XML、Ajax)、JAVAEE元件開發(jsp、servlet、jdbc)、框架技術(struts2.0、hibernate、spring、springMVC、mybatis)
第三階段:軟體工程工業實踐
階段目的:熟悉軟體工程流程及規范,使用以前三個階段所學的技能,進行軟體工程工業實踐。
軟體工程方法論、軟體工程專案實踐
第四階段:職業素質培養及就業
階段目的:提高團隊協作能力、職業道德、溝通能力和面試技巧,成功面試,成為標准IT職業人。
職業素質培養(職業道德、專案經理座談、面試技能)、就業。
java分初級中級高階三個階段
初級學的是基礎知識,包括IO流,集合,封裝,繼承,多型,抽象,介面等等零散又多的知識。
中級階段會學習一些技術框架,js,jquery,jdbc,解析xml,,jsp等等,前後台的東西(前台是頁面,後台是java程式碼)
高階階段會學習框架,典型的三大框架必學的(Struts2,hibernate,spring),還有springMVC,Mybaties(ibaties),框架只是減少你的程式碼量,更加方便,業務邏輯還是要自己寫的。還有框架的整合SSH(struts2+hibernate+spring),SSM(spring+springMVC+mbaties)
PS:在學習高階之前,你可能覺得初級和中級的東西沒啥用,因為你還沒有用到,學完框架以後就會用到了。
第一階段:Java語言基礎
Java語言基礎
1、面向物件思維JAVASE
2、(類載入機制與反射,annotation,泛型,網路程式設計,多執行緒,IO,異常處理,常用API,面向物件,JAVA程式設計基礎)
3、Java8新特性
第二階段:資料庫
JAVA戰狼班 資料庫
1、Oracle(SQL語句、SQL語句原理、SQL語句優化、表、檢視
2、序列、索引、Oracle資料字典、Oracle 資料庫PL/SQL開發
3、資料庫設計原則、 MySQL 、 JDBC
兄弟連JAVA戰狼班第三階段:Web基礎
Web基礎
1、HTML5(H5)基本文件結構、連結、列表、表格、表單;
2、CSS 基礎語法、盒子模型、浮動布局、定位;
3、JavaScript語言基礎、DOM 程式設計、事件模型等),JQuery,AJAX框架,XML,BootStrap元件
第四階段:Java Web技術和主流框架
Java Web技術和主流框架
1、JSP&Servlet、struts2,hibernate4,spring4,JPA,maven
2、SpringData,SpringMVC,MyBatis,SpringSecurity,shiro,Nginx
第五階段:Linux
Linux
1、Linux安裝、熟悉Linux的基礎命令、vi編輯器的使用、awk和sed命令使用、使用者和組
2、檔案及目錄許可權管理、使用ACL進行高階訪問控制、網路配置和軟體包安裝、啟動流程和服務管理
3、系統監控和日誌管理、程序管理和計劃任務、ssh遠端登入、shell基礎和shell指令碼。
第六階段:大資料技術(Hadoop和Spark)
大資料技術(Hadoop和Spark)
1、Hadoop (Hadoop基礎和環境搭建,HDFS體系結構,MapRece;Hadoop的叢集模式、HDFS聯盟,利用ZooKeeper來實現Hadoop叢集的HA(高可用性)功能
2、Yarn的任務排程機制,Apache Hive,Pig資料處理,整合Hadoop和Sqoop
3、Flume以及Apache Kafka來實現資料的交換,安裝部署HBase,Storm)
4、Scala 語言(Scala環境搭建、Scala基礎語法、模式匹配、過載與構造器、Map與rece、元組、繼承、StringContext,Option Some None,Tuple;集合方法和運算,future 物件同步處理和非同步處理返回結果)
5、Spark(Spark搭建,Spark-shell 的使用,Spark-submit 提交應用, Spark的核心設計和實現,並對核心中的實現架構、執行原理進行詳細的講解;Spark生態體系中的各個元件,包括:Spark Core,Shark,Spark SQL和Spark Streaming等等)
第七階段:專案
專案
1、China-UCSP 專案 SSM(Spring+SpringMVC+MyBatis)
2、使用者關系管理系統 S2SH+Maven+Nodejs+MySQL技術實戰開發
3、電子商務交易平台 S2SH+Maven+Shiro+Oracle
Java語言程式設計、C/C++/C#程式設計、資料結構、網頁設計與製作、資料庫原理與應用、J2EE/.Net軟體架構、Oracle資料庫、軟體測試、IT專案管理、軟體工程與實踐。
首先是它的開發語言Objective-C,它是C的超集,支援面向物件程式設計,是最早的面向物件語言之一。做iPhone or iPad開發,不免會用到各種控制元件,需要對這些控制元件的用法做到靈活運用。這些控制元件基本上都來自於UIKit.framework.如果想要設計出可重用性,可擴充套件性的應用的話,還需要對程式設計思想及面向物件程式設計要有所了解。