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 30/09/2020 trên website Zdungk.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 3,663 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

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

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 ... Nếu có hai máy trạm được thiết lập phiên kết nối thì chúng sẽ sử dụng một lượng băng thông đáng kể và hoạt động của các thiết bị còn lại kết nối vào Hub sẽ bị giảm xuống. Để giải quyết tình trạng trên, Switch xử lý mỗi cổng là một đoạn mạng (segment) riêng biệt. Khi các máy ở các cổng khác nhau cần liên lạc với nhau, Switch sẽ chuyển frame từ cổng này sang cổng kia và


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

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


Giải Vbt Vật Lý Lớp 6 - Xem 16,830

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 ... Vì ta thấy nhà du hành vũ trụ bị treo lơ lửng trong con tàu. C. Một con tàu vũ trụ bay quanh Trái Đất vẫn bị Trái Đất hút. Nhưng lực hút này bị cân bởi lực đẩy của động


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

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 ... 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 cuộc. Nhân vật chính trong câu chuyện đến bước đường


Đ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 12,771

Đ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 ... Thuật ngữ đa dạng sinh học cũng bao trùm mức độ biến đối của thế giới tự nhiên trong đó các sinh vật là đơn vị cấu thành. Các bạn có thể tìm hiểu thêm khái niệm đa dạng sinh học là gì, giá trị đa dạng sinh học cũng như nguyên nhân và biện pháp cụ thể để hạn chế suy giảm đa dạng sinh học trong bài viết dưới đây! Thế nào là đa dạng sinh học? Đa dạng sinh học là bao gồm


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

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, Zdungk.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,


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

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ập hợp số nguyên chỉ ra các số nguyên là miền xác định nguyên duy nhất mà các phần tử dương của nó được sắp thứ tự tốt và các thứ tự đó được bảo toàn dưới phép cộng. 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.


Tb Là Gì Trên Facebook? - Xem 11,088

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


Mã Zip Iphone Là Gì? - Xem 10,593

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ỉ ... Mã zip này sẽ giúp Apple quản lý tốt hơn thiết bị, đồng thời hỗ trợ bạn trong quá trình sử dụng/ bảo hành sau này. Trong khi đó, mã Zip Code bưu điện thường không cung cấp những thông tin cơ bản về cá nhân hay phương thức thanh toán của người nhận. Các loại mã này chỉ đơn giản biểu thị địa chỉ giao - Nhận hàng nhằm hỗ trợ tối đa cho quá trình vận chuyển bưu phẩm. Mã Zip Code


Số Cvv/cvc Trên Thẻ Atm Vietcombank Là Gì? - Xem 10,395

Số Cvv/Cvc trên thẻ atm đang được rất nhiều chủ thẻ quan tâm. Nhất là với những người dùng thẻ atm Vietcombank. Vậy số Cvv/Cvc trên thẻ atm vietcombank là gì? Bị lộ có sao không? Số Cvv/Cvc trên thẻ atm vietcombank là gì? Không phải ai dùng thẻ atm ... Nhất là với những người dùng thẻ atm Vietcombank. Vậy số Cvv/Cvc trên thẻ atm vietcombank là gì? Bị lộ có sao không? Số Cvv/Cvc trên thẻ atm vietcombank là gì? Không phải ai dùng thẻ atm cũng để ý đến số Cvv/Cvc. Đó là 3 chữ số ngược được in bằng mực đen, hơi


Đề xuất

[Mp3] Real Gdp Vs Nominal Gdp - Xem 3,168

//i0.wp.com/readtoolead.com/wp-content/uploads/2018/11/Mp3-Real-GDP-vs-Nominal-GDP.mp3 Gross Domestic Product, also known as GDP, can help tell us the health of our economy. It indicates the size of our economy and the rate of our economic growth or contraction. In other words, it’s the that helps us how we are doing with the goal, a long-run ... Nói cách khác, GDP danh nghĩa có thể tăng lên đơn giản bởi vì hàng hóa và dịch vụ trở nên đắt hơn chứ không phải vì nền kinh tế thực sự tăng sản lượng và tăng trưởng GDP. Kết quả là, cách chính xác nhất để đánh giá tăng


Uống Nhiều Rượu Gây Bệnh Gì? - Xem 2,772

Trong văn hóa Việt Nam rượu là một thức uống không thể thiếu, nhất là trên bàn nhậu. Tuy nhiên uống nhiều rượu sẽ gây tổn hại lớn đến sức khỏe. Muốn biết uống nhiều rượu gây bệnh gì bạn đừng nên bỏ qua bài viết dưới đây. 1. Bệnh ... Bệnh về gan Trong tất cả các bộ phận trong cơ thể con người gan là nơi chịu tổn thương nặng nề nhất nếu uống nhiều bia rượu. Càng uống nhiều rượu và uống trong thời gian dài càng mang đến những hậu quả nặng nề cho gan. Những người nghiện


Luyện Từ Và Câu Lớp 4: Câu Kể Ai Là Gì? - Xem 2,871

Giải bài tập SGK Tiếng Việt 4 tập 2 Luyện từ và câu: Câu kể Ai là gì? Luyện từ và câu lớp 4: Câu kể Ai là gì? là lời giải phần Luyện từ và câu SGK Tiếng Việt 4 tập 2 trang 57, 58 có đáp án chi ... * Tác dụng: giới thiệu về máy cộng trừ. - Đó chính là chiếc máy tính đầu tiên trên thế giới tổ tiên của những chiếc máy tính điện tử hiện đại. * Tác dụng: nêu nhận định về giá trị của chiếc máy. b) Đó là những câu: -


Nhiễm Độc Dns Cache Là Gì ? - Xem 2,871

Nhiễm độc bộ nhớ đệm DNS (DNS cache poisoning), hay còn được gọi là giả mạo DNS, là một kiểu tấn công khai thác lỗ hổng trong hệ thống tên miền (DNS – domain name system) để chuyển hướng lưu lượng truy cập Internet từ máy chủ hợp pháp tới ... Máy tính của bạn cũng có một bộ nhớ đệm DNS địa phương, vì vậy nó có thể nhanh chóng tham khảo tra cứu hơn là thực hiện việc đó trên một máy chủ DNS khác. Nhiễm độc DNS Cache Một bộ nhớ đệm DNS có thể bị nhiễm độc nếu


Lotion Là Gì? Lotion Có Công Dụng Thế Nào Trong Chăm Sóc Làn Da Bạn - Xem 3,267

Bạn thắc mắc Lotion là gì ? Lotion có tác dụng như thế nào trong chăm sóc làn da của bạn mỗi ngày. Hãy cùng tìm hiểu trong bài viết này nhé. Lotion là gì? là sản phẩm chăm sóc da cơ bản hằng ngày giống toner và nước hoa ... Tham khảo thêm bài viết Cách dùng toner để sử dụng Lotion đúng cách và đừng quên xem thêm một bí quyết chăm sóc da mặt khác tại đây nhé. Lotion là gì? Có tác dụng dưỡng da thế nào? Tin chắc các thông tin trên đây đã giải đáp giúp


Bạn đang xem bài viết Từ Khóa Static Trong Java trên website Zdungk.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!