GP Coder

Trang chia sẻ kiến thức lập trình Java

  • Java Core
    • Basic Java
    • OOP
    • Exception Handling
    • Multi-Thread
    • Java I/O
    • Networking
    • Reflection
    • Collection
    • Java 8
  • Design pattern
    • Creational Pattern
    • Structuaral Pattern
    • Behavior Pattern
  • Web Service
    • SOAP
    • REST
  • JPA
  • Java library
    • Report
    • Json
    • Unit Test
  • Message Queue
    • ActiveMQ
    • RabbitMQ
  • All
Trang chủ Java Core Basic Java Biến trong java

Biến trong java

Đăng vào 20/10/2017 . Được đăng bởi GP Coder . 12706 Lượt xem . Toàn màn hình

Trong java, biến là tên của vùng nhớ. Có 3 kiểu biến trong java, bao gồm biến biến cục bộ (local ), biến biến toàn cục (instance) và biến tĩnh (static).

Nội dung

  • 1 Khai báo biến
  • 2 Các loại biến và phạm vi (scope) tồn tại
  • 3 Hằng

Khai báo biến

Biến là gì?

Biến là vùng nhớ dùng để lưu trữ các giá trị của chương trình. Mỗi biến gắn liền với một kiểu dữ liệu và một định danh duy nhất gọi là tên biến.

Cú pháp khai báo biến:

DataType varName [ = value] [, varName2] [ = value2]…;

Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.

Ví dụ: 

  • int x1 = 1;
  • int x1 = 1, x2 = 3;
  • int x1 = 2; long x2 = 1;

Lưu ý: khai báo nhiều biến trong cùng một câu lệnh chỉ được phép khi chúng dùng chung một kiểu, chẳng hạn kiểu sau là không được phép: int x1 = 2, long x2 = 1;

Một số quy tắc đặt tên biến:

  • Tên phân biệt chữ HOA và chữ thường.
  • Tên biến chấp nhận các ký tự chữ cái, ký số, dấu _ và dấu $.
  • Tên biến phải bắt đầu bằng một chữ cái , một dấu _ hay dấu $. Không bắt đầu bằng ký tự số.
  • Tên biến không được trùng với các từ khóa.
  • Tên biến không có khoảng trắng trong tên.
  • Biến có thể được khai báo ở bất kỳ đâu trong chương trình.
  • Từ Java 9, tên biến không được phép chỉ là 1 ký tự gạch dưới (_).

Để chương trình nguồn dễ đọc, dễ theo dõi người ta còn sử dụng quy tắc đặc tên biến sau (không bắt buộc):

  • Tên lớp: ký tự đầu tiên của một từ được viết hoa, các ký tự còn lại viết thường. Ví dụ: class Nguoi, class SinhVien, class InputStream, …
  • Tên biến, hằng, phương thức: ký tự đầu tiên viết thường, ký tự đầu tiên của từ thứ hai trở đi được viết hoa. Ví dụ: String ten, Date ngaySinh, int diemTrungBinh, …

Ngoài các tiêu chuẩn cơ bản trên, khi bạn tham gia vào các dự án thực tế, bạn sẽ được cung cấp tài liệu mô tả đầy đủ hơn về vấn đề này. Bạn nào quan tâm hãy tham kháo bài viết Tiêu chuẩn coding trong Java.

Các từ khoá không dược sử dụng cho tên biến:

Các loại biến và phạm vi (scope) tồn tại

Phân loại

Biến cục bộ (local)

  • Biến local được khai báo trong các phương thức, hàm contructor hoặc trong các block.
  • Biến local được tạo bên trong các phương thức, contructor, block và sẽ bị phá hủy khi kết thúc các phương thức, contructor và block.
  • Không được sử dụng “access modifier” khi khai báo biến local.
  • Các biến local được lưu trên vùng nhớ stack của bộ nhớ.
  • Bạn cần khởi tạo giá trị mặc định cho biến local trước khi có thể sử dụng.

Biến toàn cục (instance)

  • Biến instance được khai báo trong một lớp(class), bên ngoài các phương thức, constructor và các block.
  • Biến instance được lưu trong bộ nhớ heap.
  • Biến instance được tạo khi một đối tượng được tạo bằng việc sử dụng từ khóa “new” và sẽ bị phá hủy khi đối tượng bị phá hủy.
  • Biến instance có thể được sử dụng bởi các phương thức, constructor, block, … Nhưng nó phải được sử dụng thông qua một đối tượng cụ thể.
  • Bạn được phép sử dụng “access modifier” khi khai báo biến instance, mặc định là “default”.
  • Biến instance có giá trị mặc định phụ thuộc vào kiểu dữ liệu của nó. Ví dụ nếu là kiểu int, short, byte thì giá trị mặc định là 0, kiểu double thì là 0.0d, … Vì vậy, bạn sẽ không cần khởi tạo giá trị cho biến instance trước khi sử dụng.
  • Bên trong class mà bạn khai báo biến instance, bạn có thể gọi nó trực tiếp bằng tên khi sử dụng ở khắp nới bên trong class đó.

Biến tĩnh (static)

  • Biến static được khai báo trong một class với từ khóa “static”, phía bên ngoài các phương thức, constructor và block.
  • Sẽ chỉ có duy nhất một bản sao của các biến static được tạo ra, dù bạn tạo bao nhiêu đối tượng từ lớp tương ứng.
  • Biến static được lưu trữ trong bộ nhớ static riêng.
  • Biến static được tạo khi chương trình bắt đầu chạy và chỉ bị phá hủy khi chương trình dừng.
  • Giá trị mặc định của biến static phụ thuộc vào kiểu dữ liệu bạn khai báo tương tự biến instance.
  • Biến static được truy cập thông qua tên của class chứa nó, với cú pháp: TenClass.tenBien.
  • Trong class, các phương thức sử dụng biến static bằng cách gọi tên của nó khi phương thức đó cũng được khai báo với từ khóa “static”.

Ví dụ:


public class Student {
    // biến static 'name '
    public static String name = "GP Coder";

    // biến static 'age '
    public static int age = 21;

    public static void main(String args[]) {
        // Sử dụng biến static bằng cách gọi trực tiếp
        System.out.println("Name: " + name );

        // Sử dụng biến static bằng cách gọi thông qua tên class
        System.out.println("Age: " + Sinhvien.age );
    }
}

Phạm vi (scope) tồn tại của biến

  • Biến cục bộ (local): Trong phạm vi từ khai báo đến cuối khối (block).
  • Biến toàn cục (instance): Trong phạm vi từ khai báo cho đến khi đối tượng đủ điều kiện để thu gom rác.
  • Biến tĩnh (static): Trong phạm vi từ khai báo cho đến khi chương trình kết thúc.

Hằng

Hằng là một giá trị bất biến trong chương trình
Qui ước đặt tên hằng giống như tên biến.
Hằng số nguyên: trường hợp giá trị hằng ở dạng long/ Long ta thêm vào cuối số chữ “l” hay“L”. ví dụ: 1L
Hằng số thực: truờng hợp giá trị hằng có kiểu float/Float ta thêm tiếp vĩ ngữ “f” hay “F”, còn kiểu số double/ Double thì thêm tiếp vĩ ngữ “d” hay“D”. Ví dụ: 1d, 1f
Hằng Boolean: có 2 giá trị là true và false.

Ví dụ:

public class VariableTutorial {
	// Hằng số
	final int hangSo = 10;

	// Biến toàn cục
	String bienToanCuc = "Đây là biến toàn cục";
	int number1 = 10;

	public void testVarial() {
		// Biến bình thường có thể thay đổi giá trị
		number1 = 20; // Có thể thay đổi

		// Hằng số không thể thay đổi giá trị
		hangSo = 50; // Lỗi: không thể thay đổi
	}

	public static void main(String[] args) {
		// Biến cục bộ
		String bienCucBo = "Đây là biến cục bộ";
	}
}

5.0
10
Nếu bạn thấy hay thì hãy chia sẻ bài viết cho mọi người nhé! Và Donate tác giả

Shares

Chuyên mục: Basic Java Được gắn thẻ: Basic Java

Tạo chương trình Java đầu tiên sử dụng Eclipse IDE
Các kiểu dữ liệu trong java

Có thể bạn muốn xem:

  • Phân biệt JVM, JRE, JDK (18/10/2017)
  • Các kiểu dữ liệu trong java (20/10/2017)
  • Mệnh đề if-else trong java (26/10/2017)
  • Lấy ngày giờ hiện tại trong Java (29/10/2017)
  • Enum trong java (09/11/2017)

Bình luận

bình luận

Tìm kiếm

Bài viết mới

  • Clean code 13/01/2024
  • Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud 02/10/2020
  • Kết nối RabbitMQ sử dụng Web STOMP Plugin 19/06/2020
  • Sử dụng publisher confirm trong RabbitMQ 16/06/2020
  • Sử dụng Dead Letter Exchange trong RabbitMQ 13/06/2020

Xem nhiều

  • Hướng dẫn Java Design Pattern – Factory Method (97349 lượt xem)
  • Hướng dẫn Java Design Pattern – Singleton (96986 lượt xem)
  • Giới thiệu Design Patterns (86647 lượt xem)
  • Lập trình đa luồng trong Java (Java Multi-threading) (85483 lượt xem)
  • Giới thiệu về Stream API trong Java 8 (83024 lượt xem)

Nội dung bài viết

  • 1 Khai báo biến
  • 2 Các loại biến và phạm vi (scope) tồn tại
  • 3 Hằng

Lưu trữ

Thẻ đánh dấu

Annotation Authentication Basic Java Behavior Pattern Collection Creational Design Pattern Cấu trúc điều khiển Database Dependency Injection Design pattern Eclipse Exception Executor Service Google Guice Gson Hibernate How to Interceptor IO Jackson Java 8 Java Core JDBC JDK Jersey JMS JPA json JUnit JWT Message Queue Mockito Multithreading OOP PowerMockito RabbitMQ Reflection Report REST SOAP Structuaral Pattern Swagger Thread Pool Unit Test Webservice

Liên kết

  • Clean Code
  • JavaTpoint
  • Refactoring Guru
  • Source Making
  • TutorialsPoint
  • W3Schools Online Web Tutorials

Giới thiệu

GP Coder là trang web cá nhân, được thành lập với mục đích lưu trữ, chia sẽ kiến thức đã học và làm việc của tôi. Các bài viết trên trang này chủ yếu về ngôn ngữ Java và các công nghệ có liên quan đến Java như: Spring, JSF, Web Services, Unit Test, Hibernate, SQL, ...
Hi vọng góp được chút ít công sức cho sự phát triển cộng đồng Coder Việt.

Donate tác giả

Tìm kiếm các bài viết của GP Coder với Google Search

Liên hệ

Các bạn có thể liên hệ với tôi thông qua:
  • Trang liên hệ
  • Linkedin: gpcoder
  • Email: contact@gpcoder.com
  • Skype: ptgiang56it

Follow me

Copyright 2025 © GP Coder · All Rights Reserved · Giới thiệu · Chính sách · Điều khoản · Liên hệ ·

Share

Blogger
Delicious
Digg
Email
Facebook
Facebook messenger
Flipboard
Google
Hacker News
Line
LinkedIn
Mastodon
Mix
Odnoklassniki
PDF
Pinterest
Pocket
Print
Reddit
Renren
Short link
SMS
Skype
Telegram
Tumblr
Twitter
VKontakte
wechat
Weibo
WhatsApp
X
Xing
Yahoo! Mail

Copy short link

Copy link