และการสร้างเว็บไซต์กำลังได้รับความนิยมเพิ่มมากขึ้นและดึงดูดความสนใจจากผู้คนจำนวนมาก แม้แต่บุคคลที่ไม่มีการศึกษาพิเศษก็สามารถเริ่มพัฒนาโปรแกรมได้ สิ่งสำคัญคือความปรารถนาและความปรารถนาที่จะเรียนรู้เนื้อหาใหม่และการฝึกฝนอย่างต่อเนื่อง
ทางเลือกการศึกษา
จะเริ่มเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้นได้ที่ไหน มีหลายวิธีในการฝึกฝนเนื้อหาใหม่ในด้านนี้ ครูส่วนตัวจะบอกวิธีเริ่มเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้นและสอนคุณ ประเด็นสำคัญรหัสโปรแกรมอาคาร อย่างไรก็ตาม วิธีนี้ค่อนข้างแพง ดังนั้นจึงใช้วิธีการฝึกอบรมต่อไปนี้เป็นหลัก:
- หลักสูตรเฉพาะทาง ค่าใช้จ่ายน้อยกว่าบทเรียนจากครูสอนพิเศษส่วนตัวมาก เป็นที่น่าสังเกตว่านายจ้างจำนวนมากตอบสนองเชิงบวกต่อความพร้อมของใบรับรองการฝึกอบรมในสถาบันคอมพิวเตอร์ที่หลากหลาย ให้ความสนใจกับหลักสูตรของบริษัทชื่อดังระดับโลกอย่าง Microsoft และ Cisco
- ลบแล้ว หลักสูตรฟรี- อินเตอร์เน็ตเป็นอย่างมาก จำนวนมากบริการที่คุณสามารถดูหลักสูตรการบรรยายจาก Oxford, Harvard และที่มีชื่อเสียงอื่น ๆ สถาบันการศึกษาความสงบ. นอกจากนี้ยังมีแพลตฟอร์มพิเศษสำหรับฝึกทักษะการเขียนโปรแกรมเชิงปฏิบัติ อ่านเพิ่มเติมเกี่ยวกับการเรียนรู้ระยะไกลและบริการอินเทอร์เน็ตที่เป็นประโยชน์เพิ่มเติมในบทความ
- การเรียนรู้ด้วยตนเอง จะเริ่มเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้นได้ที่ไหนหากคุณไม่ได้วางแผนที่จะลงทะเบียนเรียนหลักสูตรและใช้จ่ายเงิน? ในกรณีนี้ วิธีที่ง่ายที่สุดคือการให้ความรู้แก่ตนเอง ควรเริ่มเรียนด้วยการอ่านพื้นฐาน ไม่ต้องเจาะลึกทฤษฎี เริ่มฝึกทันที เพราะเฉพาะในกระบวนการสร้างโปรแกรมเท่านั้นที่คุณจะได้รับทักษะที่จำเป็น
หลังจากเลือกตัวเลือกการฝึกอบรมที่เหมาะกับคุณแล้ว คุณควรตัดสินใจเลือกสาขาวิชา เนื่องจากการเขียนโปรแกรมมีสาขาที่แตกต่างกันค่อนข้างมาก
วิธีการเลือกทิศทางที่ถูกต้อง?
ขึ้นอยู่กับประเภทของซอฟต์แวร์ที่คุณจะสร้างในอนาคตโดยตรง:
หากเงินเดือนเป็นปัจจัยที่สำคัญที่สุดสำหรับคุณ ให้หันความสนใจไปที่ตลาดงาน ในปัจจุบัน นักพัฒนาที่เชี่ยวชาญด้านภาษา Java, C#, ASP.NET, C++ เป็นที่ต้องการมากที่สุด
ภาษาระดับต่ำและระดับสูง ความแตกต่างและการประยุกต์
เชื่อกันว่าภาษาการเขียนโปรแกรมทั้งหมดแบ่งออกเป็นระดับสูงและระดับต่ำ รหัส ระดับต่ำคอมพิวเตอร์ประมวลผลได้ง่ายกว่า แต่การเขียนใช้เวลานานและต้องใช้ความรู้เพิ่มเติม สาขาวิชา- ภาษาดังกล่าว (เช่น แอสเซมเบลอร์) ใช้สำหรับเขียนซอฟต์แวร์ ชิปดิจิตอลและไมโครคอนโทรลเลอร์ ไม่สะดวกสำหรับการเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้น บริการและวรรณกรรมที่เป็นประโยชน์จากนักเขียนชื่อดังระดับโลกที่ให้ไว้ในบทความนี้จะบอกคุณว่าจะเริ่มเขียนโปรแกรมแรกของคุณที่ไหน
ภาษาระดับสูงใช้งานง่ายกว่ามากเนื่องจากใช้ไลบรารี่ในตัวเพื่อลดความซับซ้อนและแสดงภาพโค้ด ซอฟต์แวร์ที่ทันสมัยที่สุดเขียนโดยใช้ภาษา ระดับสูง.
การเขียนโปรแกรมตั้งแต่เริ่มต้น: จะเริ่มแอปพลิเคชันได้ที่ไหน?
กระบวนการสร้างโปรแกรมมือถือช่วยให้โปรแกรมเมอร์ทำงานกับเครื่องมือล่าสุดและส่งผลให้ได้รับเงินจำนวนที่เหมาะสมจากการสร้างรายได้ ก่อนอื่นคุณต้องเลือกไซต์ที่คุณจะทำงาน:
- Google Play ที่เก็บแอปพลิเคชันสำหรับผู้ใช้ระบบปฏิบัติการ Android ระบบปฏิบัติการนี้มีส่วนแบ่งผู้ใช้มากที่สุดในตลาด ภาษา Java และ C/C++ ใช้เพื่อพัฒนาแอปพลิเคชันและเกม แอปพลิเคชั่น Messenger ที่ได้รับความนิยมมากที่สุดคือไคลเอนต์ เครือข่ายทางสังคม, ที่เก็บข้อมูลบนคลาวด์, เกม
- วินโดวส์โมบายสโตร์ ร้านนี้กำลังได้รับความนิยมอย่างรวดเร็วพร้อมกับสมาร์ทโฟนจากไมโครซอฟต์ ในประเทศ CIS ผู้ใช้ส่วนใหญ่ชอบแท็บเล็ตที่มี แพลตฟอร์มวินโดวส์โทรศัพท์. แอปพลิเคชันการเขียนโปรแกรมสำหรับร้านค้าดังกล่าวช่วยให้คุณสร้างรายได้ เงินมากขึ้นเกี่ยวกับการสร้างรายได้เพราะไม่เหมือนกับ Android ตรงที่โปรแกรมเกือบทั้งหมดใน Windows store มีการแจกจ่ายแบบชำระเงิน
- แอพสโตร์ อีกหนึ่งแพลตฟอร์มที่ทำกำไรได้สำหรับการพัฒนา (ภาษา - Objective-C) กระบวนการสร้างโปรแกรมให้กับอุปกรณ์ แอปเปิลต้องมีสภาพแวดล้อมการพัฒนาที่ติดตั้งไว้ล่วงหน้าที่เรียกว่า Xcode ขั้นตอนต่อไปคือการเรียนรู้การเขียนโปรแกรม Objective-C ตั้งแต่เริ่มต้น หนังสือของ David Mark “Learning C for Mac” จะบอกคุณว่าจะเริ่มเขียนโค้ดได้จากที่ไหน ฉบับที่สอง”
ภาษาจาวา
ส่วนใหญ่ นักพัฒนามืออาชีพขอแนะนำให้เริ่มเรียนรู้การเขียนโปรแกรมด้วยภาษา Java มันง่ายต่อการเรียนรู้และเป็นที่ต้องการของตลาดในขณะเดียวกัน ใช้เคล็ดลับด้านล่างหากคุณตัดสินใจที่จะเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มต้นการพัฒนา Java ได้ที่ไหน?
Java เป็นภาษาโปรแกรมเชิงวัตถุระดับสูงที่จำเป็นสำหรับการพัฒนาส่วนใหญ่ แอพพลิเคชั่นเว็บที่ทันสมัยและเกม กระบวนการคอมไพล์ (การเปลี่ยนโค้ดที่เขียนเป็นภาษาที่อุปกรณ์สามารถเข้าใจได้) เปลี่ยนโค้ดให้เป็นลำดับไบต์ จึงสามารถทดสอบโปรแกรมบนเครื่องเสมือน Java ได้อย่างง่ายดาย
การเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มต้นด้วยการเขียนโค้ด Java และเว็บได้ที่ไหน
ภาษา Java ใช้กันอย่างแพร่หลายในการพัฒนาเว็บ ก่อนที่คุณจะเริ่มกระบวนการเขียนโปรแกรมอย่างเต็มรูปแบบ คุณควรเรียนรู้ Java, PHP, MySQL, HTML, CSS คำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับแนวคิดเหล่านี้มีดังต่อไปนี้:
- Java - ใช้ในการเขียนยูทิลิตี้สำหรับเว็บไซต์และการเขียนตรรกะของการทำงานของหน้าเว็บ
- PHP - ภาษาสำหรับการสร้าง หน้าส่วนตัวเว็บไซต์ มีโครงสร้างสคริปต์ ภาษาชั้นนำในการสร้างเว็บไซต์แบบไดนามิกที่ได้รับความนิยมในปัจจุบัน PHP จำเป็นสำหรับการทำความเข้าใจการเขียนสคริปต์และการเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มตรงไหน? จากการอ่านหนังสือของ Josh Lockhat เรื่อง PHP: The Right Way
- MySQL เป็นระบบสำหรับจัดการพื้นฐานของข้อมูล ใช้กันอย่างแพร่หลายในการสร้างเว็บไซต์ที่ต้องการพื้นที่เก็บข้อมูล ปริมาณมากข้อมูลที่ถูกจัดกลุ่ม
- HTML ไม่ใช่ภาษาการเขียนโปรแกรม นี่คือภาษามาร์กอัปที่ใช้ในการเขียนฐานของเว็บเพจ (แบบเอกสารสำเร็จรูป การกระจายข้อความและย่อหน้า และอื่นๆ)
- CSS - สไตล์ชีทแบบเรียงซ้อน ใช้ร่วมกับ HTML เท่านั้นเพื่อให้รูปแบบและรูปลักษณ์ของภาษามาร์กอัป
ด้วยการเรียนรู้แนวคิดพื้นฐานของเหตุการณ์สำคัญต่างๆ ของเทคโนโลยีเหล่านี้ คุณจึงจะสามารถเริ่มสร้างเว็บไซต์ไดนามิกระดับมืออาชีพที่เป็นที่ต้องการอย่างมากในปัจจุบันได้
การเขียนโปรแกรมเว็บ ความเกี่ยวข้องและคุณสมบัติ
หัวข้อการเขียนโปรแกรมเว็บมีความเกี่ยวข้องอย่างยิ่งในปัจจุบัน ดังที่กล่าวไว้ข้างต้น เพื่อเริ่มพัฒนาองค์ประกอบเว็บ คุณต้องมีความรู้ค่อนข้างมากเกี่ยวกับภาษามาร์กอัป การสร้างสคริปต์ ตรรกะ และสไตล์
ทุกวันนี้คุณจะไม่แปลกใจกับใครเลยกับเว็บไซต์ที่สร้างขึ้นด้วยเท่านั้น โดยใช้ HTMLและ CSS ดังนั้นนักพัฒนาเว็บที่สามารถสร้างเว็บไซต์ให้สวยงามและเติมเต็มด้วยฟังก์ชันทั้งหมดที่จำเป็นสำหรับผู้ใช้จึงเป็นที่ต้องการ
การพัฒนาประเภทนี้จำเป็นต้องสร้างโปรแกรมเดียวกันสองประเภท: ส่วนของเซิร์ฟเวอร์และไคลเอนต์ โปรแกรมเมอร์จะต้องเข้าใจหลักการทำงานของซ็อกเก็ตที่เรียกว่า - แพ็กเก็ตข้อมูลที่อนุญาตให้ส่งข้อมูลที่จำเป็นผ่านเครือข่ายระหว่างเซิร์ฟเวอร์และไคลเอนต์
การสร้างแอพพลิเคชั่นสำหรับระบบปฏิบัติการ Windows
ในการพัฒนาโปรแกรมดังกล่าว คุณจะต้องมีความรู้เกี่ยวกับภาษา C# บริการฟรีจาก Microsoft ชื่อ Virtual Academy จะช่วยให้คุณเรียนรู้คุณสมบัติทั้งหมดของภาษานี้และฝึกเขียนแอปพลิเคชันง่ายๆ
ตามนโยบายใหม่ของ Microsoft แอปพลิเคชันทั้งหมดจะถูกอัปโหลดไปยังร้านซอฟต์แวร์ ดังนั้นคุณจึงสามารถเข้าถึงเพื่อสร้างรายได้จากโครงการของคุณได้
ตระกูลภาษา C (C, C++, C#) ลักษณะเฉพาะ
การเขียนโปรแกรมตั้งแต่เริ่มต้น - จะเริ่มเลือกภาษาได้ที่ไหน? คำตอบสำหรับคำถามนี้สามารถหาได้จากการเจาะลึกรายละเอียดเพิ่มเติมเกี่ยวกับประเภทของเทคโนโลยีการสร้างแอปพลิเคชัน ควรคำนึงถึงความเกี่ยวข้องของภาษาใดภาษาหนึ่งด้วย
ภาษา C, C++, C# มีหนึ่งภาษา คุณสมบัติทั่วไป- ความพร้อมใช้งานของฟังก์ชัน OOP (การเขียนโปรแกรมเชิงวัตถุ) เทคโนโลยีนี้ช่วยให้คุณลดความซับซ้อนของกระบวนการเขียนโค้ดโปรแกรมลงอย่างมาก แต่ละอ็อบเจ็กต์ซอฟต์แวร์มีการอธิบายไว้ในคลาสเฉพาะและมีพารามิเตอร์ วิธีการ และคุณสมบัติของตัวเอง ดังนั้นโปรแกรมเมอร์จึงไม่จำเป็นต้องเขียนโค้ดชิ้นใหญ่ในแต่ละครั้งหากจำเป็นต้องใช้ออบเจ็กต์เดียวกันหลายครั้ง
บริการอินเทอร์เน็ตที่เป็นประโยชน์สำหรับการเรียนรู้หลักการพื้นฐานของการเขียนโปรแกรมและโครงสร้างโค้ดของแอปพลิเคชันต่างๆ
ในขั้นตอนแรกของการฝึกอบรม บริการเว็บเกือบทุกบริการจะให้คุณลองใช้ความสามารถของตนโดยใช้ Pascal ซึ่งเป็นภาษาระดับสูงที่ง่ายที่สุด ใช้เพื่อการศึกษาและมีการสอนในโรงเรียนและวิทยาลัยเทคนิคเพื่อให้นักเรียนเข้าใจการเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มเขียนโค้ด Pascal ได้ที่ไหน ก่อนอื่น คุณต้องดาวน์โหลดสภาพแวดล้อมการพัฒนาลงในพีซีของคุณ นี่เป็นไฟล์ปฏิบัติการขนาดเล็กที่จะเขียนโค้ดโปรแกรม ใช้ TurboPascal ที่สุดครับ สื่อยอดนิยมการเรียนรู้ภาษาการเขียนโปรแกรมนี้
HourOfCode เป็นบริการเว็บจาก Microsoft มีวัตถุประสงค์เพื่อแสดงให้นักเรียนเห็นอย่างชัดเจนถึงวัฏจักร ตัวแปร ระดับ และเงื่อนไข กระบวนการเรียนรู้ก็เหมือนกับเกม
CodeAcademy เป็นแหล่งข้อมูลอันทรงประสิทธิภาพสำหรับการเรียนรู้เทคโนโลยีการเขียนโค้ดเกือบทุกประเภท ด้วยการอุทิศเวลาเพียงหนึ่งชั่วโมงต่อวัน คุณจะไม่สังเกตเห็นด้วยซ้ำว่าคุณจะเรียนรู้การเขียนโปรแกรมและสร้างโครงการของคุณเองได้อย่างไร
Udacity เป็นบริการที่ให้ผู้ใช้ เข้าถึงได้ฟรีสู่การบรรยายโดยอาจารย์และนักพัฒนาที่มีชื่อเสียง
การได้รับประสบการณ์เบื้องต้น ฟรีแลนซ์
หลังจากเรียนรู้หลักการพื้นฐานของภาษาที่คุณเลือกแล้ว คุณสามารถเริ่มโครงการแรกของคุณได้อย่างปลอดภัย เริ่มงานฟรีแลนซ์ เพราะนี่คือวิธีที่คุณจะกรอกพอร์ตโฟลิโอของคุณและได้รับประสบการณ์ในการสื่อสารกับลูกค้า ทักษะดังกล่าวจะเป็นประโยชน์ในอนาคตหากคุณต้องการทำงานในบริษัทในฐานะนักพัฒนาซอฟต์แวร์อย่างเป็นทางการ
บรรทัดล่าง
การเขียนโปรแกรมตั้งแต่เริ่มต้น: จะเริ่มต้นที่ไหน? สำหรับหุ่นจำลองอาจารย์จากมหาวิทยาลัยดังระดับโลกแนะนำให้ฝึกด้วย โครงสร้างพื้นฐานซึ่งเป็นพื้นฐานของภาษาการเขียนโปรแกรมใดๆ สมัครเรียนหลักสูตรเฉพาะทางหรือเรียนด้วยตนเองโดยการฟังบรรยายออนไลน์
คุณสมบัติ Java หรือภาษาคืออะไร
หากคุณถามว่า Java คืออะไร คุณจะสามารถบอกได้ว่า Java เป็นภาษาเชิงวัตถุทั่วไปที่มีลักษณะคล้ายกับ C และ C++ มาก แต่ใช้งานง่ายกว่าและช่วยให้คุณสร้างโปรแกรมที่เชื่อถือได้มากขึ้น น่าเสียดายที่คำจำกัดความนี้ไม่ได้ทำให้คุณเข้าใจ Java ได้อย่างสมบูรณ์ มากกว่า คำจำกัดความโดยละเอียดมอบให้โดย Sun Microsystems และมีความเกี่ยวข้องแม้ว่าจะมีการประกาศย้อนกลับไปในปี 2000:
Java เป็นภาษาการเขียนโปรแกรมแบบไดนามิกที่เรียบง่าย เชิงวัตถุ เปิดใช้งานเว็บ ตีความได้ เชื่อถือได้ ปลอดภัย เป็นกลางทางสถาปัตยกรรม แบบพกพา ประสิทธิภาพสูง มัลติเธรดลองดูคำจำกัดความเหล่านี้ทีละรายการ:
Java เป็นภาษาที่เรียบง่าย- เดิมที Java ถูกสร้างขึ้นตาม C และ C++ โดยลบองค์ประกอบที่อาจสร้างความสับสนบางส่วนออก ป้ายบอกทาง, มรดกหลายอย่างการใช้งานตลอดจนโอเปอเรเตอร์โอเวอร์โหลด - คุณสมบัติ C/C++ บางอย่างเหล่านี้ไม่ได้เป็นส่วนหนึ่งของ Java ฟังก์ชั่นนี้เป็นทางเลือกใน C/C++ แต่จำเป็นใน Java - เป็นตัวรวบรวมขยะที่จะปล่อยอ็อบเจ็กต์และอาร์เรย์โดยอัตโนมัติ
Java เป็นภาษาเชิงวัตถุ- การมุ่งเน้นเชิงวัตถุของ Java ช่วยให้นักพัฒนาสามารถปรับ Java เพื่อแก้ปัญหาได้ แทนที่จะบังคับให้เราจัดการปัญหาเพื่อให้เป็นไปตามข้อจำกัดทางภาษา นี่คือความแตกต่างจากนี้ ภาษาที่มีโครงสร้างเช่น C ตัวอย่างเช่น ในขณะที่ Java ช่วยให้คุณมุ่งเน้นไปที่ออบเจ็กต์บัญชีออมทรัพย์ C กำหนดให้คุณต้องคิดแยกกันเกี่ยวกับสถานะบัญชีออมทรัพย์ (ยอดคงเหลือดังกล่าว) และพฤติกรรม (เช่น การฝากและการถอนเงิน)
Java ช่วยให้คุณสามารถทำงานกับเครือข่ายได้- ไลบรารีเครือข่ายที่กว้างขวางของ Java ช่วยให้การจัดการกับ Internet Protocol (TCP/IP) และอื่นๆ เป็นเรื่องง่าย โปรโตคอลเครือข่ายเช่น HTTP ( การถ่ายโอนไฮเปอร์เท็กซ์โปรโตคอล) และ FTP (File โปรโตคอลการถ่ายโอน- ด้วยความช่วยเหลือของห้องสมุด งานสร้างการเชื่อมต่อเครือข่ายจะง่ายขึ้น นอกจากนี้ โปรแกรม Java ยังสามารถเข้าถึงอ็อบเจ็กต์บนเครือข่าย TCP/IP โดยใช้พอยน์เตอร์ที่เหมือนกัน แหล่งข้อมูล(URL) ได้อย่างง่ายดายเช่นเดียวกับการเข้าถึงไฟล์ที่อยู่ในเครื่องคอมพิวเตอร์ของคุณ
Java เป็นภาษาที่ตีความ- ในระหว่างการดำเนินการโปรแกรม Java โปรแกรมจะถูกดำเนินการทางอ้อมบนแพลตฟอร์มพื้นฐาน (เช่น Windows หรือ Linux) ผ่านเครื่องเสมือน (ซึ่งเป็นซอฟต์แวร์ที่เป็นตัวแทนของแพลตฟอร์มสมมุติ) และสภาพแวดล้อมรันไทม์ที่เกี่ยวข้อง เครื่องเสมือนแปลไบต์โค้ดเป็นคำสั่ง Java (คำสั่งและข้อมูลที่เกี่ยวข้อง) เฉพาะแพลตฟอร์มโดยใช้การตีความ เครื่องเสมือนจะดำเนินการตามคำสั่งเหล่านี้บนแพลตฟอร์มเฉพาะ การตีความช่วยให้สามารถดีบักโปรแกรม Java ที่เสียหายได้ง่ายขึ้น เนื่องจากมีข้อมูลเพิ่มเติมในขณะคอมไพล์
Java เป็นภาษาที่เชื่อถือได้- โปรแกรม Java จะต้องเชื่อถือได้เนื่องจากใช้ในแอปพลิเคชันทั่วไปและแอปพลิเคชันที่สำคัญ การใช้งานที่สำคัญตั้งแต่เครื่องเล่น Blu-ray หรือระบบควบคุมอากาศในรถยนต์ ลูกค้าธนาคารและเซิร์ฟเวอร์เขียนด้วยภาษานี้ คุณสมบัติภาษาที่ช่วยให้ Java แข็งแกร่ง ได้แก่ การประกาศ การตรวจสอบประเภทซ้ำที่คอมไพล์และรันไทม์ (เพื่อป้องกันปัญหาเวอร์ชันไม่ตรงกัน) อาร์เรย์ที่มี ตรวจสอบอัตโนมัติชายแดนขาดสัญญาณ
อีกแง่มุมหนึ่งของความน่าเชื่อถือของ Java ก็คือ ลูปควรถูกควบคุมโดยนิพจน์บูลีน แทนที่จะเป็นนิพจน์จำนวนเต็ม โดยที่ 0 เป็นเท็จ และค่าที่ไม่ใช่ศูนย์ถือเป็นจริง ตัวอย่างเช่น Java ไม่อนุญาตให้มีการวนซ้ำประเภท C เช่นเดียวกับในขณะที่ (x) x++; เนื่องจากการวนซ้ำอาจไม่สิ้นสุดตามที่คาดไว้ คุณควรระบุอย่างชัดเจนแทน การแสดงออกทางตรรกะตัวอย่างเช่น ในขณะที่ (x != 10) x++; (ซึ่งหมายความว่าการวนซ้ำจะทำงานจนกว่า x เท่ากับ 10)
Java เป็นภาษาที่ปลอดภัย- โปรแกรม Java ถูกใช้ในสภาพแวดล้อมแบบเครือข่าย/แบบกระจาย เนื่องจากโปรแกรม Java สามารถโยกย้ายและรันได้ แพลตฟอร์มต่างๆนี่เป็นสิ่งสำคัญในการปกป้องแพลตฟอร์มเหล่านี้จาก รหัสที่เป็นอันตรายที่สามารถแพร่กระจายไวรัส: ขโมยข้อมูลเกี่ยวกับ บัตรเครดิตหรือดำเนินการอื่น ๆ การกระทำที่เป็นอันตราย- คุณสมบัติภาษา Java ที่รองรับความน่าเชื่อถือ (เช่น การส่งผ่านตัวชี้) ทำงานร่วมกับคุณสมบัติความปลอดภัย เช่น โมเดลความปลอดภัยของแซนด์บ็อกซ์ สภาพแวดล้อมจาวาและการเข้ารหัสด้วย กุญแจสาธารณะ- ฟีเจอร์การป้องกันไวรัสและโค้ดที่เป็นอันตรายอื่น ๆ เหล่านี้ร่วมกันป้องกันความวุ่นวายไม่ให้สร้างความหายนะบนแพลตฟอร์มที่ไม่สงสัย
ตามทฤษฎีแล้ว Java มีความปลอดภัย ในทางปฏิบัติ มีการค้นพบและใช้ประโยชน์จากช่องโหว่ต่างๆ ด้วยเหตุนี้ Sun Microsystems และ Oracle จึงยังคงเผยแพร่การอัปเดตความปลอดภัยต่อไปในขณะนี้
Java เป็นภาษาที่เป็นกลางทางสถาปัตยกรรม(อีกชื่อหนึ่งคือแพลตฟอร์มที่เป็นอิสระ) เครือข่ายเชื่อมต่อแพลตฟอร์มที่มีสถาปัตยกรรมที่แตกต่างกันตามไมโครโปรเซสเซอร์และระบบปฏิบัติการที่แตกต่างกัน Java สร้างรหัสไบต์คำสั่งที่ไม่ขึ้นกับแพลตฟอร์มซึ่งถูกตีความสำหรับแต่ละแพลตฟอร์ม (โดยใช้ virtual เครื่องจาวา).
Java เป็นภาษาพกพา- สถาปัตยกรรมของความเป็นกลางส่งเสริมความคล่องตัว ไลบรารี Java ยังส่งเสริมการพกพา เมื่อจำเป็น จะมีประเภทที่เชื่อมต่อโค้ด Java กับความสามารถเฉพาะแพลตฟอร์มในรูปแบบพกพามากที่สุดเท่าที่จะเป็นไปได้
ชวาเป็นภาษา ประสิทธิภาพสูง - การตีความให้ระดับประสิทธิภาพที่มักจะเกินพอ ผู้ที่เขียนโปรแกรมแบบกำหนดเองใน C++ อาจโต้แย้งที่นี่ แต่ในความเป็นจริงแล้ว Java เพิ่มประสิทธิภาพการทำงานในแต่ละเวอร์ชัน
Java เป็นภาษาแบบมัลติเธรด- เพื่อปรับปรุงประสิทธิภาพของโปรแกรมที่จำเป็นต้องทำงานหลายอย่างพร้อมกัน Java สนับสนุนแนวคิดของเธรด ตัวอย่างเช่น โปรแกรมที่จัดการส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ขณะรออินพุต การเชื่อมต่อเครือข่ายใช้เธรดอื่นเพื่อทำการรอแทนการใช้เธรด GUI เริ่มต้นสำหรับทั้งสองงาน สิ่งนี้ทำให้คุณสามารถทำงานกับอินเทอร์เฟซแบบกราฟิกได้โดยไม่ทำให้เกิดการค้าง การซิงโครไนซ์เธรดใน Java ช่วยให้เธรดสามารถสื่อสารระหว่างกันได้อย่างปลอดภัยโดยไม่ทำให้เธรดเสียหาย
Java เป็นภาษาแบบไดนามิก- เนื่องจากการสื่อสารระหว่างโค้ดโปรแกรมและไลบรารีเกิดขึ้นแบบไดนามิก ณ รันไทม์ จึงไม่จำเป็นต้องลิงก์ทั้งสองอย่างชัดเจน เป็นผลให้เมื่อโปรแกรมหรือไลบรารีใดไลบรารีหนึ่งพัฒนาขึ้น (เช่น เพื่อแก้ไขจุดบกพร่องหรือปรับปรุงประสิทธิภาพ) นักพัฒนาจำเป็นต้องแจกจ่ายเท่านั้น โปรแกรมที่อัพเดตหรือห้องสมุด แม้ว่าผลลัพธ์ของลักษณะการทำงานแบบไดนามิกต้องใช้โค้ดน้อยลงเมื่อมีการเปลี่ยนแปลงเวอร์ชันเกิดขึ้น นโยบายการแจกจ่ายนี้ยังสามารถนำไปสู่ข้อขัดแย้งของเวอร์ชันได้อีกด้วย ตัวอย่างเช่น นักพัฒนาลบประเภทคลาสออกจากไลบรารีหรือเปลี่ยนชื่อ เมื่อบริษัทเผยแพร่ไลบรารีที่อัปเดต โปรแกรมที่มีอยู่ซึ่งขึ้นอยู่กับประเภทของคลาสอาจไม่ทำงานอีกต่อไป เพื่อแก้ไขปัญหานี้ Java รองรับประเภทอินเทอร์เฟซซึ่งเหมือนกับสัญญาระหว่างสองฝ่าย
ดังนั้นเราจึงได้ตรวจสอบคุณสมบัติของภาษาจาวาแล้ว หากคุณต้องการเขียนโปรแกรมในภาษานี้ให้ทำ งานหลักสูตรหรือประกาศนียบัตรคุณสามารถติดต่อฉันได้ - [ป้องกันอีเมล]- ฉันจะช่วยคุณอย่างแน่นอน
การเขียนโปรแกรมกำลังเขียน ซอร์สโค้ดโปรแกรมในภาษาการเขียนโปรแกรมภาษาใดภาษาหนึ่ง มีภาษาการเขียนโปรแกรมที่แตกต่างกันมากมาย ด้วยเหตุนี้โปรแกรมทุกประเภทจึงถูกสร้างขึ้นเพื่อแก้ปัญหาบางช่วง ภาษาโปรแกรมคือชุด คำที่สงวนไว้ด้วยความช่วยเหลือในการเขียนซอร์สโค้ดของโปรแกรม ระบบคอมพิวเตอร์ยัง (ยัง) ไม่เข้าใจ ภาษามนุษย์และยิ่งกว่านั้นคือตรรกะของมนุษย์ (โดยเฉพาะตรรกะของผู้หญิง) ซึ่งเป็นเหตุผลว่าทำไมโปรแกรมทั้งหมดจึงเขียนด้วยภาษาโปรแกรมซึ่งต่อมาจะแปลเป็นภาษาคอมพิวเตอร์หรือรหัสเครื่อง ระบบที่แปลซอร์สโค้ดของโปรแกรมเป็นโค้ดเครื่องนั้นซับซ้อนมากและตามกฎแล้ว ระบบเหล่านี้ถูกสร้างขึ้นโดยใช้เวลาหลายสิบเดือนและมีโปรแกรมเมอร์หลายสิบคน ระบบดังกล่าวเรียกว่าสภาพแวดล้อมหรือเครื่องมือการเขียนโปรแกรมแอปพลิเคชันแบบรวม
ระบบการเขียนโปรแกรมคือสภาพแวดล้อมทางภาพขนาดใหญ่ที่มีการคิดมาอย่างดี ซึ่งคุณสามารถเขียนซอร์สโค้ดของโปรแกรม แปลเป็นโค้ดเครื่อง ทดสอบ ดีบัก และอื่นๆ อีกมากมาย นอกจากนี้ยังมีโปรแกรมที่ให้คุณดำเนินการข้างต้นได้โดยใช้บรรทัดคำสั่ง
คุณคงเคยได้ยินคำว่า “โปรแกรมที่เขียนขึ้นสำหรับ Windows หรือ Linux หรือ Unix” มากกว่าหนึ่งครั้ง ความจริงก็คือสภาพแวดล้อมการเขียนโปรแกรมเมื่อแปลภาษาโปรแกรมเป็นรหัสเครื่องอาจมีได้สองประเภท - คอมไพเลอร์และล่าม การคอมไพล์หรือตีความโปรแกรมจะระบุว่าโปรแกรมจะยังคงทำงานบนอุปกรณ์ต่อไปอย่างไร โปรแกรมที่เขียนด้วยภาษา Java ทำงานบนพื้นฐานของการตีความเสมอ ในขณะที่โปรแกรมที่เขียนด้วยภาษา C/C++ จะถูกคอมไพล์ ความแตกต่างระหว่างสองวิธีนี้คืออะไร?
หลังจากเขียนซอร์สโค้ดในขณะที่คอมไพเลอร์แล้ว คอมไพเลอร์จะอ่านซอร์สโค้ดทั้งหมดของโปรแกรมพร้อมกันและแปลเป็นโค้ดเครื่อง หลังจากนั้นโปรแกรมจะมีอยู่ในภาพรวมเดียวและสามารถดำเนินการได้ในระบบปฏิบัติการที่เขียนไว้เท่านั้น ดังนั้นโปรแกรมที่เขียนสำหรับ Windows จึงไม่สามารถทำงานได้ สภาพแวดล้อมลินุกซ์และในทางกลับกัน ล่ามรันโปรแกรมทีละขั้นตอนหรือทีละบรรทัดทุกครั้งที่ถูกดำเนินการ ในระหว่างการตีความ จะไม่มีการสร้างโค้ดที่ปฏิบัติการได้ แต่เป็นโค้ดเสมือนซึ่งจะถูกดำเนินการในภายหลัง ชวาเสมือนโดยรถยนต์ ดังนั้นบนแพลตฟอร์มใด ๆ - Windows หรือ Linux โปรแกรม Java จึงสามารถดำเนินการได้อย่างเท่าเทียมกันหากมีเครื่อง Java เสมือนในระบบซึ่งเรียกอีกอย่างว่า Runtime System
การเขียนโปรแกรมเชิงวัตถุ
การเขียนโปรแกรมเชิงวัตถุถูกสร้างขึ้นบนพื้นฐานของวัตถุซึ่งค่อนข้างคล้ายกับโลกของเรา หากคุณมองไปรอบๆ คุณจะพบบางสิ่งที่จะช่วยให้คุณเข้าใจรูปแบบของการเขียนโปรแกรมดังกล่าวได้ชัดเจนยิ่งขึ้น ตัวอย่างเช่น ตอนนี้ฉันกำลังนั่งอยู่ที่โต๊ะและพิมพ์บทนี้บนคอมพิวเตอร์ ซึ่งประกอบด้วยจอภาพ ยูนิตระบบ แป้นพิมพ์ เมาส์ ลำโพง และอื่นๆ ชิ้นส่วนทั้งหมดเหล่านี้เป็นวัตถุที่ประกอบเป็นคอมพิวเตอร์ เมื่อรู้สิ่งนี้แล้ว มันง่ายมากที่จะกำหนดรูปแบบการทำงานของคอมพิวเตอร์ทั้งหมดโดยทั่วไป หากคุณไม่เข้าใจความซับซ้อนของคุณสมบัติซอฟต์แวร์และฮาร์ดแวร์ของคอมพิวเตอร์เราสามารถพูดได้ว่าวัตถุ System Unit ดำเนินการบางอย่างที่แสดงโดยวัตถุ Monitor ในทางกลับกัน วัตถุคีย์บอร์ดสามารถปรับหรือตั้งค่าการกระทำสำหรับวัตถุหน่วยระบบ ซึ่งส่งผลต่อการทำงานของวัตถุจอภาพ กระบวนการที่นำเสนอแสดงให้เห็นลักษณะเฉพาะของระบบการเขียนโปรแกรมเชิงวัตถุทั้งหมดได้เป็นอย่างดี
ลองนึกภาพผลิตภัณฑ์ซอฟต์แวร์ที่มีประสิทธิภาพซึ่งมีโค้ดหลายแสนบรรทัด โปรแกรมทั้งหมดถูกดำเนินการทีละบรรทัด ทีละบรรทัด และโดยหลักการแล้ว แต่ละบรรทัดของโค้ดที่ตามมาจะต้องเชื่อมต่อกับโค้ดบรรทัดก่อนหน้า หากคุณไม่ได้ใช้การเขียนโปรแกรมเชิงวัตถุ และเมื่อคุณต้องการเปลี่ยนโค้ดโปรแกรมนี้ เช่น หากคุณต้องการปรับปรุงองค์ประกอบบางอย่าง คุณจะต้องทำงานมากมายกับซอร์สโค้ดทั้งหมดของโปรแกรมนี้
ในการเขียนโปรแกรมเชิงวัตถุทุกอย่างจะง่ายกว่ามาก กลับมาที่ตัวอย่างของระบบคอมพิวเตอร์กัน สมมติว่าคุณไม่พอใจกับจอภาพขนาด 17 นิ้วอีกต่อไป คุณสามารถแลกเปลี่ยนเป็นจอภาพขนาด 20 นิ้วได้อย่างปลอดภัย หากคุณมีความมั่นใจ ทรัพยากรวัสดุ- กระบวนการเปลี่ยนจะไม่ก่อให้เกิดปัญหาใหญ่หลวง เว้นแต่คุณจะต้องเปลี่ยนไดรเวอร์ เช็ดฝุ่นจากใต้จอภาพเก่า เท่านี้ก็เรียบร้อย การเขียนโปรแกรมเชิงวัตถุมีพื้นฐานอยู่บนหลักการทำงานนี้โดยประมาณ โดยที่โค้ดบางส่วนสามารถแสดงถึงคลาสของอ็อบเจ็กต์เนื้อเดียวกันที่สามารถอัปเกรดหรือเปลี่ยนได้อย่างง่ายดาย
การเขียนโปรแกรมเชิงวัตถุสะท้อนถึงสาระสำคัญของปัญหาที่กำลังแก้ไขได้อย่างง่ายดายและชัดเจน และที่สำคัญที่สุดคือทำให้สามารถลบวัตถุที่ไม่จำเป็นออกได้โดยไม่ทำลายทั้งโปรแกรม โดยแทนที่วัตถุเหล่านี้ด้วยวัตถุที่ใหม่กว่า ดังนั้นการอ่านซอร์สโค้ดโดยรวมของโปรแกรมทั้งหมดจึงง่ายขึ้นมาก สิ่งสำคัญคือสามารถใช้รหัสเดียวกันในโปรแกรมที่แตกต่างกันโดยสิ้นเชิง
ชั้นเรียน
แกนหลักของโปรแกรม Java ทั้งหมดคือคลาสที่ใช้การเขียนโปรแกรมเชิงวัตถุ โดยพื้นฐานแล้วคุณรู้อยู่แล้วว่าคลาสคืออะไร แต่คุณยังไม่ตระหนัก ในส่วนก่อนหน้านี้ เราได้พูดคุยเกี่ยวกับวัตถุ โดยใช้โครงสร้างของคอมพิวเตอร์ทั้งหมดเป็นตัวอย่าง แต่ละวัตถุที่ใช้ประกอบคอมพิวเตอร์เป็นตัวแทนของระดับเดียวกัน ตัวอย่างเช่น คลาส Monitor จะรวมจอภาพทั้งหมดเข้าด้วยกัน โดยไม่คำนึงถึงประเภท ขนาด และความสามารถ และจอภาพหนึ่งเดียวที่วางอยู่บนโต๊ะทำงานของคุณถือเป็นวัตถุของคลาสจอภาพ
แนวทางนี้ทำให้ง่ายต่อการสร้างโมเดลกระบวนการการเขียนโปรแกรมทุกประเภท ทำให้ง่ายต่อการแก้ไขปัญหา ตัวอย่างเช่น มีสี่ออบเจ็กต์จากสี่คลาสที่แตกต่างกัน: จอภาพ ยูนิตระบบ คีย์บอร์ด และลำโพง ในการเล่นไฟล์เสียงคุณต้องใช้แป้นพิมพ์เพื่อออกคำสั่ง หน่วยระบบคุณจะสังเกตเห็นการกระทำของการออกคำสั่งด้วยสายตาบนหน้าจอมอนิเตอร์ และผลที่ตามมาคือลำโพงจะสร้างไฟล์เสียงขึ้นมาใหม่ นั่นคือออบเจ็กต์ใดๆ ก็เป็นส่วนหนึ่งของคลาสหนึ่งๆ และมีเครื่องมือและความสามารถทั้งหมดที่มีในคลาสนี้ สามารถมีอ็อบเจ็กต์ในคลาสเดียวได้มากเท่าที่จำเป็นในการแก้ปัญหา
วิธีการ
เมื่อมีการให้ตัวอย่างการเล่นไฟล์เสียง ระบุว่าได้รับคำสั่งหรือข้อความตามการกระทำบางอย่าง งานในการดำเนินการได้รับการแก้ไขโดยใช้วิธีการที่แต่ละวัตถุมี วิธีการคือชุดคำสั่งที่สามารถใช้เพื่อดำเนินการบางอย่างกับวัตถุได้
แต่ละวัตถุมีจุดประสงค์ของตัวเองและได้รับการออกแบบมาเพื่อแก้ไขปัญหาบางช่วงโดยใช้วิธีการ วัตถุคีย์บอร์ดจะมีประโยชน์อะไร เช่น หากคุณไม่สามารถกดปุ่มและยังสามารถออกคำสั่งได้ วัตถุแป้นพิมพ์มีจำนวนปุ่มที่แน่นอนซึ่งผู้ใช้สามารถควบคุมอุปกรณ์อินพุตและสามารถออกคำสั่งที่จำเป็นได้ คำสั่งดังกล่าวได้รับการประมวลผลโดยใช้วิธีการ
ตัวอย่างเช่น คุณกดปุ่ม Esc เพื่อยกเลิกการกระทำใดๆ และให้คำสั่งกับวิธีการที่กำหนดให้กับคีย์นี้ ซึ่งจะแก้ไขงานนี้ในระดับโปรแกรม คำถามเกิดขึ้นทันทีเกี่ยวกับจำนวนวิธีการของวัตถุ Keyboard แต่อาจมีการใช้งานที่แตกต่างกัน - จากการกำหนดวิธีการสำหรับแต่ละคีย์ (ซึ่งโดยทั่วไปแล้วไม่ฉลาด) และการสร้างวิธีการเดียวที่จะตรวจสอบ สถานะทั่วไปของแป้นพิมพ์ นั่นคือวิธีการนี้จะตรวจสอบว่ามีการกดปุ่มหรือไม่จากนั้นจึงตัดสินใจว่าจะทำอย่างไรขึ้นอยู่กับว่าเปิดใช้งานคีย์ใด
เรียบง่าย
“เราต้องการสร้างระบบที่ง่ายต่อการตั้งโปรแกรม ไม่ต้องมีการฝึกอบรมเพิ่มเติม และคำนึงถึงแนวปฏิบัติและมาตรฐานการเขียนโปรแกรมที่กำหนดไว้ ดังนั้นแม้ว่าเราจะถือว่า C++ ไม่เหมาะสมสำหรับวัตถุประสงค์เหล่านี้ แต่ Java ได้รับการออกแบบให้คล้ายกันมากที่สุดเท่าที่จะเป็นไปได้เพื่อให้ระบบสามารถเข้าถึงได้มากขึ้น Java ขาดคุณสมบัติที่ใช้งานน้อย คลุมเครือ และคลุมเครือหลายประการของ C++ ซึ่งเราเชื่อว่าก่อให้เกิดผลเสียมากกว่าผลดี ไวยากรณ์ Java นั้นเป็นเวอร์ชันกลั่นของไวยากรณ์ C++ ภาษานี้ไม่มีไฟล์ส่วนหัว, เลขคณิตของพอยน์เตอร์ (และตัวพอยน์เตอร์เอง), โครงสร้าง, สหภาพ, โอเปอเรเตอร์โอเวอร์โหลด, คลาสฐานเสมือน ฯลฯ”
อย่างไรก็ตาม นักพัฒนาไม่ได้มุ่งมั่นที่จะแก้ไขข้อบกพร่องทั้งหมดของภาษา C++ ตัวอย่างเช่น ไวยากรณ์ของคำสั่ง switch ใน Java ยังคงไม่เปลี่ยนแปลง เมื่อรู้ภาษา C++ แล้วจะง่ายต่อการย้ายไปยังไวยากรณ์ Java เป้าหมายประการหนึ่งของภาษา Java คือเพื่อให้สามารถพัฒนาโปรแกรมที่สามารถรันได้อย่างอิสระอย่างสมบูรณ์บนเครื่องขนาดเล็ก ขนาดของล่ามหลักและการสนับสนุนคลาสคือประมาณ 40 KB ไลบรารีมาตรฐานและการสนับสนุนเธรด (โดยเฉพาะอัตโนมัติ
ไมโครเคอร์เนลที่มีอยู่ในตัวเอง) ใช้พื้นที่อีก 175 KB นี่คือความสำเร็จที่ยิ่งใหญ่ อย่างไรก็ตาม โปรดทราบว่าไลบรารีที่รองรับ GUI นั้นมีขนาดใหญ่กว่ามาก
เชิงวัตถุ
“พูดง่ายๆ ก็คือ การเขียนโปรแกรมเชิงวัตถุเป็นวิธีการเขียนโปรแกรมที่เน้นไปที่ข้อมูล (เช่น วัตถุ) และวิธีการเข้าถึงสิ่งเหล่านั้น”
คุณสมบัติเชิงวัตถุของภาษา Java และ C++ นั้นโดยพื้นฐานแล้วจะเหมือนกัน การวางแนววัตถุได้พิสูจน์คุณค่าของมันแล้วในช่วง 30 ปีที่ผ่านมา และเป็นไปไม่ได้ที่จะจินตนาการถึงภาษาการเขียนโปรแกรมสมัยใหม่หากไม่มีการวางแนว แท้จริงแล้ว คุณสมบัติเชิงวัตถุของภาษา Java นั้นเทียบได้กับภาษา C++ ความแตกต่างที่สำคัญระหว่างพวกเขาคือกลไกของการสืบทอดหลายอย่างซึ่งภาษา Java มี ทางออกที่ดีที่สุดเช่นเดียวกับในรูปแบบ metaclass ของภาษา Java กลไกสำหรับการสะท้อนและการทำให้วัตถุเป็นอนุกรมช่วยให้คุณนำไปใช้ได้ วัตถุที่ยั่งยืนและเครื่องมือสำหรับการสร้างส่วนต่อประสานผู้ใช้แบบกราฟิกตามส่วนประกอบสำเร็จรูป
กระจาย
“ภาษา Java มีไลบรารีโปรแกรมขนาดใหญ่สำหรับการถ่ายโอนข้อมูลโดยใช้โปรโตคอล TCP/IP (Transmission Control Protocol/Internet Protocol) เช่น http (Hypertext TransjerProtocol) หรือ FTP (File Transfer Protocol) - โปรโตคอลการถ่ายโอนไฟล์) แอปพลิเคชันที่เขียนด้วยภาษา Java สามารถเปิดและเข้าถึงออบเจ็กต์ผ่านเครือข่ายโดยใช้ URLrodpecoe (Uniform Resource Location) ได้อย่างง่ายดายเหมือนกับบนเครือข่ายท้องถิ่น”
ภาษา Java มีเครื่องมือที่มีประสิทธิภาพและสะดวกสบายสำหรับการเชื่อมต่อเครือข่าย ใครก็ตามที่เคยพยายามเขียนโปรแกรมสำหรับอินเทอร์เน็ตในภาษาอื่น ๆ จะต้องประหลาดใจกับความง่ายดายในการแก้ไขงานที่ยากที่สุดเช่นการเปิดการเชื่อมต่อเครือข่าย (ซ็อกเก็ต) ใน Java กลไกที่หรูหราประกอบด้วยเซิร์ฟเล็ตที่เรียกว่าทำให้งานบนเซิร์ฟเวอร์มีประสิทธิภาพอย่างมาก เซิร์ฟเล็ตได้รับการสนับสนุนโดยเว็บเซิร์ฟเวอร์ยอดนิยมมากมาย การสื่อสารระหว่างอ็อบเจ็กต์แบบกระจายในภาษา Java จัดทำโดยกลไกสำหรับการเรียกใช้เมธอดระยะไกล (หัวข้อนี้จะกล่าวถึงในเล่มที่ 2 ด้วย)
เชื่อถือได้
“ภาษาจาวาได้รับการออกแบบเพื่อสร้างโปรแกรมที่ควรทำงานได้อย่างน่าเชื่อถือในทุกสถานการณ์ จุดสนใจหลักของ Java คือการตรวจหาข้อผิดพลาดที่เป็นไปได้ตั้งแต่เนิ่นๆ การตรวจสอบแบบไดนามิก (ระหว่างการทำงานของโปรแกรม) และการกำจัดสถานการณ์ที่มีแนวโน้มว่าจะเกิดข้อผิดพลาด... ข้อแตกต่างที่สำคัญเพียงอย่างเดียวระหว่าง Java และ C++ คือโมเดลตัวชี้ที่ใช้ใน Java ซึ่งจะกำจัด ความเป็นไปได้ในการเขียนทับส่วนหน่วยความจำและข้อมูลที่สร้างความเสียหาย”
คุณสมบัตินี้ก็มีประโยชน์มากเช่นกัน คอมไพเลอร์ภาษา Java ตรวจพบข้อผิดพลาดที่ตรวจพบในภาษาอื่นเฉพาะระหว่างการทำงานของโปรแกรมเท่านั้น นอกจากนี้โปรแกรมเมอร์ที่ใช้เวลาหลายชั่วโมงในการค้นหาจุดบกพร่องที่ทำให้หน่วยความจำเสียหายเนื่องจากตัวชี้ที่ไม่ถูกต้องจะดีใจมากที่รู้ว่าปัญหาดังกล่าวไม่สามารถเกิดขึ้นได้ในหลักการในภาษา Java
หากคุณเคยตั้งโปรแกรมเป็นภาษาไว้ก่อนหน้านี้ วิชวลเบสิกหรือภาษาโคบอลซึ่งไม่ได้ใช้พอยน์เตอร์อย่างชัดเจน คุณอาจไม่เข้าใจว่าทำไมสิ่งนี้ถึงสำคัญมาก โปรแกรมเมอร์ C โชคดีน้อยกว่ามาก พวกเขาต้องการพอยน์เตอร์เพื่อเข้าถึงสตริง อาร์เรย์ อ็อบเจ็กต์ และแม้แต่ไฟล์ เมื่อเขียนโปรแกรมใน Visual Basic ไม่จำเป็นต้องดำเนินการใดๆ และโปรแกรมเมอร์ก็ไม่ต้องกังวลเรื่องการจัดสรรหน่วยความจำสำหรับเอนทิตีเหล่านี้ ในทางกลับกัน โครงสร้างข้อมูลจำนวนมากเป็นเรื่องยากมากที่จะนำไปใช้ในภาษาที่ไม่มีพอยน์เตอร์ สำหรับโครงสร้างทั่วไป เช่น สตริงและอาร์เรย์ ไม่จำเป็นต้องมีพอยน์เตอร์ พลังทั้งหมดของพอยน์เตอร์จะมีผลก็ต่อเมื่อคุณไม่สามารถทำได้หากไม่มีพอยน์เตอร์ เช่น เมื่อสร้างรายการที่เชื่อมโยง โปรแกรมเมอร์ Java จะปราศจากพอยน์เตอร์ที่ไม่ดี การจัดสรรที่ไม่ดี และหน่วยความจำรั่วตลอดไป
ปลอดภัย
“ภาษา Java ได้รับการออกแบบมาเพื่อใช้ในสภาพแวดล้อมแบบเครือข่ายและแบบกระจาย ด้วยเหตุนี้ ความสนใจอย่างมากคำนึงถึงความปลอดภัยเป็นสำคัญ ภาษา Java ช่วยให้คุณสร้างระบบที่ได้รับการปกป้องจากไวรัสและการรบกวนจากภายนอก”
ทีมงานภาษา Java ได้ประกาศว่าไม่มีความทนทานต่อข้อบกพร่องด้านความปลอดภัยใดๆ และได้เริ่มแก้ไขปัญหาใดๆ ที่พบในกลไกความปลอดภัยของแอปเพล็ตทันที โดยเฉพาะอย่างยิ่ง ด้วยการเผยแพร่ข้อกำหนดภายในของล่ามภาษา Java ทำให้ Sun ค้นหาจุดบกพร่องด้านความปลอดภัยที่ซ่อนอยู่ได้ง่ายขึ้นมาก และดึงดูดผู้เชี่ยวชาญอิสระให้มาค้นหาจุดบกพร่องเหล่านั้น สิ่งนี้เพิ่มโอกาสที่ข้อผิดพลาดในระบบรักษาความปลอดภัยจะถูกค้นพบในไม่ช้า ไม่ว่าในกรณีใด เป็นการยากมากที่จะเอาชนะระบบรักษาความปลอดภัยภาษา Java แมลงที่ค้นพบจนถึงขณะนี้แทบไม่มีรายละเอียดมากนัก และมีจำนวน (ค่อนข้างน้อย)
มาตรการความปลอดภัยทั้งหมดนี้เหมาะสมและมักจะทำงานได้อย่างไร้ที่ติ แต่การระมัดระวังก็ไม่ใช่เรื่องเสียหาย แม้ว่าข้อบกพร่องที่ค้นพบจนถึงขณะนี้ยังห่างไกลจากเรื่องเล็กน้อย และรายละเอียดของการค้นพบมักถูกเก็บเป็นความลับ แต่ต้องรับรู้ว่ายังคงเป็นไปไม่ได้ที่จะพิสูจน์ความปลอดภัยของภาษา Java เมื่อเวลาผ่านไป มีการเพิ่มการป้องกันใหม่ๆ ให้กับภาษา เริ่มต้นด้วยเวอร์ชัน 1.1 ภาษา Java แนะนำแนวคิดของคลาสที่ลงนามแบบดิจิทัล ด้วยการใช้ชั้นเรียนที่เซ็นชื่อแบบดิจิทัล คุณสามารถมั่นใจได้ว่าเป็นผู้เขียน หากคุณเชื่อถือ คุณสามารถให้สิทธิ์แก่คลาสนี้ทั้งหมดที่มีอยู่บนเครื่องของคุณได้
สถาปัตยกรรมที่เป็นอิสระ
“ คอมไพเลอร์สร้างไฟล์อ็อบเจ็กต์ซึ่งรูปแบบไม่ได้ขึ้นอยู่กับสถาปัตยกรรมคอมพิวเตอร์ - โปรแกรมที่คอมไพล์สามารถดำเนินการบนโปรเซสเซอร์ใด ๆ ที่ควบคุมโดยระบบการทำงานของโปรแกรม Java เมื่อต้องการทำเช่นนี้ คอมไพเลอร์ภาษา Java จะสร้างคำสั่ง bytecode ที่ไม่ขึ้นกับสถาปัตยกรรมคอมพิวเตอร์เฉพาะ ไบต์โค้ดได้รับการออกแบบในลักษณะที่สามารถตีความได้อย่างง่ายดายบนเครื่องใดๆ หรือแปลเป็นโค้ดเครื่องได้ทันที”
นี่ไม่ใช่ความคิดใหม่ กว่า 20 ปีที่แล้ว ทั้งระบบการนำภาษา Pascal ที่พัฒนาโดย Niclaus Wirth และระบบ UCSD Pascal ใช้เทคโนโลยีเดียวกัน การใช้ bytecodes ให้ประโยชน์อย่างมากในการทำงานของโปรแกรม (แม้ว่าการคอมไพล์แบบซิงโครนัสในหลาย ๆ กรณีจะชดเชยสิ่งนี้) นักพัฒนาภาษา Java ทำงานได้อย่างยอดเยี่ยมในการพัฒนาชุดคำสั่ง bytecode ซึ่งทำงานได้อย่างสมบูรณ์แบบบนคอมพิวเตอร์สมัยใหม่ส่วนใหญ่
แปลเป็นคำสั่งเครื่องจริงได้อย่างง่ายดาย
ตัวเครื่องเป็นอิสระ
“ไม่เหมือนกับ C และ C++ ตรงที่ข้อกำหนดของ Java ไม่มีลักษณะเฉพาะของการนำไปใช้งาน ทั้งขนาดของประเภทข้อมูลพื้นฐานและการดำเนินการทางคณิตศาสตร์นั้นได้รับการกำหนดไว้อย่างแม่นยำ ตัวอย่างเช่น ประเภท int ใน Java จะหมายถึงจำนวนเต็ม 32 บิตเสมอ ในภาษา C และ C++ ประเภท int อาจหมายถึงจำนวนเต็ม 16 บิตหรือ 32 บิต หรือจำนวนเต็มขนาดใดก็ได้ ขึ้นอยู่กับดุลยพินิจของผู้ออกแบบคอมไพเลอร์ ข้อจำกัดเพียงอย่างเดียวคือ "ขนาดของประเภท int ต้องไม่น้อยกว่าขนาดของประเภท shortint และมากกว่าขนาดของประเภท
ประเภทตัวเลขที่มีขนาดคงที่ช่วยหลีกเลี่ยงความยุ่งยากมากมายที่เกี่ยวข้องกับการรันโปรแกรมบนคอมพิวเตอร์เครื่องอื่น ข้อมูลไบนารีถูกจัดเก็บและส่งในรูปแบบคงที่ ซึ่งหลีกเลี่ยงความเข้าใจผิดที่เกี่ยวข้องกับการเรียงลำดับไบต์ที่แตกต่างกันบนแพลตฟอร์มที่แตกต่างกัน (ข้อขัดแย้ง "big endian/little endian") สตริงจะถูกบันทึกในรูปแบบ Unicode มาตรฐาน
ตีความได้
“ล่ามภาษา Java สามารถส่งไปยังเครื่องใดก็ได้และรันโค้ดไบต์ได้โดยตรง เนื่องจากการแก้ไขลิงก์เป็นกระบวนการที่ง่ายกว่า การพัฒนาโปรแกรมจึงรวดเร็วและมีประสิทธิภาพมากขึ้น"
นี่อาจเป็นข้อได้เปรียบเมื่อพัฒนาแอปพลิเคชัน แต่ข้อความข้างต้นเป็นการพูดเกินจริงที่ชัดเจน ไม่ว่าในกรณีใด คอมไพเลอร์ Java ที่รวมอยู่ใน JSDK (Java Software Development Kit) ค่อนข้างช้า (คอมไพเลอร์ประเภท 3 บางตัว เช่นจาก IBM นั้นเร็วกว่ามาก) ความเร็วการคอมไพล์ใหม่เป็นเพียงปัจจัยหนึ่งในประสิทธิภาพของสภาพแวดล้อมการเขียนโปรแกรม เมื่อคุณเปรียบเทียบความเร็วของสภาพแวดล้อมการเขียนโปรแกรม Java และ Visual Basic คุณอาจผิดหวัง
ประสิทธิภาพสูง
“แม้ว่าการเข้ารหัสไบต์โดยทั่วไปจะมีประสิทธิภาพมากกว่าที่เพียงพอ แต่ก็มีบางสถานการณ์ที่จำเป็นต้องมีประสิทธิภาพที่มากกว่านั้น รหัสไบต์สามารถแปลได้ “ทันที” (ระหว่างรันไทม์) เป็นรหัสเครื่องสำหรับโปรเซสเซอร์เฉพาะที่แอปพลิเคชันกำลังทำงานอยู่”
หากคุณใช้ล่ามเพื่อรันไบต์โค้ด คุณไม่ควรใช้วลี "ประสิทธิภาพสูง" อย่างไรก็ตาม ในหลาย ๆ แพลตฟอร์ม การคอมไพล์ประเภทอื่นสามารถทำได้ โดยคอมไพเลอร์ just-in-time (JIT) พวกเขาแปล bytecode เป็นโค้ดเนทีฟ เก็บผลลัพธ์ไว้ในหน่วยความจำ จากนั้นเรียกใช้เมื่อจำเป็น เนื่องจากการตีความจะดำเนินการเพียงครั้งเดียว วิธีการนี้จึงเพิ่มความเร็วขึ้นหลายเท่า แม้ว่าคอมไพเลอร์แบบซิงโครนัสจะยังคงช้ากว่าคอมไพเลอร์ที่ขึ้นกับเครื่อง แต่ในกรณีใด ๆ พวกมันก็เร็วกว่าล่ามมาก โดยให้ความเร็ว 10 หรือ 20 เท่าสำหรับบางโปรแกรม เทคโนโลยีนี้ได้รับการปรับปรุงอย่างต่อเนื่องและในที่สุดอาจถึงความเร็วที่คอมไพเลอร์แบบเดิมจะไม่มีวันก้าวข้ามไปได้ ตัวอย่างเช่น คอมไพลเลอร์แบบซิงโครนัสสามารถกำหนดได้ว่าโค้ดชิ้นใดที่ถูกเรียกใช้งานบ่อยกว่า และปรับให้เหมาะสมสำหรับความเร็วในการดำเนินการ
มัลติเธรด
"มัลติเธรดให้การโต้ตอบและการทำงานของโปรแกรมที่ดีขึ้น" หากคุณเคยลองใช้การประมวลผลแบบมัลติเธรดในภาษาการเขียนโปรแกรมอื่นๆ คุณจะประหลาดใจกับความง่ายดายในการดำเนินการใน Java เธรดใน Java สามารถใช้ประโยชน์จากระบบมัลติโปรเซสเซอร์ได้หากระบบปฏิบัติการอนุญาต น่าเสียดายที่การใช้งานเธรดบนแพลตฟอร์มส่วนใหญ่นั้นแตกต่างกันอย่างมาก และนักพัฒนาภาษา Java ก็ไม่พยายามที่จะบรรลุความสม่ำเสมอ เฉพาะรหัสสำหรับการเรียกเธรดเท่านั้นที่ยังคงเหมือนเดิมสำหรับเครื่องทั้งหมด ภาษา Java เลื่อนการนำมัลติเธรดไปใช้งานกับระบบปฏิบัติการพื้นฐานหรือไลบรารีเธรด (หัวข้อต่างๆ ครอบคลุมอยู่ในเล่ม 2) อย่างไรก็ตาม ความสะดวกของการประมวลผลแบบมัลติเธรดทำให้ Java น่าสนใจสำหรับการพัฒนาซอฟต์แวร์เซิร์ฟเวอร์
พลวัต
“ในหลาย ๆ ด้าน Java มีความไดนามิกมากกว่า C หรือ C++ ได้รับการออกแบบมาให้ปรับให้เข้ากับสภาพแวดล้อมที่เปลี่ยนแปลงตลอดเวลาได้อย่างง่ายดาย สามารถเพิ่มวิธีการและอ็อบเจ็กต์ใหม่ลงในไลบรารีได้อย่างอิสระโดยไม่ก่อให้เกิดอันตรายใดๆ ภาษา Java ทำให้ง่ายต่อการรับข้อมูลเกี่ยวกับความคืบหน้าของโปรแกรม"
นี่เป็นสิ่งสำคัญมากในกรณีที่คุณต้องการเพิ่มโค้ดให้กับโปรแกรมที่กำลังทำงานอยู่ ตัวอย่างที่โดดเด่นนี่คือโค้ดที่ดาวน์โหลดจากอินเทอร์เน็ตเพื่อให้เบราว์เซอร์ดำเนินการ ใน Java 1.0 การรับข้อมูลเกี่ยวกับความคืบหน้าของโปรแกรมที่รันอยู่ไม่ใช่เรื่องง่าย แต่เวอร์ชันปัจจุบันของภาษา Java เปิดเผยให้โปรแกรมเมอร์ทราบทั้งโครงสร้างและพฤติกรรมของอ็อบเจ็กต์ของโปรแกรมที่รันอยู่ สิ่งนี้มีประโยชน์มากสำหรับระบบที่ต้องวิเคราะห์อ็อบเจ็กต์ระหว่างการทำงานของโปรแกรม ระบบเหล่านี้ประกอบด้วยเครื่องมือส่วนต่อประสานกราฟิกกับผู้ใช้ การดีบักเกอร์อัจฉริยะ ส่วนประกอบปลั๊กอิน และฐานข้อมูลอ็อบเจ็กต์
Java - ภาษาจากระบบไมโครของ Sun เดิมได้รับการพัฒนาเป็นภาษาสำหรับการเขียนโปรแกรมอุปกรณ์อิเล็กทรอนิกส์ แต่ต่อมาเริ่มใช้สำหรับการเขียนแอปพลิเคชันซอฟต์แวร์เซิร์ฟเวอร์ โปรแกรม Java เป็นแบบข้ามแพลตฟอร์ม กล่าวคือ สามารถทำงานบนอะไรก็ได้ ระบบปฏิบัติการ.
พื้นฐานการเขียนโปรแกรม Java
Java เป็นภาษาเชิงวัตถุ ปฏิบัติตามหลักการพื้นฐานของ OOP:
- มรดก;
- ความหลากหลาย;
- การห่อหุ้ม
ที่ศูนย์กลางของ Java เช่นเดียวกับ OYA อื่นๆ คืออ็อบเจ็กต์และคลาสที่มีตัวสร้างและคุณสมบัติ เริ่มเรียนรู้ภาษา การเขียนโปรแกรมจาวาจะดีกว่าไม่ใช่จากแหล่งข้อมูลอย่างเป็นทางการ แต่จากคู่มือสำหรับผู้เริ่มต้น คู่มือดังกล่าวจะอธิบายความสามารถโดยละเอียดและให้ตัวอย่างโค้ด หนังสืออย่าง “The Java Programming Language for Beginners” อธิบายรายละเอียดเกี่ยวกับหลักการพื้นฐานและคุณลักษณะของภาษาที่กำหนดชื่อไว้
ลักษณะเฉพาะ
โค้ดภาษาโปรแกรม Java จะถูกแปลเป็น bytecode จากนั้นจึงดำเนินการบน JVM การแปลงเป็น bytecode ดำเนินการใน Javac, Jikes, Espresso, GCJ มีคอมไพเลอร์ที่แปลภาษา C เป็น Java bytecode ดังนั้นแอปพลิเคชัน C จึงสามารถทำงานบนแพลตฟอร์มใดก็ได้
ไวยากรณ์ Java มีลักษณะดังต่อไปนี้:
- ชื่อชั้นเรียนต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ หากชื่อประกอบด้วยคำหลายคำ ชื่อที่สองจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่
- หากใช้คำหลายคำเพื่อสร้างวิธีการ คำที่สองจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่
- การประมวลผลเริ่มต้นด้วยเมธอด main() ซึ่งเป็นส่วนหนึ่งของทุกโปรแกรม
ประเภท
ภาษาการเขียนโปรแกรม Java มี 8 ประเภทดั้งเดิม มีการนำเสนอด้านล่าง
- บูลีน - ประเภทบูลีนรับค่าจริงและเท็จเพียงสองค่าเท่านั้น
- ไบต์ - เล็กที่สุด ประเภทจำนวนเต็มขนาด 1 ไบต์ มันถูกใช้เมื่อทำงานกับไฟล์หรือข้อมูลไบนารีดิบ มีช่วงตั้งแต่ -128 ถึง 127
- Short มีช่วงตั้งแต่ -32768 ถึง 32767 และใช้เพื่อแสดงตัวเลข ขนาดของตัวแปรประเภทนี้คือ 2 ไบต์
- Int ยังหมายถึงตัวเลข แต่มีขนาด 4 ไบต์ มักใช้เพื่อทำงานกับข้อมูลจำนวนเต็ม และบางครั้งไบต์และแบบสั้นก็ได้รับการเลื่อนระดับเป็น int
- Long ใช้สำหรับจำนวนเต็มขนาดใหญ่ ค่าที่เป็นไปได้มีตั้งแต่ -9223372036854775808 ถึง 9223372036854775807
- Float และ Double ใช้เพื่อแสดงถึงค่าเศษส่วน ความแตกต่างของพวกเขาคือลอยได้สะดวกเมื่อไม่จำเป็น ความแม่นยำสูงในส่วนของเศษส่วนของจำนวน
- Double แสดงอักขระทั้งหมดหลังตัวคั่น "." ในขณะที่ float จะแสดงเฉพาะอักขระตัวแรกเท่านั้น
- สตริงเป็นประเภทดั้งเดิมที่ใช้กันมากที่สุดซึ่งใช้ในการกำหนดสตริง
คลาสและวัตถุ
คลาสและอ็อบเจ็กต์มีบทบาทสำคัญในการเรียนรู้ภาษาการเขียนโปรแกรม Java สำหรับผู้เริ่มต้น
คลาสกำหนดเทมเพลตสำหรับออบเจ็กต์ ซึ่งจำเป็นต้องมีคุณลักษณะและวิธีการ หากต้องการสร้าง ให้ใช้คีย์เวิร์ด Class หากสร้างเป็นไฟล์แยกกัน ชื่อของคลาสและไฟล์จะต้องเหมือนกัน ชื่อนั้นประกอบด้วยสองส่วน: ชื่อและนามสกุล.Java
ใน Java คุณสามารถสร้างคลาสย่อยที่จะสืบทอดเมธอดของพาเรนต์ได้ คำว่าขยายใช้สำหรับสิ่งนี้:
- คลาส class_name ขยาย superclass_name();
Constructor เป็นส่วนประกอบของคลาสใดๆ แม้ว่าจะไม่ได้ระบุไว้อย่างชัดเจนก็ตาม ในกรณีนี้ คอมไพลเลอร์จะสร้างมันขึ้นมาอย่างอิสระ:
- สาธารณะ คลาสคลาส( คลาสสาธารณะ () ( ) คลาสสาธารณะ (ชื่อสตริง) ( ))
ชื่อของตัวสร้างจะเหมือนกับชื่อของคลาส โดยค่าเริ่มต้น จะมีเพียงพารามิเตอร์เดียวเท่านั้น:
- ลูกสุนัขสาธารณะ (ชื่อสตริง)
วัตถุถูกสร้างขึ้นจากคลาสที่ใช้ โอเปอเรเตอร์ใหม่():
- จุด p = จุดใหม่ ()
ได้รับวิธีการและคุณสมบัติทั้งหมดของคลาสด้วยความช่วยเหลือในการโต้ตอบกับวัตถุอื่น วัตถุหนึ่งสามารถใช้ได้หลายครั้งภายใต้ตัวแปรที่ต่างกัน
- classname.ตัวแปร
- นำเข้าชื่อคลาสคงที่
คลาสพอยต์ (int x, y;
เป็นโมฆะ init (int a, int b) (
- จุด.init();
- int ก, ข, ค;
- ตัวแปรท้องถิ่น (ท้องถิ่น);
- ตัวแปรอินสแตนซ์
- ตัวแปรคงที่ (คงที่)
- ตัวเลข - 0;
- ตรรกะ - เท็จ;
- ลิงก์เป็นโมฆะ
- สุดท้าย;
- ส่วนตัว;
- สาธารณะ
- ClassName.VariableName.
- รุ่นมาตรฐาน
- รุ่นองค์กร
- รุ่นไมโคร.
- การ์ด.
- SE - เป็นพื้นฐานที่ใช้กันอย่างแพร่หลายในการสร้าง แอปพลิเคชันที่กำหนดเองสำหรับการใช้งานส่วนบุคคล
- EE คือชุดข้อกำหนดสำหรับการพัฒนาซอฟต์แวร์ระดับองค์กร ประกอบด้วย ความเป็นไปได้มากขึ้นกว่า SE และดังนั้นจึงถูกนำมาใช้ในเชิงพาณิชย์ในองค์กรขนาดใหญ่และขนาดกลาง
- ME - ออกแบบมาสำหรับอุปกรณ์ที่มีพลังงานและหน่วยความจำจำกัด โดยมักจะมีขนาดจอแสดงผลเล็ก อุปกรณ์ดังกล่าว ได้แก่ สมาร์ทโฟนและพีดีเอเครื่องรับ โทรทัศน์ระบบดิจิตอล.
- การ์ด - ออกแบบมาสำหรับอุปกรณ์ที่มีทรัพยากรการประมวลผลจำกัดมาก เช่น สมาร์ทการ์ด ซิมการ์ด ตู้ ATM เพื่อวัตถุประสงค์เหล่านี้ ไบต์โค้ด ข้อกำหนดของแพลตฟอร์ม และส่วนประกอบไลบรารีจึงมีการเปลี่ยนแปลง
- NetBeans IDE
- คราส IDE
- IntelliJ IDEA.
- เจ ดีเวลลอปเปอร์
- จาวาสำหรับ iOS
- จีนี่.
จุด p = จุดใหม่ ()
คลาสสองคะแนน (
โมฆะคงสาธารณะหลัก (String args) (
จุด p1 = จุดใหม่ ();
จุด p2 = จุดใหม่ ();
ตัวแปรวัตถุและวัตถุเป็นเอนทิตีที่แตกต่างกันโดยสิ้นเชิง ตัวแปรวัตถุมีการอ้างอิง พวกเขาสามารถชี้ไปที่ตัวแปรที่ไม่ใช่ชนิดดั้งเดิมได้ ต่างจาก C++ ตรงที่การแปลงประเภทได้รับการควบคุมอย่างเข้มงวด
สาขาและวิธีการ
ฟิลด์คือตัวแปรทั้งหมดที่เกี่ยวข้องกับคลาสหรืออ็อบเจ็กต์ โดยค่าเริ่มต้นจะเป็นแบบโลคัลและไม่สามารถใช้ในคลาสอื่นได้ หากต้องการเข้าถึงช่องต่างๆ ให้ใช้ตัวดำเนินการ “”:
คุณสามารถตั้งค่าฟิลด์คงที่ได้โดยใช้คีย์ คำคงที่- ฟิลด์ดังกล่าวเป็นวิธีเดียวที่จะจัดเก็บตัวแปรโกลบอล นี่เป็นเพราะว่า Java ไม่มีตัวแปรโกลบอล
ใช้ความสามารถในการนำเข้าตัวแปรเพื่อเข้าถึงจากแพ็คเกจอื่น:
Method เป็นรูทีนย่อยสำหรับคลาสที่ถูกประกาศ อธิบายในระดับเดียวกับตัวแปร มันถูกระบุเป็นฟังก์ชันและสามารถเป็นประเภทใดก็ได้ รวมถึงโมฆะด้วย:
ในตัวอย่างข้างต้น คลาส Point มีจำนวนเต็ม x และ y ซึ่งเป็นวิธีการ init() วิธีการต่างๆ เช่น ตัวแปร เข้าถึงได้โดยใช้ตัวดำเนินการ ""
คุณสมบัติ init ไม่ส่งคืนสิ่งใดดังนั้นจึงมี ประเภทเป็นโมฆะ.
ตัวแปร
ในบทช่วยสอนภาษาการเขียนโปรแกรม Java ตัวแปรจะอยู่ในตำแหน่งพิเศษ ตัวแปรทั้งหมดมีประเภทเฉพาะ โดยจะกำหนดตำแหน่งที่จำเป็นสำหรับการจัดเก็บค่า ช่วงของค่าที่เป็นไปได้ และรายการการดำเนินการ ก่อนที่จะสามารถจัดการค่าได้ จะมีการประกาศตัวแปรก่อน
สามารถประกาศตัวแปรหลายตัวพร้อมกันได้ เครื่องหมายจุลภาคใช้เพื่อแสดงรายการ:
การเริ่มต้นเกิดขึ้นหลังหรือระหว่างการประกาศ:
int a = 10, b = 10;
มีหลายประเภท:
ตัวแปรท้องถิ่นจะถูกประกาศในเมธอดและคอนสตรัคเตอร์ ซึ่งจะถูกสร้างขึ้นเมื่อมีการรันและทำลายเมื่อเสร็จสิ้น สำหรับพวกเขา ห้ามระบุตัวแก้ไขการเข้าถึงและควบคุมระดับความพร้อมใช้งาน ไม่สามารถมองเห็นได้นอกบล็อกที่ประกาศ ใน Java ตัวแปรไม่มีค่าเริ่มต้น ดังนั้นจึงจำเป็นต้องกำหนดก่อนใช้งานครั้งแรก
ตัวแปรอินสแตนซ์จะต้องประกาศภายในชั้นเรียน ใช้เป็นวิธีการ แต่สามารถเข้าถึงได้หลังจากสร้างออบเจ็กต์แล้วเท่านั้น ตัวแปรจะถูกทำลายเมื่อวัตถุถูกทำลาย ตัวแปรอินสแตนซ์ต่างจากตัวแปรในเครื่องตรงที่มีค่าเริ่มต้น:
ตัวแปรคงที่เรียกว่าตัวแปรคลาส ชื่อของพวกเขาขึ้นต้นด้วยสัญลักษณ์ใน ตัวพิมพ์ใหญ่ถูกระบุโดยตัวแก้ไขแบบคงที่ พวกมันถูกใช้เป็นค่าคงที่ ดังนั้นจึงมีการเพิ่มตัวระบุหนึ่งตัวจากรายการเข้าไป:
พวกมันถูกเปิดใช้งานเมื่อเริ่มต้นโปรแกรมและถูกทำลายหลังจากหยุดการดำเนินการ เช่นเดียวกับตัวแปรอินสแตนซ์ พวกมันมีค่ามาตรฐานที่กำหนดให้กับตัวแปรว่าง ตัวเลขมีค่าเป็น 0 ตัวแปรบูลีนมีค่าเป็นเท็จ และการอ้างอิงวัตถุจะเป็นโมฆะตั้งแต่แรก ตัวแปรคงที่ถูกเรียกเข้า แบบฟอร์มต่อไปนี้:
คนเก็บขยะ
ในบทช่วยสอน "ภาษาการเขียนโปรแกรม Java สำหรับผู้เริ่มต้น" หัวข้อเกี่ยวกับการรวบรวมขยะอัตโนมัติเป็นส่วนที่น่าสนใจที่สุด
ใน Java ต่างจากภาษา C มันเป็นไปไม่ได้ การกำจัดด้วยตนเองวัตถุจากหน่วยความจำ เพื่อจุดประสงค์นี้จึงได้นำวิธีการกำจัดแบบอัตโนมัติมาใช้ - ตัวเก็บขยะ ด้วยการลบแบบดั้งเดิมผ่านค่า null เฉพาะการอ้างอิงถึงออบเจ็กต์เท่านั้นที่ถูกลบออก และตัวออบเจ็กต์เองจะถูกลบ มีวิธีการบังคับเก็บขยะถึงแม้จะไม่แนะนำให้ใช้ในการทำงานปกติก็ตาม
โมดูลสำหรับการลบวัตถุที่ไม่ได้ใช้โดยอัตโนมัติทำงานได้ พื้นหลัง, ทำงานเมื่อโปรแกรมไม่ได้ใช้งาน หากต้องการล้างวัตถุออกจากหน่วยความจำ โปรแกรมจะหยุดทำงาน หลังจากเพิ่มหน่วยความจำแล้ว การดำเนินการที่ถูกขัดจังหวะจะกลับมาทำงานต่อ
ตัวดัดแปลง
แยกแยะ ประเภทต่างๆตัวดัดแปลง นอกเหนือจากที่กำหนดวิธีการเข้าถึงแล้ว ยังมีตัวแก้ไขวิธีการ ตัวแปร และคลาสอีกด้วย วิธีการประกาศส่วนตัวนั้นมีเฉพาะในคลาสที่ประกาศไว้เท่านั้น ตัวแปรดังกล่าวไม่สามารถใช้ในคลาสและฟังก์ชันอื่นได้ สาธารณะอนุญาตให้เข้าถึงชั้นเรียนใดก็ได้ หากคุณต้องการรับคลาสสาธารณะจากแพ็คเกจอื่น คุณต้องนำเข้าคลาสนั้นก่อน
ตัวดัดแปลงที่ได้รับการป้องกันนั้นมีผลคล้ายกับสาธารณะ - โดยจะเปิดการเข้าถึงฟิลด์ของคลาส ในทั้งสองกรณี ตัวแปรสามารถนำไปใช้ในคลาสอื่นได้ แต่ตัวแก้ไขสาธารณะนั้นมีให้สำหรับทุกคนอย่างแน่นอน และตัวแก้ไขที่ได้รับการป้องกันนั้นมีให้สำหรับคลาสที่สืบทอดมาเท่านั้น
ตัวแก้ไขที่ใช้เมื่อสร้างวิธีการเป็นแบบคงที่ ซึ่งหมายความว่าวิธีการที่สร้างขึ้นนั้นมีอยู่อย่างเป็นอิสระจากอินสแตนซ์ของคลาส ตัวแก้ไขขั้นสุดท้ายไม่ได้ควบคุมการเข้าถึง แต่เป็นการบ่งชี้ถึงความเป็นไปไม่ได้ที่จะปรับเปลี่ยนค่าของอ็อบเจ็กต์ต่อไป ห้ามไม่ให้มีการเปลี่ยนแปลงองค์ประกอบที่ระบุไว้
Final สำหรับช่องทำให้ไม่สามารถเปลี่ยนค่าแรกของตัวแปรได้:
โมฆะสาธารณะคงที่ mthod (String args) (
ชื่อ int สุดท้าย = 1;
int Name = 2;// จะเกิดข้อผิดพลาด
ตัวแปรที่มีตัวแก้ไขสุดท้ายจะเป็นค่าคงที่ มักจะเขียนเท่านั้น เป็นตัวพิมพ์ใหญ่- CamelStyle และวิธีการอื่นๆ ใช้ไม่ได้
สุดท้ายสำหรับวิธีการบ่งชี้ถึงข้อห้ามในการเปลี่ยนวิธีการในชั้นเรียนที่สืบทอดมา:
โมฆะสุดท้าย myMethod() (
System.out.printIn("สวัสดีชาวโลก");
สุดท้ายสำหรับคลาสหมายความว่าคุณไม่สามารถสร้างคลาสสืบทอดได้:
ชั้นเรียนสาธารณะขั้นสุดท้าย ชั้นเรียน (
บทคัดย่อ - ตัวดัดแปลงสำหรับการสร้างคลาสนามธรรม คลาสนามธรรมและวิธีการนามธรรมใด ๆ มีวัตถุประสงค์เพื่อขยายเพิ่มเติมในคลาสและบล็อกอื่น ๆ ตัวแก้ไข transient บอกให้เครื่องเสมือนไม่ประมวลผลตัวแปรที่กำหนด ในกรณีนี้ก็จะไม่ถูกบันทึก ตัวอย่างเช่น transient int Name = 100 จะไม่ถูกบันทึก แต่ int b จะถูกบันทึก
แพลตฟอร์มและเวอร์ชัน
ตระกูลที่มีอยู่ของภาษาการเขียนโปรแกรม Java:
แอปพลิเคชัน
โปรแกรมที่เขียนด้วยภาษาโปรแกรม Java มักจะช้าลงและใช้ RAM มากกว่า การวิเคราะห์เปรียบเทียบภาษา Java และ C แสดงให้เห็นว่า C มีประสิทธิผลมากกว่าเล็กน้อย หลังจากการเปลี่ยนแปลงและการเพิ่มประสิทธิภาพมากมาย เครื่องเสมือน Java ได้ปรับปรุงประสิทธิภาพการทำงาน
ใช้งานอย่างแข็งขันสำหรับแอปพลิเคชัน Android โปรแกรมถูกคอมไพล์เป็นไบต์โค้ดที่ไม่ได้มาตรฐานและดำเนินการบนเครื่องเสมือน ART สำหรับการคอมไพล์จะใช้ แอนดรอยด์สตูดิโอ- IDE จาก Google นี้เป็นเวอร์ชันอย่างเป็นทางการสำหรับการพัฒนา Android
ไมโครซอฟต์พัฒนาขึ้น การดำเนินการของตัวเองเครื่องเสมือน Java MSJVM มันมีความแตกต่างที่ทำลายแนวคิดพื้นฐานของข้ามแพลตฟอร์ม - ไม่มีการรองรับเทคโนโลยีและวิธีการบางอย่าง มีส่วนขยายที่ไม่ได้มาตรฐานซึ่งใช้งานได้บนแพลตฟอร์ม Windows เท่านั้น Microsoft เปิดตัวภาษา J# ซึ่งมีไวยากรณ์และการทำงานโดยรวมคล้ายกับ Java มาก มันไม่เป็นไปตามข้อกำหนดอย่างเป็นทางการและในที่สุดก็ถูกลบออกจากชุดเครื่องมือนักพัฒนา Microsoft Visual Studio มาตรฐาน
ภาษาและสภาพแวดล้อมการเขียนโปรแกรมจาวา
การพัฒนาซอฟต์แวร์ดำเนินการใน IDE ต่อไปนี้:
JDK เผยแพร่โดย Oracle ในรูปแบบชุดพัฒนา Java ประกอบด้วยคอมไพเลอร์ ไลบรารีมาตรฐาน ยูทิลิตี้ และระบบบริหาร สภาพแวดล้อมการพัฒนาแบบรวมสมัยใหม่อาศัย JDK
สะดวกในการเขียนโค้ดในภาษาการเขียนโปรแกรม Java ใน Netbeans และ Eclipse IDE สภาพแวดล้อมการพัฒนาแบบผสานรวมฟรีเหล่านี้เหมาะสำหรับแพลตฟอร์ม Java ทั้งหมด ยังใช้สำหรับการเขียนโปรแกรมใน Python, PHP, JavaScript, C++
IntelliJ IDE จาก Jetbrains มีจำหน่ายสองเวอร์ชัน: ฟรีและเชิงพาณิชย์ รองรับการเขียนโค้ดในภาษาการเขียนโปรแกรมหลายภาษา มีปลั๊กอินของบุคคลที่สามจากนักพัฒนาที่ใช้งานมากกว่านี้ มากกว่าใช่แล้ว
JDeveloper - การพัฒนาอื่นจาก ออราเคิล- เขียนด้วยภาษา Java อย่างสมบูรณ์ ดังนั้นจึงใช้ได้กับทุกระบบปฏิบัติการ