Java มีไว้สำหรับทำโครงการ! พื้นที่ใช้งานหลักของ Java คือการพัฒนาโครงการระดับองค์กร! หากต้องการมีส่วนร่วมในการพัฒนาโครงการระดับองค์กร คุณต้องเชี่ยวชาญประเด็นต่อไปนี้:
1. ฝึกฝนขั้นตอนพื้นฐานของการพัฒนาโครงการ
2. มีทักษะการวิเคราะห์และการออกแบบเชิงวัตถุที่แข็งแกร่ง
3. ฝึกฝนวิธีการพัฒนากระแสหลักที่ขับเคลื่อนโดยกรณีการใช้งานและเน้นที่สถาปัตยกรรม
ไม่มีใครอยากพอใจกับการเรียนรู้ทักษะการใช้งานโค้ดตลอดชีวิต คนอื่นจะบอกคุณว่าต้องใช้งานอะไรบ้าง และคุณเพียงแค่ใช้โค้ดเพื่อนำความต้องการของคนอื่นไปใช้! คุณต้องเรียนรู้ที่จะคิดจากมุมมองของโครงการทั้งหมด! คุณต้องเรียนรู้วิธีคิดหากคุณเป็นผู้จัดการโครงการ! คุณต้องเรียนรู้วิธีคิดหากคุณเป็นสถาปนิก! คุณต้องเชี่ยวชาญในวิธีการวิเคราะห์สำหรับปัญหาเฉพาะด้าน!
เกี่ยวกับความรู้พื้นฐาน tb: คุณสามารถดูคำนามหรือประเด็นความรู้เหล่านี้แล้วดูว่าคุณสามารถบอกคำนามหรือประเด็นความรู้เหล่านั้นหนึ่ง สอง สาม หรือสี่ได้หรือไม่
JavaSE
--ไวยากรณ์พื้นฐาน ชนิดข้อมูล ตัวดำเนินการ ฯลฯ: int, long, Integer, Long, if, else, for, while
--เชิงวัตถุ: คลาส วัตถุ อินสแตนซ์ สถานะ พฤติกรรม ฟิลด์ วิธีการ ใหม่ การมองเห็น (การควบคุมการเข้าถึง) คุณลักษณะ คุณสมบัติ แพ็คเกจ การนำเข้า ตัวแปรคงที่ ตัวแปรคลาส ตัวแปรอินสแตนซ์ ฮีป พื้นที่วิธีการ สแต็ก, GC (การรวบรวมขยะ), แทนที่, โอเวอร์โหลด, การแปลงวัตถุ (การหล่อ), ความหลากหลาย, นี่, ซุปเปอร์
―-การจัดการข้อยกเว้น: ทำความเข้าใจความแตกต่างระหว่างข้อผิดพลาดเวลาคอมไพล์และข้อผิดพลาดรันไทม์, ข้อยกเว้น, RuntimeException, ข้อยกเว้นที่ตรวจสอบ, ข้อยกเว้นที่ไม่ได้ตรวจสอบ, ลอง, จับ, ในที่สุด, โยน XXXException ใหม่, โยน XXXException และหลักการพื้นฐานของการจัดการข้อยกเว้น
―-อาร์เรย์และคอลเลกชัน: คำจำกัดความและการใช้อาร์เรย์, คอลเลกชัน, รายการ, ตั้งค่า, แผนที่, ArrayList, HashSet, HashMap, Iterator, เท่ากับ, hashCode, Comparable, Comparator
―-คลาสที่ใช้กันทั่วไป: String, intern, พูลคงที่, StringBuffer, java.util.Date, SimpleDateFormat, Regex (นิพจน์ทั่วไป)
- กลไกการสะท้อนกลับ: คลาส, วิธีการ, ฟิลด์, เรียกใช้, newInstance, BeanUtils (apache-commons), PropertyUtils (apache-commons)
―-สตรีมอินพุตและเอาต์พุต: InputStream, OutputStream, Reader, Writer, รูปแบบการออกแบบอแด็ปเตอร์และคลาสสตรีมดั้งเดิม, รูปแบบการออกแบบมัณฑนากรและคลาสสตรีมแบบแพ็กเกจ, การทำให้เป็นอนุกรมของวัตถุและการดีซีเรียลไลซ์
―-หลายเธรด: เธรด, รันได้, สลีป, รอ, แจ้งเตือน, ซิงโครไนซ์, ล็อค
เซิร์ฟเล็ตและ JSP
―-HttpServlet, doGet, doPost, HttpServletRequest, HttpServletResponse, request.getParameter(), request.setAttribute(), request.getAttribute(), request.getSession(), ServletContext, ตัวกรอง, web.xml, tomcat, ส่งต่อและเปลี่ยนเส้นทาง, การไร้สถานะของโปรโตคอล http, คุกกี้, วัตถุขอบเขต JSP, <c:out …/>, <c:forEach …>
HTML และจาวาสคริปต์
―-คุณต้องสามารถเข้าใจแท็กหน้าเว็บทั่วไป เข้าใจวิธีแนะนำ JavaScript ในหน้าเว็บ และไวยากรณ์พื้นฐานและการใช้งาน JavaScript
ข้างต้นเป็นความรู้พื้นฐานที่จำเป็นในการเรียนรู้ Java เพิ่มเติม โดยเฉพาะศัพท์และคำนามทางวิชาชีพบางคำ หากคุณเห็นว่าคำนามเหล่านี้เป็นมิตรพอๆ กับการมองเห็นพ่อของตัวเอง นั่นหมายความว่าคุณคุ้นเคยกับความรู้พื้นฐานของ Java เป็นอย่างดี
ถัดไปคือ SSH:
สำหรับผู้เริ่มต้น กรอบงานหลักทั้งสามนี้มีความลึกลับมากเกินไป และดูเหมือนว่าความรู้เหล่านี้จะเป็นความรู้ที่สำคัญที่สุด! แต่สำหรับบุคลากรมืออาชีพและด้านเทคนิคที่มีประสบการณ์ด้านการพัฒนา Java มาหลายปี และผู้ที่ใช้ Java ได้ดี พวกเขาไม่ได้สนใจ Framework หลักทั้งสามนี้มากนัก พวกเขาไม่สำคัญเหรอ?
ปัจจุบันบริษัทหลายแห่งใช้กรอบงานหลักทั้งสามนี้ ดังนั้นบริษัทหลายแห่งจึงมองว่าการเรียนรู้กรอบงานหลักทั้งสามนี้เป็นข้อกำหนดเบื้องต้นสำหรับการสรรหาบุคลากร ไม่อาจปฏิเสธได้ว่ามีองค์กรขนาดใหญ่จำนวนมากที่ไม่ได้ใช้กรอบการทำงานหลักทั้งสามนี้ หลังจากหลายปีของการพัฒนา องค์กรเหล่านี้ได้สะสมเทคโนโลยีจำนวนหนึ่งและสร้างระบบกรอบงานทางเทคนิคที่เป็นเอกลักษณ์ของตนเอง กรอบการทำงานหลักทั้งสามนี้อาจกล่าวได้ว่ามีความสำคัญมาก หรืออาจกล่าวได้ว่าไม่สำคัญก็ได้
เหตุผลที่สำคัญก็คือ กรอบงานหลักทั้งสามนี้มอบวิธีแก้ไขที่สวยงามสำหรับปัญหาทั่วไปในการพัฒนา JavaEE ซึ่งมีความพยายามและแนวคิดของนักพัฒนา NB ส่วนใหญ่ในอุตสาหกรรมนี้ ดังนั้น คุณสามารถเรียนรู้เกี่ยวกับกรอบงานหลักทั้งสามนี้ ภาพรวมของสิ่งที่คนที่มีความสามารถซึ่งเป็นจุดสูงสุดของเทคโนโลยีคิดเกี่ยวกับปัญหา และแนวคิดการออกแบบประเภทใดที่พวกเขาใช้เพื่อแก้ไขปัญหา ดังนั้นสำหรับคุณ คุณไม่มีประสบการณ์ในการพัฒนาโครงการมากนัก ประสบการณ์ของคุณคืออะไร? ประสบการณ์หมายความว่าคุณรู้ว่าปัญหาใดที่คุณอาจเผชิญ มีวิธีแก้ปัญหาใดบ้างสำหรับแต่ละปัญหา วิธีใดดีกว่าในบางสถานการณ์ วิธีการใดไม่ดี เป็นต้น! หากคุณไม่เคยทำโปรเจ็กต์ใดๆ มาก่อน คุณจะไม่รู้ว่าอาจประสบปัญหาใดบ้าง และปัญหาเหล่านี้มักจะสำคัญมาก! หากแก้ไขได้ไม่ดีจะส่งผลต่อความเสถียร ความสามารถในการปรับขนาด ฯลฯ ของโปรแกรมของคุณ! เฟรมเวิร์กหลักสามเฟรมช่วยให้ผู้เริ่มต้นเข้าใจถึงปัญหาที่คุณอาจพบในอนาคต รวมถึงวิธีแก้ไขปัญหาเหล่านี้!
เมื่อคุณเข้าใจว่าทำไมกรอบงานหลักทั้งสามนี้จึงมีความสำคัญ คุณก็สามารถเข้าใจได้ว่าทำไมกรอบงานหลักทั้งสามนี้จึงกล่าวได้ว่าไม่สำคัญเช่นกัน หากคุณพัฒนาโปรเจ็กต์มามากมายและประสบปัญหาต่างๆ โดยอาศัยทักษะทางเทคนิคของคุณ คุณก็เอาชนะปัญหาเหล่านี้ไปทีละอย่างแล้ว ในสายตาของคนเหล่านี้ Framework หลักทั้งสาม (มี N Frameworks ไหม ฮ่าๆ) ล้วนเป็นคลาวด์ทั้งสิ้น!
คุณเป็นคนแบบไหน? หากคุณไม่มีประสบการณ์ในการพัฒนาโครงการมากนัก กรอบงานหลักสามประการนั้นสำคัญมากสำหรับคุณ! ยิ่งไปกว่านั้น จากนี้ คุณยังรู้วิธีการเรียนรู้กรอบการทำงานหลักทั้งสามนี้อีกด้วย สำหรับการศึกษากรอบการทำงานหลักสามประการ จุดมุ่งหมายคือการแสดงปัญหาและกระตุ้นให้คุณคิดอย่างแข็งขัน เราขอแนะนำให้คุณหยิบยกแนวคิดของคุณเองขึ้นมา ไม่รู้ว่าคนเก่งคิดยังไง แล้วรู้ได้ยังไงว่าความคิดของตัวเองมันงี่เง่า? ระหว่างที่ความคิดขัดแย้งกัน คุณจะค่อยๆ พัฒนาตัวเอง! ดังนั้น หลังจากเรียนรู้สามเฟรมเวิร์กหลักแล้ว คุณไม่ควรเห็นเพียงไฟล์การกำหนดค่าจำนวนมาก คุณไม่ควรเห็นเพียงไฟล์ Actions บางบริการ และไฟล์การแมปบางไฟล์เท่านั้น ไม่ควรรู้แค่ว่ามี interceptors มากมายใน struts2 คุณไม่ควรเห็นแค่แพ็คเกจ jar มากมาย...
หากคุณเพิ่งรู้ว่าหลังจากคัดลอกแพ็กเกจ jar จำนวนมากและกำหนดชุดของไฟล์การกำหนดค่าแล้ว เฟรมเวิร์ก SSH หลักทั้งสามก็สามารถรันและทำงานให้คุณได้ แต่น่าเสียดายที่คุณยังไม่เชี่ยวชาญสามเฟรมเวิร์กหลัก Essence! กรุณาตอบคำถามต่อไปนี้:
สตรัท2:
เหตุใดเราจึงต้องสร้างออบเจ็กต์ Action สำหรับทุกคำขอ
RefreshModelBeforeResult แก้ปัญหาอะไรในการกำหนดค่าของ Interceptor ModelDriven
เหตุใด StrutsPrepareAndExecuteFilter จึงกำหนดค่าใน web.xml กรองคำขอทั้งหมด
คุณช่วยบอกฉันเกี่ยวกับ ValueStack หน่อยได้ไหม
Struts2 ใช้รูปแบบการออกแบบ MVC อย่างไร
ฤดูใบไม้ผลิ:
ทำไมคุณจึงควรใช้สปริง?
คุณช่วยพูดคุยเกี่ยวกับ IOC/DI ได้ไหม
การจัดการธุรกรรมที่เปิดเผยคืออะไร? เหตุใดจึงต้องใช้การจัดการธุรกรรมที่เปิดเผย Spring ใช้การจัดการธุรกรรมที่ประกาศอย่างไร
เมื่อรวมสปริงและไฮเบอร์เนตและการกำหนดคุณสมบัติการจัดการธุรกรรม เหตุใดวิธีการอื่นนอกเหนือจากการเพิ่ม ลบ และอัปเดตการดำเนินการ ซึ่งก็คือ วิธีการที่ทำงานแบบสอบถามเป็นหลัก จึงถูกกำหนดให้เป็นแบบอ่านอย่างเดียว
ไฮเบอร์เนต:
คุณช่วยแบ่งปันความเข้าใจของคุณเกี่ยวกับ OR mapping ได้ไหม
หลายๆ คนบอกว่า Hibernate ไม่เหมาะกับโปรเจ็กต์ขนาดใหญ่และมีปัญหาด้านประสิทธิภาพ คุณจะเข้าใจได้อย่างไร?
เหตุใด Hibernate จึงต้องกำหนดตัวระบุฐานข้อมูล
เหตุใด Hibernate จึงแนะนำให้คลาสเอนทิตีของคุณใช้วิธี hashCode และเท่ากับ
พูดคุยเกี่ยวกับความเข้าใจของคุณเกี่ยวกับความสัมพันธ์ระหว่างตัวระบุฐานข้อมูลและคีย์หลักของฐานข้อมูลในคลาสเอนทิตี Hibernate หรือไม่
พูดคุยเกี่ยวกับความเข้าใจของคุณเกี่ยวกับความสัมพันธ์ระหว่างการแมปการเชื่อมโยงไฮเบอร์เนตกับคีย์ต่างประเทศของฐานข้อมูลหรือไม่
เมื่อเรียกใช้เมธอด session.save() ไฮเบอร์เนตจะออกคำสั่ง insert อย่างแน่นอนหรือไม่ พูดคุยเกี่ยวกับความเข้าใจของคุณ
เมื่อเรียกใช้เมธอด session.update() ไฮเบอร์เนตจะออกคำสั่งอัพเดตอย่างแน่นอนหรือไม่ พูดคุยเกี่ยวกับความเข้าใจของคุณ
โปรดพูดถึงคำนาม แนวคิด หรือประเพณีต่อไปนี้:lazy,lazy=”extra”, inverse, fetch, fetch=”join”, fetch=”subselect”, batch-size
การโหลดแบบ Lazy Loading จะสำเร็จหรือไม่หากกำหนดค่าlazy="true"ไว้
โปรดพูดคุยเกี่ยวกับปัญหา "N+1" ใน Hibernate
คุณช่วยพูดถึงแนวทางปฏิบัติที่ดีที่สุดสำหรับ Hibernate ได้ไหม
ข้างต้นไม่ใช่คำถามสำคัญทั้งหมดใน SSH แต่สามารถทดสอบได้ว่าคุณสามารถใช้กรอบงาน SSH ได้อย่างยืดหยุ่นหรือไม่! หากคุณเข้าใจปัญหาเหล่านี้อย่างลึกซึ้ง ควบคู่ไปกับการฝึกอบรมโครงการเชิงปฏิบัติที่เหมาะสม คุณจะค่อยๆ กลายเป็นผู้เชี่ยวชาญ!
ในที่สุดก็มีความสามารถในการพัฒนาโครงการ:
ไม่ว่าคุณกำลังเรียนรู้ Java หรือเทคโนโลยีอื่นๆ จุดประสงค์พื้นฐานของคุณคือการสร้างมูลค่าให้กับลูกค้า! มิฉะนั้น สิ่งที่คุณพยายามอย่างมากในการเรียนรู้จะล้าสมัยไปในไม่ช้าเนื่องจากความก้าวหน้าทางเทคโนโลยีและได้รับการอัปเดต! ดังนั้นหัวใจหลักของเทคโนโลยีคือการใช้เทคโนโลยีเพื่อสร้างผลลัพธ์อันทรงคุณค่า! กล่าวอีกนัยหนึ่ง ไม่ว่าลูกค้าต้องการอะไร คุณต้องใช้เทคโนโลยีเพื่อสร้างสิ่งที่ลูกค้าต้องการ! เหตุผลที่บริษัทพยายามอย่างเต็มที่เพื่อให้คุณได้รับเงื่อนไขสวัสดิการต่างๆ ก็เพราะว่าคุณสามารถนำผลประโยชน์ที่สูงมากมาสู่บริษัทได้! แล้วคุณล่ะมีอะไรบ้างที่บริษัทสามารถใช้ได้? บริษัทให้คุณค่ากับความสามารถด้านใดของคุณมากที่สุด?
มีความสามารถมากมายที่จำเป็นในการทำโปรเจ็กต์ ความสามารถหลักและพื้นฐานที่สุดคือความสามารถในการสร้างโมเดล (ความสามารถหลักที่สุดในขณะนี้คือการสร้างแบบจำลองเชิงวัตถุ!) ความสามารถในการสร้างแบบจำลองคืออะไร?
ฉันขอถามคำถามสัมภาษณ์กับคุณ:
โมดูลการจัดการบัตรประกันของบริษัทประกันภัย: พนักงานขายรวบรวมข้อมูลบัตรประกัน (จำนวนบัตรประกัน หมายเลขบัตร วันที่เรียกเก็บเงิน) จากนั้นขายให้กับลูกค้าโดยตรง หลังจากการขายเสร็จสิ้น ข้อมูลบัตรประกันจะถูกป้อน เข้าสู่ระบบบริษัทประกันภัย (ข้อมูลพนักงานขาย, หมายเลขบัตร, วันที่เรียกเก็บเงิน) ข้อมูลผู้ซื้อ, จำนวนบัตรประกันที่ซื้อ, หมายเลขบัตร ฯลฯ) ลูกค้าเข้าสู่ระบบเว็บไซต์บริษัทประกันภัยเพื่อเปิดใช้งานบัตรประกันและจำเป็นต้องกรอก ใน (หมายเลขบัตรประกัน, รหัสผ่านการเปิดใช้งาน, ข้อมูลผู้เอาประกันภัย, ข้อมูลผู้รับผลประโยชน์)
ข้อกำหนดคือ: หากมอบโมดูลนี้ให้กับคุณ คุณจะทำอย่างไร? คุณกำลังพยายามแก้ไขปัญหาอะไร คุณช่วยวาดภาพและอธิบายให้ฉันฟังหน่อยได้ไหมว่าความคิดของคุณคืออะไร?
นี่เป็นเพียงคำถามสัมภาษณ์ เนื่องจากมีประโยคง่ายๆ เพียงไม่กี่ประโยค ฉันจึงใส่ไว้ที่นี่เพื่อให้ทุกคนรู้สึกว่าปัญหาที่เรียกว่าการสร้างแบบจำลองจำเป็นต้องแก้ไขอย่างไร ในวงการธุรกิจมีปัญหามากมาย! บางทีเอกสารข้อกำหนดจำนวนหลายสิบหรือหลายร้อยหน้าสามารถอธิบายปัญหาในสาขาธุรกิจเฉพาะได้อย่างชัดเจน และความรับผิดชอบของคุณคือการนำไปปฏิบัติ!
บริษัทบางแห่งต้องการพัฒนาระบบการจัดการการเข้างานและจำเป็นต้องเชื่อมต่อกับระบบทรัพยากรบุคคลที่มีอยู่ คุณเป็นบุคคลหลักด้านเทคนิค คุณทำงานอะไร?
โปรเจ็กต์ ERP จำเป็นต้องใช้โมดูลการจัดการกะและปล่อยให้คุณดำเนินการให้เสร็จสิ้นได้อย่างไร
อย่าบ่นว่าผู้จัดการโครงการให้ข้อมูลแก่คุณน้อยเกินไป (เพียงไม่กี่ประโยค) อย่าบ่นว่าลูกค้าไม่ได้อธิบายความต้องการของพวกเขาอย่างชัดเจน...คุณค่าของคุณอยู่ที่การแยกแยะปัญหาทั้งหมดและใช้สิ่งต่าง ๆ หมายถึงการได้รับข้อมูลที่ต้องการ สรุปตามแนวคิดที่กำหนด และแก้ไขทีละรายการภายในเวลาที่กำหนด!
คุณควรตระหนักว่าการเรียนรู้ Java นั้นไม่ง่ายเหมือนกับการต่อสู้ด้วยรถถัง, ความเร็วของเครือข่าย, CMS, DRP หรือ OA คุณไม่ควรหมกมุ่นกับรายละเอียดทางเทคนิคเหล่านั้น (แม้ว่าจะจำเป็นเช่นกัน แต่อย่าหักโหมจนเกินไป) ) และอย่าพอใจกับการนำไปปฏิบัติ ด้วยข้อกำหนดของโครงการแบบ CRUD (แม้ว่านี่จะเป็นรากฐานของรากฐาน) ก็ตาม มีเป้าหมายอยู่ตรงหน้าคุณเสมอซึ่งคุณต้องทำงานอย่างหนักเพื่อให้ทัน!
ในอนาคต คุณจะเผชิญกับข้อกำหนดที่ซับซ้อนมากขึ้น จุดประสงค์เดียวของโครงการศึกษาของคุณคือการเรียนรู้วิธีเปลี่ยนข้อกำหนดไปสู่การปฏิบัติ วิธีวิเคราะห์ข้อกำหนด วิธีสร้างแบบจำลองแนวความคิด วิธีกระชับความสัมพันธ์ระหว่างแนวคิดต่างๆ และ วิธีการออกแบบ วิธีเลือกเทคโนโลยีที่เหมาะสมเพื่อนำการออกแบบของคุณไปใช้ วิธีทดสอบการใช้งาน และวิธีแก้ไขปัญหาต่างๆ ที่คุณพบ (ประสิทธิภาพ การเปลี่ยนแปลงข้อกำหนด ฯลฯ) หลังจากที่คุณได้มีส่วนร่วมในการพัฒนาในบริษัทมาหลายปีแล้ว คุณจะเห็นด้วยกับฉัน!
ในการหางานโดยใช้ Java สิ่งที่คุณต้องการคือประสบการณ์โครงการ หมายถึงการทำความเข้าใจกระบวนการพื้นฐานของการพัฒนาโครงการ การทำความเข้าใจวิธีการวิเคราะห์โครงการ การทำความเข้าใจแนวคิดการออกแบบโครงการ การทำความเข้าใจทักษะในการดำเนินโครงการ การทำความเข้าใจวิธีการทดสอบโครงการ และ ทำความเข้าใจแง่มุมต่าง ๆ ของโครงการ วิธีแก้ปัญหาของคุณ! - -
ถึงเวลาที่คุณจะต้องรู้เป้าหมายของคุณแล้ว!