Từ Khóa Static Trong Java

Cập nhật thông tin chi tiết về Từ Khóa Static Trong Java mới nhất ngày 21/10/2020 trên website Doisonggiaitri.com. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến thời điểm hiện tại, bài viết này đã đạt được 6,534 lượt xem.

Từ khóa static trong Java được sử dụng chính để quản lý bộ nhớ. Chúng ta có thể áp dụng từ khóa static với các biến, các phương thức, các khối, các lớp lồng nhau(nested class). Từ khóa static thuộc về lớp chứ không thuộc về instance(thể hiện) của lớp.

Trong java, Static có thể là:

  1. Biến static: Khi bạn khai báo một biến là static, thì biến đó được gọi là biến tĩnh, hay biến static.
  2. Phương thức static: Khi bạn khai báo một phương thức là static, thì phương thức đó gọi là phương thức static.
  3. Khối static: Được sử dụng để khởi tạo thành viên dữ liệu static.

1. Biến static trong Java

Khi bạn khai báo một biến là static, thì biến đó được gọi là biến tĩnh, hay biến static.

  1. Biến static có thể được sử dụng để tham chiếu thuộc tính chung của tất cả đối tượng (mà không là duy nhất cho mỗi đối tượng), ví dụ như tên công ty của nhân viên, tên trường học của các sinh viên, …
  2. Biến static lấy bộ nhớ chỉ một lần trong Class Area tại thời gian tải lớp đó.

Lợi thế của biến static

Sử dụng biến static giúp chương trình của bạn sử dụng bộ nhớ hiệu quả hơn (tiết kiệm bộ nhớ).

Vấn đề khi không sử dụng biến static

class Student{  
     int rollno;  
     String name;  
     String college="Bưu Chính Viễn Thông";  
}

Giả sử có 1000 sinh viên trong trường đại học, bây giờ instance của các dữ liệu thành viên sẽ sự dụng bộ nhớ mỗi khi đối tượng được tạo. Tất cả sinh viên có rollno và name là thuộc tính riêng. Tuy nhiên, college là thuộc tính chung của tất cả đối tượng. Nếu chúng ta tạo nó là static, thì trường này sẽ chỉ sử dụng bộ nhớ một lần để lưu biến này.

Ghi chú: Thuộc tính static trong Java được chia sẻ tới tất cả đối tượng.

Ví dụ về biến static trong java

public class Student8 {
    int rollno;
    String name;
    static String college = "Bưu Chính Viễn Thông";

    Student8(int r, String n) {
        rollno = r;
        name = n;
    }

    void display() {
        System.out.println(rollno + " - " + name + " - " + college);
    }

    public static void main(String args[]) {
        Student8 s1 = new Student8(111, "Thông");
        Student8 s2 = new Student8(222, "Minh");

        s1.display();
        s2.display();
    }
}

Kết quả:

111 - Thông - Bưu Chính Viễn Thông
222 - Minh - Bưu Chính Viễn Thông

Chương trình đếm số không sử dụng biến static trong java

Trong ví dụ dưới đây, chúng ta tạo một biến instance có tên count mà được tăng lên trong constructor. Khi biến instance này lấy bộ nhớ tại thời điểm tạo đối tượng, mỗi đối tượng sẽ có bản sao của biến instance đó, nếu nó được tăng lên, nó sẽ không ảnh hướng đến các đối tượng khác. Vì thế mỗi đối tượng sẽ có giá trị 1 trong biến count.

public class Counter1 {
    int count = 0; // sẽ lấy bộ nhớ khi instance được tạo ra

    Counter1() {
        count++;
        System.out.println(count);
    }

    public static void main(String args[]) {

        Counter1 c1 = new Counter1();
        Counter1 c2 = new Counter1();
        Counter1 c3 = new Counter1();

    }
}

Kết quả:

Chương trình đếm số có sử dụng biến static trong java

Như bạn đã thấy ở trên, biến static sẽ lấy bộ nhớ chỉ một lần, nếu bất cứ đối tượng nào thay đổi giá trị của biến static, nó sẽ vẫn ghi nhớ giá trị của nó.

public class Counter2 {
    static int count = 0; // sẽ lấy bộ nhớ chỉ một lần

    Counter2() {
        count++;
        System.out.println(count);
    }

    public static void main(String args[]) {

        Counter2 c1 = new Counter2();
        Counter2 c2 = new Counter2();
        Counter2 c3 = new Counter2();

    }
}

Kết quả:

2. Phương thức static trong Java

Nếu bạn áp dụng từ khóa static với bất cứ phương thức nào, thì phương thức đó được gọi là phương thức static.

  1. Một phương thức static thuộc lớp chứ không phải đối tượng của lớp.
  2. Một phương thức static gọi mà không cần tạo một instance của một lớp.
  3. Phương thức static có thể truy cập biến static và có thể thay đổi giá trị của nó.

Ví dụ về phương thức static trong Java

public class Student9 {
    int rollno;
    String name;
    static String college = "Bưu Chính Viễn Thông";

    static void change() {
        // Thay đổi thuộc tính static (thuộc tính chung của tất cả các đối tượng)
        college = "Đại Học Công Nghệ";
    }

    Student9(int r, String n) {
        rollno = r;
        name = n;
    }

    void display() {
        System.out.println(rollno + " - " + name + " - " + college);
    }

    public static void main(String args[]) {
        Student9.change();

        Student9 s1 = new Student9(111, "Thông");
        Student9 s2 = new Student9(222, "Minh");
        Student9 s3 = new Student9(333, "Anh");

        s1.display();
        s2.display();
        s3.display();
    }
}

Kết quả:

111 - Thông - Đại Học Công Nghệ
222 - Minh - Đại Học Công Nghệ
333 - Anh - Đại Học Công Nghệ

Sự hạn chế của phương thức static

Có hai hạn chế chính đối với phương thức static. Đó là:

  1. Phương thức static không thể sử dụng biến non-static hoặc gọi trực tiếp phương thức non-static.
  2. Từ khóa this và super không thể được sử dụng trong ngữ cảnh static.

Ví dụ:

class A {
    int a = 40;// non static

    public static void main(String args[]) {
        System.out.println(a);
    }
}

Kết quả:

3. Khối static trong Java

  1. Được sử dụng để khởi tạo thành viên dữ liệu static.
  2. Nó được thực thi trước phương thức main tại lúc tải lớp.

Ví dụ về khối static trong Java

public class A2 {
    static {
        System.out.println("Khối static: hello !");
    }

    public static void main(String args[]) {
        System.out.println("Main: hello !");
    }
}

Kết quả:

Khối static: hello !
Main: hello !

Câu hỏi: Tại sao phương thức main trong Java là static?

Bởi vì không cần thiết phải tạo đối tượng để gọi phương thức static. Nếu nó là phương thức non-static, JVM đầu tiên tạo đối tượng và sau đó gọi phương thức main() mà có thể gây ra vấn đề về cấp phát bộ nhớ bộ nhớ phụ.

Câu hỏi: Chúng ta có thể thực thi một chương trình mà không có phương thức main()?

Có, một trong các cách đó là khối static trong phiên bản trước của JDK. Không phải là JDK 1.7

Ví dụ:

public class A3 {
    static {
        System.out.println("static block is invoked");
        System.exit(0);
    }
}

Kết quả: (TH < jdk7)

Kết quả: (TH >= jdk7)

Error: Main method not found in class A3, please define the main method as:
public static void main(String[] args)

Liên quan

Giải Vbt Vật Lý Lớp 6 - Xem 34,254

Giải bài tập môn Vật lý 6 Giải VBT Vật lý lớp 6 – Bài 8: Trọng lực – Đơn vị lực là tài liệu tham khảo môn Vật lý 6 hay dành cho các em học sinh, giúp các em ôn tập và củng cố kiến thức đã học ... Lực thứ nhất là lực kéo của dây gàu; lực thứ hai là trọng lực của gàu nước. Lực kéo do dây gàu tác dụng vào gàu. Trọng lượng do Trái Đất tác dụng vào gàu (H.8.1a). b) Một quả chanh nổi lơ lửng trong một cốc nước muối; lực đẩy


Ethernet Switch Có Chức Năng Gì? - Xem 29,304

Ethernet Switch có chức năng gì? Switch là một thiết bị chọn lựa đường dẫn để gửi frame đến đích, hoạt động ở Lớp 2 của mô hình OSI. Đôi khi Switch còn được gọi là Bridge đa port hay Hub chuyển mạch. Switch quyết định chuyển frame dựa trên ... Switch quyết định chuyển frame dựa trên địa chỉ MAC, do đó nó được xếp vào thiết bị Lớp 2. Chính nhờ Switch có khả năng lựa chọn đường dẫn để quyết định chuyển frame nên mạng LAN có thể hoạt động hiệu quả hơn. Switch nhận biết máy nào kết nối với cổng của nó bằng cách học địa chỉ MAC nguồn trong frame mà nó nhận


Oxit Axit Là Gì? Tính Chất Hóa Học Và Hướng Dẫn Bài Tập Oxit Axit - Xem 23,463

Oxit axit là các oxit khi tác dụng với nước sẽ tạo ra axit, tác dụng với kiềm tạo thành muối hóa học. Oxit axit thường là oxit của phi kim ứng với một axit hoặc kim loại có hóa trị cao. Vậy tính chất hóa học của oxit axit ... Vậy tính chất hóa học của oxit axit là gì? Cách giải bài tập oxit axit tác dụng với bazo như thế nào? Cách gọi tên oxit axit Tên oxit axit: (Tên tiền tố chỉ số nguyên tử của phi kim) + Tên phi kim + (tên tiền tố chỉ số nguyên tử oxi) + ''Oxit'' Tính chất hóa học của oxit axit Trừ SiO 2 thì hầu hết các oxit axit đều tan trong nước để tạo thành dung dịch axit. Tác dụng với oxit bazo tan để tạo


Drama Là Gì ? Ý Nghĩa Của Từ Drama Trên Facebook Là Gì? - Xem 20,889

Xã hội ngày càng phát triển kéo theo nhiều trào lưu xuất hiện, các thuật ngữ, ngôn từ mới lạ ngày càng nhiều trên các mạng. Những nội dung, các câu chuyện có tính chất kịch tính, gay cấn kéo dài luôn dành được sự quan tâm của các bạn ... Hay xem cho thỏa lòng của các bạn rồi trở thành những anh hùng bàn phím. Vội phán xét người khác, quy chụp định tội họ một cách phiến diện. Nhất là khi chưa rõ sự thật có phải đúng là những gì được thông tin đưa ra hay không. Để rồi đôi khi hệ lụy là những câu chuyện thương tâm đẩy người trong


Đa Dạng Sinh Học Là Gì? Nguyên Nhân, Biện Pháp Hạn Chế Suy Giảm Đa Dạng Sinh Học - Xem 20,394

Đa dạng sinh học là sự phong phú của nhiều nhiều dạng, loài và các biến dị di truyền của mọi sinh vật trong đời sống tự nhiên, sự đa dạng và phong phú này được chia làm nhiều cấp độ tổ chức sinh giới đặc biệt là với các ... Ngoài ra tính đa dạng của sinh học cũng được quy ước ở một số lượng xác định với nhiều đối tượng khác nhau, tính giá trị cũng được thể hiện ở tần số xác định của chúng, và đươc biểu trưng bằng nhiều cấp độ khác nhau chính và chúng có những chuyển biến từ phức tạp đến các cấu trúc hóa học là cơ sở phân tử của thế giới di truyền. Chúng ta cũng có thể tìm hiểu thêm


Z Là Gì Trong Toán Học? - Xem 18,216

Bạn có từng nghe về tập hợp R trong toán học chưa? Hẳn là rất rất quen phải không? Dĩ nhiên rồi vì lớp 6 lớp 7 chúng ta được học cái này mà. Vậy Z là gì trong toán học nhỉ? “Tập hợp Z là tập hợp các số ... Tương tự như các tập hợp số khác, tập hợp Z cũng là một tập hợp vô hạn. Ví dụ về các bài toán sử dụng tập hợp z- (số nguyên) Trong toán học, các dạng bài tập về số nguyên thường rất đa dạng. Nhưng loại tập hợp này thường chỉ được ra điều kiện trong một bài toán khó. Hoặc ở các chương trình nhỏ hơn chẳng hạn toán lớp 6, số nguyên lại được sử dụng như một bài toán


Tb Là Gì Trên Facebook? - Xem 18,018

TB nghĩa là gì? TB là viết tắt của từ gì? TB là 1 từ viết tắt có rất nhiều nghĩa tiếng việt và tùy từng ngữ cảnh mà ta hiểu nó sẽ có nghĩa là gì, dưới đây là các nghĩa hay được sử dụng nhất của từ viết ... Đơn vị này cao cấp hơn Gigabyte - GB. 1 TB = 1024 GB 5 TB = 5120 GB 10 TB = 10240 GB Ví dụ: Bạn có ổ cứng dung lượng 2 TB tức là ổ cứng của bạn bằng 2048 GB Một bộ phim, thư mục, video có dung lượng 1TB tức là 1048 GB -phim HD dung lượng cao. Vậy nếu bạn thấy đứng đằng trước TB là 1 con số thì nó thường là viết tắt của cụm từ Terabyte TB trên Facebook nghĩa là gì? Đối với


Kimochi Yamate Là Gì? Ý Nghĩa Của I Cư Kimochi Yamete Trong Tiếng Nhật? - Xem 16,731

Kimochi Yamate hay i cư kimochi và i kư kimochi là những thuật ngữ, cụm từ được sử dụng khả phổ biến trong thời đại hiện nay. Nhưng bạn có thật sự hiểu được nghĩa của từ kimochi là gì? Ở bài viết dưới đây, Doisonggiaitri.com sẽ giải đáp toàn ... Nhưng bạn có thật sự hiểu được nghĩa của từ kimochi là gì? Ở bài viết dưới đây, chúng tôi sẽ giải đáp toàn bộ thắc mắc về hay Kimochi Yamate. Mời các bạn cùng tham khảo. Kimochi là gì? Nhắc đến Kimochi thì hầu như ai cũng biết đây là âm thanh quen thuộc được nhắc đến tại xứ sở hoa anh đào - Nhật Bản. Và ở trong tiếng Nhật thì Kimochi là từ nghĩa mang hàm ý biểu đạt cảm xúc,


Mã Zip Iphone Là Gì? - Xem 15,642

Zip Code (mã zip) là một trong những khái niệm không quá xa lạ đối với thế hệ trẻ. Chúng liên quan trực tiếp tới quy trình giao – Nhận bưu kiện khi mua sắm online hay đặt hàng thông qua các ứng dụng giao dịch trực tuyến. Không chỉ ... Tiếp đó là một khoảng trắng và cuối cùng là một mã số tùy ý gồm một và hai chữ cái khác nhau. Mã Zip Code iPhone có gì khác biệt với các mã Zip khác? Zip Code iPhone là mã zip được Apple bổ sung trên các dòng điện thoại nhằm hỗ trợ quá trình vận chuyển tới người nhận. Những mã này thường xuất hiện trên các website có hỗ trợ dịch vụ đặt mua - Thanh toán thiết bị do Apple phân phối.


Từ Hán Việt Là Gì? Các Từ Hán Việt Thường Gặp & Giải Nghĩa - Xem 15,444

Bài học hôm này các em sẽ làm quen với khái niệm từ Hán Việt là gì? các từ Hán Việt thường gặp và một số thông tin quan trọng về vai trò, cách nhận viết và ví dụ của từ Hán Việt. Kiến thức này nằm trong chương trinh ... Còn hôn phu, hôn quân lại mang nghĩa hoàn toàn khác đó là chỉ người chồng, vua tệ bạc. - Không phân biệt tiếng Hán Việt và tiếng thuần Việt. - Lạm dụng từ Hán Việt. Ví dụ "tặc" chỉ ăn cướp nhưng nếu dùng "cát tặc", "vàng tặc" về mặt ngữ pháp là SAI. - Hiểu sai nghĩa thành ra viết sai. Ví dụ như "tham quan" viết thành "thăm quan" => 2 nghĩa hoàn toàn khác


Đề xuất

File Tiff, Jpeg Và Raw Trong Chụp Ảnh Là Gì? Có Gì Khác Nhau? - Xem 5,445

Đa phần các máy ảnh số hiện đại đều cho người dùng chọn định dạng lưu ảnh chụp, bao gồm file tiff, jpeg và raw. Vậy các định dạng file này có ý nghĩa gì và khác nhau ra sao? Cùng Điện máy XANH tìm hiểu nhé! 1 File JPEG ... Sau khi quá trình xử lý hoàn tất, ảnh sẽ được chuyển đến bộ nhớ tạm và cuối cùng là lưu vào thẻ nhớ. Ưu điểm của ảnh JPEG là ít tốn dung lượng, tuy nhiên nhược điểm của nó là phạm vi chỉnh sửa hạn chế hơn ảnh


Ý Nghĩa Chữ Phúc Trong Tiếng Hán Là Gì? - Xem 10,296

Mỗi dịp tết đến xuân về mọi người đều chúc phúc cho nhau, chúc nhau Phúc lộc đầy nhà và nhiều nhà treo chữ Phúc để mong muốn gia đình được gặp nhiều phúc lành. Vậy Chữ phúc có ý nghĩa như thế nào trong cuộc sống hàng ngày? Cùng ... Chẳng may, có một người hầu không biết chữ đã dán ngược chữ "Phúc" lên chính giữa cánh cửa lớn của vương phủ, khiến người qua lại đều buột miệng: "福 倒 了" (Chữ Phúc dán ngược ). Nghe vậy, đám thân vương quý tộc và các mệnh phụ phu nhân thay vì giận dữ lại tỏ ra vô cùng hoan hỉ, coi đó là điềm lành, bèn cho gọi người hầu đến trọng thưởng! Trong tiếng Hán, chữ "đảo"


Ngôn Ngữ Lập Trình Plc Là Gì? #3 (Ladder, Fbd, Stl) - Xem 8,811

Ngôn ngữ lập trình là thuật ngữ dùng để nói đến việc con người sử dụng những ngôn ngữ mà PLC hiểu được để giao tiếp với nó, điều khiển nó hoạt động theo ý đồ mà người lập trình đề ra nhằm đáp ứng những yêu cầu trong thực ... Luôn chuyển đổi từ chương trình FBD sang STL. Ngôn ngữ lập trình PLC STL (Statement List) Soạn thảo chương trình theo phương pháp STL cho phép ta viết chương trình điều khiển bằng các lệnh gợi nhớ. Nói chung soạn thảo bằng STL phù hợp cho người có kinh nghiệm lập trình và đã quen với PLC cũng như cách lập trình logic. Soạn thảo bằng ngôn ngữ STL cũng cho phép ta tạo ra các chương trình mà các


Chứng Minh Nhân Dân Trong Tiếng Anh Gọi Là Gì? - Xem 6,138

Chứng minh thư hay còn gọi là chứng minh thư nhân dân, là giấy tờ tùy thân mà bất cứ công dân Việt Nam nào cũng bắt buộc phải có. Ở nước ta vào những năm 1975, thẻ căn cước (miền bắc gọi là chứng minh thư nhân dân), tức ... Một số nước khác có thể dùng " Identification Card ". Tại Việt Nam, số CMTND là một số gồm 9 chữ số, Các đầu số khác nhau được chia cho các cơ quan công An của các tỉnh thành khác nhau, hầu hết các CMND được cấp mới hiện tại có đặc điểm sau: + có hình chữ nhật + kích thước 85,6 mm x 53,98 mm + gồm 2 mặt in hoa văn màu xanh trắng nhạt, được ép nhựa trong. + Thời hạn sử dụng


Catp Khen Thưởng Phòng Pc03 - Xem 4,950

09:17 07/11/2019 Qua công tác nắm tình hình, trinh sát Phòng PC03 phát hiện Vũ Trần Hùng, sinh 1958, ở thôn Đình Ngọ, xã Hồng Phong, huyện An Dương, có dấu hiệu mua bán trái phép hóa đơn GTGT. Thượng tá Nguyễn Quang Đông, Phó trưởng Phòng PC03 báo cáo ... Thượng tá Nguyễn Quang Đông, Phó trưởng Phòng PC03 báo cáo kết quả đấu tranh chuyên án Sáng 4-11, thay mặt lãnh đạo CATP, Đại tá Lê Nguyên Trường, Phó giám đốc, Thủ trưởng Cơ quan CSĐT CATP tổ chức biểu dương và trao thưởng CBCS Phòng


Bạn đang xem bài viết Từ Khóa Static Trong Java trên website Doisonggiaitri.com. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!