VietTuts

Học java cơ bản đến nâng cao

  • Home
  • Java
  • Servlet
  • JSP
  • Struts2
  • Hibernate
  • Spring
  • Design P
  • Java WS
  • MyBatis
  • Eclipse
  • VBA
Java Cơ Bản Các Khái Niệm Java OOPs

Java String

String là gì Immutable String So sánh String Nối String Sub-String Phương thức của lớp String Lớp StringBuffer Lớp StringBuilder String vs StringBuffer StringBuffer vs Builder Tạo lớp Immutable toString method Lớp StringTokenizer

Phương thức Java String

String charAt() String compareTo() String concat() String contains() String endsWith() String equals() equalsIgnoreCase() String format() String getBytes() String getChars() String indexOf() String intern() String isEmpty() String join() String lastIndexOf() String length() String replace() String replaceAll() String split() String startsWith() String substring() String toCharArray() String toLowerCase() String toUpperCase() String trim() String valueOf()
Xử Lý Ngoại Lệ Các Lớp Lồng Nhau Đa Luồng (Multithreading) Java I/O Lập Trình Mạng Với Java Java Date Chuyển Đối Kiểu Dữ Liệu Java Collections Java JDBC Các Tính Năng Mới Trong Java Bài Tập Java Có Lời Giải Câu Hỏi Phỏng Vấn Java

Sự khác nhau giữa String và StringBuffer trong java


Lớp StringBuilder trong java
Sự khác nhau giữa StringBuffer và StringBuilder trong java  

Sự khác nhau giữa String và StringBuffer trong java

Sự khác nhau giữa String và StringBuffer trong java được thể hiện trong bảng sau:

No.StringStringBuffer
1)Lớp String là bất biến (immutable).Lớp StringBuffer là có thể sửa đổi (mutable).
2)Khi bạn thực hiện nối nhiều chuỗi thì lớp String xử lý chậm và tốn nhiều bộ nhớ hơn, bởi vì mỗi lần nối thêm chuỗi nó tạo ra instance mới.Khi bạn thực hiện nối nhiều chuỗi thì lớp StringBuffer xử lý nhanh và tốn ít bộ nhớ hơn.
3)Lớp String ghi đề phương thức equals() của lớp Object. Vì thế bạn có thể so sánh nội dung của 2 chuỗi bằng phương thức equals().Lớp StringBuffer không ghi đề phương thức equals() của lớp Object.

Test hiệu suất của String và StringBuffer

public class ConcatTest {
	public static String concatWithString() {
		String t = "Java";
		for (int i = 0; i < 10000; i++) {
			t = t + "Hello";
		}
		return t;
	}

	public static String concatWithStringBuffer() {
		StringBuffer sb = new StringBuffer("Java");
		for (int i = 0; i < 10000; i++) {
			sb.append("Hello");
		}
		return sb.toString();
	}

	public static void main(String[] args) {
		long startTime = System.currentTimeMillis();
		concatWithString();
		System.out.println("Thời gian nối chuỗi của lớp String: "
				+ (System.currentTimeMillis() - startTime) + "ms");
		startTime = System.currentTimeMillis();
		concatWithStringBuffer();
		System.out.println("Thời gian nối chuỗi của lớp StringBuffer: "
				+ (System.currentTimeMillis() - startTime) + "ms");
	}
}

Output:

Thời gian nối chuỗi của lớp String: 350ms
Thời gian nối chuỗi của lớp StringBuffer: 1ms

Test HashCode của String và StringBuffer

Trong ví dụ sau, String trả về giá trị hashcode mới khi nối chuỗi, nhưng StringBuffer trả về cùng 1 giá trị.

public class InstanceTest {
	public static void main(String args[]) {
		System.out.println("Test Hashcode của String:");
		String str = "java";
		System.out.println(str.hashCode());
		str = str + "viettuts";
		System.out.println(str.hashCode());

		System.out.println("Test Hashcode của StringBuffer:");
		StringBuffer sb = new StringBuffer("java");
		System.out.println(sb.hashCode());
		sb.append("viettuts");
		System.out.println(sb.hashCode());
	}
}

Output:

Test Hashcode của String:
3254818
-1456864636
Test Hashcode của StringBuffer:
366712642
366712642

Tìm hiểu về xử lý chuỗi trong java
  • String là gì
  • Immutable String
  • So sánh String
  • Nối String
  • Sub-String
  • Phương thức của lớp String
  • Lớp StringBuffer
  • Lớp StringBuilder
  • String vs StringBuffer
  • StringBuffer vs Builder
  • Tạo lớp Immutable
  • Phương thức toString
  • Lớp StringTokenizer

Lớp StringBuilder trong java
Sự khác nhau giữa StringBuffer và StringBuilder trong java  

Recent Updates

Collection trong javaCác tính năng của JUnit Test FrameworkVí dụ JUnit trên EclipseJUnit là gì?List câu hỏi phỏng vấn Java Collection201 câu hỏi phỏng vấn java core (phần 4)201 câu hỏi phỏng vấn java core (phần 3)201 câu hỏi phỏng vấn java core (phần 2)201 câu hỏi phỏng vấn java core (phần 1)TreeMap trong javaHashMap trong javaChuyển số thành tên cột trong excel vba

VietTuts on facebook

Học Java Cơ Bản Đến Nâng Cao - VietTuts.Vn

Danh sách bài học

Học java
Học servlet
Học jsp
Học Hibernate
Học Struts2
Học Spring
Học SQL
Học tiếng Anh giao tiếp

Câu hỏi phỏng vấn

201 câu hỏi phỏng vấn java
25 câu hỏi phỏng vấn servlet
75 câu hỏi phỏng vấn jsp
52 câu hỏi phỏng vấn Hibernate
70 câu hỏi phỏng vấn Struts2
70 câu hỏi phỏng vấn Spring
57 câu hỏi phỏng vấn SQL

About VietTuts.Vn

Hệ thống bài học trên VietTuts.Vn bao gồm các bài lý thuyết và thực hành về các công nghệ java và công nghệ web. Các bài lý thuyết trên hệ thống VietTuts.Vn được tham khảo và tổng hợp từ các trang http://javatpoint.com, http://www.tutorialspoint.com, http://docs.oracle.com/en ...

Scroll back to top

Copyright © 2016 VietTuts.Vn all rights reserved. | VietTuts.Vn team | Liên hệ | Chính sách - riêng tư