คำอธิบายโดยย่อของภาษาโปรแกรม Java ภาษาโปรแกรมจาวา การเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มเขียนโค้ด Java และเว็บได้ที่ไหน

และการสร้างเว็บไซต์กำลังได้รับความนิยมเพิ่มมากขึ้นและดึงดูดความสนใจจากผู้คนจำนวนมาก แม้แต่บุคคลที่ไม่มีการศึกษาพิเศษก็สามารถเริ่มพัฒนาโปรแกรมได้ สิ่งสำคัญคือความปรารถนาและความปรารถนาที่จะเรียนรู้เนื้อหาใหม่และการฝึกฝนอย่างต่อเนื่อง

ทางเลือกการศึกษา

จะเริ่มเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้นได้ที่ไหน มีหลายวิธีในการฝึกฝนเนื้อหาใหม่ในด้านนี้ ครูส่วนตัวจะบอกวิธีเริ่มเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้นและสอนคุณ ประเด็นสำคัญรหัสโปรแกรมอาคาร อย่างไรก็ตาม วิธีนี้ค่อนข้างแพง ดังนั้นจึงใช้วิธีการฝึกอบรมต่อไปนี้เป็นหลัก:

  1. หลักสูตรเฉพาะทาง ค่าใช้จ่ายน้อยกว่าบทเรียนจากครูสอนพิเศษส่วนตัวมาก เป็นที่น่าสังเกตว่านายจ้างจำนวนมากตอบสนองเชิงบวกต่อความพร้อมของใบรับรองการฝึกอบรมในสถาบันคอมพิวเตอร์ที่หลากหลาย ให้ความสนใจกับหลักสูตรของบริษัทชื่อดังระดับโลกอย่าง Microsoft และ Cisco
  2. ลบแล้ว หลักสูตรฟรี- อินเตอร์เน็ตเป็นอย่างมาก จำนวนมากบริการที่คุณสามารถดูหลักสูตรการบรรยายจาก Oxford, Harvard และที่มีชื่อเสียงอื่น ๆ สถาบันการศึกษาความสงบ. นอกจากนี้ยังมีแพลตฟอร์มพิเศษสำหรับฝึกทักษะการเขียนโปรแกรมเชิงปฏิบัติ อ่านเพิ่มเติมเกี่ยวกับการเรียนรู้ระยะไกลและบริการอินเทอร์เน็ตที่เป็นประโยชน์เพิ่มเติมในบทความ
  3. การเรียนรู้ด้วยตนเอง จะเริ่มเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้นได้ที่ไหนหากคุณไม่ได้วางแผนที่จะลงทะเบียนเรียนหลักสูตรและใช้จ่ายเงิน? ในกรณีนี้ วิธีที่ง่ายที่สุดคือการให้ความรู้แก่ตนเอง ควรเริ่มเรียนด้วยการอ่านพื้นฐาน ไม่ต้องเจาะลึกทฤษฎี เริ่มฝึกทันที เพราะเฉพาะในกระบวนการสร้างโปรแกรมเท่านั้นที่คุณจะได้รับทักษะที่จำเป็น

หลังจากเลือกตัวเลือกการฝึกอบรมที่เหมาะกับคุณแล้ว คุณควรตัดสินใจเลือกสาขาวิชา เนื่องจากการเขียนโปรแกรมมีสาขาที่แตกต่างกันค่อนข้างมาก

วิธีการเลือกทิศทางที่ถูกต้อง?

ขึ้นอยู่กับประเภทของซอฟต์แวร์ที่คุณจะสร้างในอนาคตโดยตรง:

หากเงินเดือนเป็นปัจจัยที่สำคัญที่สุดสำหรับคุณ ให้หันความสนใจไปที่ตลาดงาน ในปัจจุบัน นักพัฒนาที่เชี่ยวชาญด้านภาษา Java, C#, ASP.NET, C++ เป็นที่ต้องการมากที่สุด

ภาษาระดับต่ำและระดับสูง ความแตกต่างและการประยุกต์

เชื่อกันว่าภาษาการเขียนโปรแกรมทั้งหมดแบ่งออกเป็นระดับสูงและระดับต่ำ รหัส ระดับต่ำคอมพิวเตอร์ประมวลผลได้ง่ายกว่า แต่การเขียนใช้เวลานานและต้องใช้ความรู้เพิ่มเติม สาขาวิชา- ภาษาดังกล่าว (เช่น แอสเซมเบลอร์) ใช้สำหรับเขียนซอฟต์แวร์ ชิปดิจิตอลและไมโครคอนโทรลเลอร์ ไม่สะดวกสำหรับการเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้น บริการและวรรณกรรมที่เป็นประโยชน์จากนักเขียนชื่อดังระดับโลกที่ให้ไว้ในบทความนี้จะบอกคุณว่าจะเริ่มเขียนโปรแกรมแรกของคุณที่ไหน

ภาษาระดับสูงใช้งานง่ายกว่ามากเนื่องจากใช้ไลบรารี่ในตัวเพื่อลดความซับซ้อนและแสดงภาพโค้ด ซอฟต์แวร์ที่ทันสมัยที่สุดเขียนโดยใช้ภาษา ระดับสูง.

การเขียนโปรแกรมตั้งแต่เริ่มต้น: จะเริ่มแอปพลิเคชันได้ที่ไหน?

กระบวนการสร้างโปรแกรมมือถือช่วยให้โปรแกรมเมอร์ทำงานกับเครื่องมือล่าสุดและส่งผลให้ได้รับเงินจำนวนที่เหมาะสมจากการสร้างรายได้ ก่อนอื่นคุณต้องเลือกไซต์ที่คุณจะทำงาน:

  1. Google Play ที่เก็บแอปพลิเคชันสำหรับผู้ใช้ระบบปฏิบัติการ Android ระบบปฏิบัติการนี้มีส่วนแบ่งผู้ใช้มากที่สุดในตลาด ภาษา Java และ C/C++ ใช้เพื่อพัฒนาแอปพลิเคชันและเกม แอปพลิเคชั่น Messenger ที่ได้รับความนิยมมากที่สุดคือไคลเอนต์ เครือข่ายทางสังคม, ที่เก็บข้อมูลบนคลาวด์, เกม
  2. วินโดวส์โมบายสโตร์ ร้านนี้กำลังได้รับความนิยมอย่างรวดเร็วพร้อมกับสมาร์ทโฟนจากไมโครซอฟต์ ในประเทศ CIS ผู้ใช้ส่วนใหญ่ชอบแท็บเล็ตที่มี แพลตฟอร์มวินโดวส์โทรศัพท์. แอปพลิเคชันการเขียนโปรแกรมสำหรับร้านค้าดังกล่าวช่วยให้คุณสร้างรายได้ เงินมากขึ้นเกี่ยวกับการสร้างรายได้เพราะไม่เหมือนกับ Android ตรงที่โปรแกรมเกือบทั้งหมดใน Windows store มีการแจกจ่ายแบบชำระเงิน
  3. แอพสโตร์ อีกหนึ่งแพลตฟอร์มที่ทำกำไรได้สำหรับการพัฒนา (ภาษา - Objective-C) กระบวนการสร้างโปรแกรมให้กับอุปกรณ์ แอปเปิลต้องมีสภาพแวดล้อมการพัฒนาที่ติดตั้งไว้ล่วงหน้าที่เรียกว่า Xcode ขั้นตอนต่อไปคือการเรียนรู้การเขียนโปรแกรม Objective-C ตั้งแต่เริ่มต้น หนังสือของ David Mark “Learning C for Mac” จะบอกคุณว่าจะเริ่มเขียนโค้ดได้จากที่ไหน ฉบับที่สอง”

ภาษาจาวา

ส่วนใหญ่ นักพัฒนามืออาชีพขอแนะนำให้เริ่มเรียนรู้การเขียนโปรแกรมด้วยภาษา Java มันง่ายต่อการเรียนรู้และเป็นที่ต้องการของตลาดในขณะเดียวกัน ใช้เคล็ดลับด้านล่างหากคุณตัดสินใจที่จะเรียนรู้การเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มต้นการพัฒนา Java ได้ที่ไหน?

Java เป็นภาษาโปรแกรมเชิงวัตถุระดับสูงที่จำเป็นสำหรับการพัฒนาส่วนใหญ่ แอพพลิเคชั่นเว็บที่ทันสมัยและเกม กระบวนการคอมไพล์ (การเปลี่ยนโค้ดที่เขียนเป็นภาษาที่อุปกรณ์สามารถเข้าใจได้) เปลี่ยนโค้ดให้เป็นลำดับไบต์ จึงสามารถทดสอบโปรแกรมบนเครื่องเสมือน Java ได้อย่างง่ายดาย

การเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มต้นด้วยการเขียนโค้ด Java และเว็บได้ที่ไหน

ภาษา Java ใช้กันอย่างแพร่หลายในการพัฒนาเว็บ ก่อนที่คุณจะเริ่มกระบวนการเขียนโปรแกรมอย่างเต็มรูปแบบ คุณควรเรียนรู้ Java, PHP, MySQL, HTML, CSS คำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับแนวคิดเหล่านี้มีดังต่อไปนี้:

  1. Java - ใช้ในการเขียนยูทิลิตี้สำหรับเว็บไซต์และการเขียนตรรกะของการทำงานของหน้าเว็บ
  2. PHP - ภาษาสำหรับการสร้าง หน้าส่วนตัวเว็บไซต์ มีโครงสร้างสคริปต์ ภาษาชั้นนำในการสร้างเว็บไซต์แบบไดนามิกที่ได้รับความนิยมในปัจจุบัน PHP จำเป็นสำหรับการทำความเข้าใจการเขียนสคริปต์และการเขียนโปรแกรมตั้งแต่เริ่มต้น จะเริ่มตรงไหน? จากการอ่านหนังสือของ Josh Lockhat เรื่อง PHP: The Right Way
  3. MySQL เป็นระบบสำหรับจัดการพื้นฐานของข้อมูล ใช้กันอย่างแพร่หลายในการสร้างเว็บไซต์ที่ต้องการพื้นที่เก็บข้อมูล ปริมาณมากข้อมูลที่ถูกจัดกลุ่ม
  4. HTML ไม่ใช่ภาษาการเขียนโปรแกรม นี่คือภาษามาร์กอัปที่ใช้ในการเขียนฐานของเว็บเพจ (แบบเอกสารสำเร็จรูป การกระจายข้อความและย่อหน้า และอื่นๆ)
  5. 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 มีลักษณะดังต่อไปนี้:

  1. ชื่อชั้นเรียนต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ หากชื่อประกอบด้วยคำหลายคำ ชื่อที่สองจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่
  2. หากใช้คำหลายคำเพื่อสร้างวิธีการ คำที่สองจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่
  3. การประมวลผลเริ่มต้นด้วยเมธอด 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 = จุดใหม่ ()

ได้รับวิธีการและคุณสมบัติทั้งหมดของคลาสด้วยความช่วยเหลือในการโต้ตอบกับวัตถุอื่น วัตถุหนึ่งสามารถใช้ได้หลายครั้งภายใต้ตัวแปรที่ต่างกัน

    จุด p = จุดใหม่ ()

    คลาสสองคะแนน (

    โมฆะคงสาธารณะหลัก (String args) (

    จุด p1 = จุดใหม่ ();

    จุด p2 = จุดใหม่ ();

    ตัวแปรวัตถุและวัตถุเป็นเอนทิตีที่แตกต่างกันโดยสิ้นเชิง ตัวแปรวัตถุมีการอ้างอิง พวกเขาสามารถชี้ไปที่ตัวแปรที่ไม่ใช่ชนิดดั้งเดิมได้ ต่างจาก C++ ตรงที่การแปลงประเภทได้รับการควบคุมอย่างเข้มงวด

    สาขาและวิธีการ

    ฟิลด์คือตัวแปรทั้งหมดที่เกี่ยวข้องกับคลาสหรืออ็อบเจ็กต์ โดยค่าเริ่มต้นจะเป็นแบบโลคัลและไม่สามารถใช้ในคลาสอื่นได้ หากต้องการเข้าถึงช่องต่างๆ ให้ใช้ตัวดำเนินการ “”:

    • classname.ตัวแปร

    คุณสามารถตั้งค่าฟิลด์คงที่ได้โดยใช้คีย์ คำคงที่- ฟิลด์ดังกล่าวเป็นวิธีเดียวที่จะจัดเก็บตัวแปรโกลบอล นี่เป็นเพราะว่า Java ไม่มีตัวแปรโกลบอล

    ใช้ความสามารถในการนำเข้าตัวแปรเพื่อเข้าถึงจากแพ็คเกจอื่น:

    • นำเข้าชื่อคลาสคงที่

    Method เป็นรูทีนย่อยสำหรับคลาสที่ถูกประกาศ อธิบายในระดับเดียวกับตัวแปร มันถูกระบุเป็นฟังก์ชันและสามารถเป็นประเภทใดก็ได้ รวมถึงโมฆะด้วย:

    • คลาสพอยต์ (int x, y;

      เป็นโมฆะ init (int a, int b) (

    ในตัวอย่างข้างต้น คลาส Point มีจำนวนเต็ม x และ y ซึ่งเป็นวิธีการ init() วิธีการต่างๆ เช่น ตัวแปร เข้าถึงได้โดยใช้ตัวดำเนินการ ""

    • จุด.init();

    คุณสมบัติ init ไม่ส่งคืนสิ่งใดดังนั้นจึงมี ประเภทเป็นโมฆะ.

    ตัวแปร

    ในบทช่วยสอนภาษาการเขียนโปรแกรม Java ตัวแปรจะอยู่ในตำแหน่งพิเศษ ตัวแปรทั้งหมดมีประเภทเฉพาะ โดยจะกำหนดตำแหน่งที่จำเป็นสำหรับการจัดเก็บค่า ช่วงของค่าที่เป็นไปได้ และรายการการดำเนินการ ก่อนที่จะสามารถจัดการค่าได้ จะมีการประกาศตัวแปรก่อน

    สามารถประกาศตัวแปรหลายตัวพร้อมกันได้ เครื่องหมายจุลภาคใช้เพื่อแสดงรายการ:

    • int ก, ข, ค;

    การเริ่มต้นเกิดขึ้นหลังหรือระหว่างการประกาศ:

    int a = 10, b = 10;

    มีหลายประเภท:

    • ตัวแปรท้องถิ่น (ท้องถิ่น);
    • ตัวแปรอินสแตนซ์
    • ตัวแปรคงที่ (คงที่)

    ตัวแปรท้องถิ่นจะถูกประกาศในเมธอดและคอนสตรัคเตอร์ ซึ่งจะถูกสร้างขึ้นเมื่อมีการรันและทำลายเมื่อเสร็จสิ้น สำหรับพวกเขา ห้ามระบุตัวแก้ไขการเข้าถึงและควบคุมระดับความพร้อมใช้งาน ไม่สามารถมองเห็นได้นอกบล็อกที่ประกาศ ใน Java ตัวแปรไม่มีค่าเริ่มต้น ดังนั้นจึงจำเป็นต้องกำหนดก่อนใช้งานครั้งแรก

    ตัวแปรอินสแตนซ์จะต้องประกาศภายในชั้นเรียน ใช้เป็นวิธีการ แต่สามารถเข้าถึงได้หลังจากสร้างออบเจ็กต์แล้วเท่านั้น ตัวแปรจะถูกทำลายเมื่อวัตถุถูกทำลาย ตัวแปรอินสแตนซ์ต่างจากตัวแปรในเครื่องตรงที่มีค่าเริ่มต้น:

    • ตัวเลข - 0;
    • ตรรกะ - เท็จ;
    • ลิงก์เป็นโมฆะ

    ตัวแปรคงที่เรียกว่าตัวแปรคลาส ชื่อของพวกเขาขึ้นต้นด้วยสัญลักษณ์ใน ตัวพิมพ์ใหญ่ถูกระบุโดยตัวแก้ไขแบบคงที่ พวกมันถูกใช้เป็นค่าคงที่ ดังนั้นจึงมีการเพิ่มตัวระบุหนึ่งตัวจากรายการเข้าไป:

    • สุดท้าย;
    • ส่วนตัว;
    • สาธารณะ

    พวกมันถูกเปิดใช้งานเมื่อเริ่มต้นโปรแกรมและถูกทำลายหลังจากหยุดการดำเนินการ เช่นเดียวกับตัวแปรอินสแตนซ์ พวกมันมีค่ามาตรฐานที่กำหนดให้กับตัวแปรว่าง ตัวเลขมีค่าเป็น 0 ตัวแปรบูลีนมีค่าเป็นเท็จ และการอ้างอิงวัตถุจะเป็นโมฆะตั้งแต่แรก ตัวแปรคงที่ถูกเรียกเข้า แบบฟอร์มต่อไปนี้:

    • ClassName.VariableName.

    คนเก็บขยะ

    ในบทช่วยสอน "ภาษาการเขียนโปรแกรม 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:

    • รุ่นมาตรฐาน
    • รุ่นองค์กร
    • รุ่นไมโคร.
    • การ์ด.

    1. SE - เป็นพื้นฐานที่ใช้กันอย่างแพร่หลายในการสร้าง แอปพลิเคชันที่กำหนดเองสำหรับการใช้งานส่วนบุคคล
    2. EE คือชุดข้อกำหนดสำหรับการพัฒนาซอฟต์แวร์ระดับองค์กร ประกอบด้วย ความเป็นไปได้มากขึ้นกว่า SE และดังนั้นจึงถูกนำมาใช้ในเชิงพาณิชย์ในองค์กรขนาดใหญ่และขนาดกลาง
    3. ME - ออกแบบมาสำหรับอุปกรณ์ที่มีพลังงานและหน่วยความจำจำกัด โดยมักจะมีขนาดจอแสดงผลเล็ก อุปกรณ์ดังกล่าว ได้แก่ สมาร์ทโฟนและพีดีเอเครื่องรับ โทรทัศน์ระบบดิจิตอล.
    4. การ์ด - ออกแบบมาสำหรับอุปกรณ์ที่มีทรัพยากรการประมวลผลจำกัดมาก เช่น สมาร์ทการ์ด ซิมการ์ด ตู้ ATM เพื่อวัตถุประสงค์เหล่านี้ ไบต์โค้ด ข้อกำหนดของแพลตฟอร์ม และส่วนประกอบไลบรารีจึงมีการเปลี่ยนแปลง

    แอปพลิเคชัน

    โปรแกรมที่เขียนด้วยภาษาโปรแกรม Java มักจะช้าลงและใช้ RAM มากกว่า การวิเคราะห์เปรียบเทียบภาษา Java และ C แสดงให้เห็นว่า C มีประสิทธิผลมากกว่าเล็กน้อย หลังจากการเปลี่ยนแปลงและการเพิ่มประสิทธิภาพมากมาย เครื่องเสมือน Java ได้ปรับปรุงประสิทธิภาพการทำงาน

    ใช้งานอย่างแข็งขันสำหรับแอปพลิเคชัน Android โปรแกรมถูกคอมไพล์เป็นไบต์โค้ดที่ไม่ได้มาตรฐานและดำเนินการบนเครื่องเสมือน ART สำหรับการคอมไพล์จะใช้ แอนดรอยด์สตูดิโอ- IDE จาก Google นี้เป็นเวอร์ชันอย่างเป็นทางการสำหรับการพัฒนา Android

    ไมโครซอฟต์พัฒนาขึ้น การดำเนินการของตัวเองเครื่องเสมือน Java MSJVM มันมีความแตกต่างที่ทำลายแนวคิดพื้นฐานของข้ามแพลตฟอร์ม - ไม่มีการรองรับเทคโนโลยีและวิธีการบางอย่าง มีส่วนขยายที่ไม่ได้มาตรฐานซึ่งใช้งานได้บนแพลตฟอร์ม Windows เท่านั้น Microsoft เปิดตัวภาษา J# ซึ่งมีไวยากรณ์และการทำงานโดยรวมคล้ายกับ Java มาก มันไม่เป็นไปตามข้อกำหนดอย่างเป็นทางการและในที่สุดก็ถูกลบออกจากชุดเครื่องมือนักพัฒนา Microsoft Visual Studio มาตรฐาน

    ภาษาและสภาพแวดล้อมการเขียนโปรแกรมจาวา

    การพัฒนาซอฟต์แวร์ดำเนินการใน IDE ต่อไปนี้:

    1. NetBeans IDE
    2. คราส IDE
    3. IntelliJ IDEA.
    4. เจ ดีเวลลอปเปอร์
    5. จาวาสำหรับ iOS
    6. จีนี่.

    JDK เผยแพร่โดย Oracle ในรูปแบบชุดพัฒนา Java ประกอบด้วยคอมไพเลอร์ ไลบรารีมาตรฐาน ยูทิลิตี้ และระบบบริหาร สภาพแวดล้อมการพัฒนาแบบรวมสมัยใหม่อาศัย JDK

    สะดวกในการเขียนโค้ดในภาษาการเขียนโปรแกรม Java ใน Netbeans และ Eclipse IDE สภาพแวดล้อมการพัฒนาแบบผสานรวมฟรีเหล่านี้เหมาะสำหรับแพลตฟอร์ม Java ทั้งหมด ยังใช้สำหรับการเขียนโปรแกรมใน Python, PHP, JavaScript, C++

    IntelliJ IDE จาก Jetbrains มีจำหน่ายสองเวอร์ชัน: ฟรีและเชิงพาณิชย์ รองรับการเขียนโค้ดในภาษาการเขียนโปรแกรมหลายภาษา มีปลั๊กอินของบุคคลที่สามจากนักพัฒนาที่ใช้งานมากกว่านี้ มากกว่าใช่แล้ว

    JDeveloper - การพัฒนาอื่นจาก ออราเคิล- เขียนด้วยภาษา Java อย่างสมบูรณ์ ดังนั้นจึงใช้ได้กับทุกระบบปฏิบัติการ