Mục lục
- 1 Java core là gì?
- 1.1 Để học Java cơ bản thì cần những gì?
- 1.2 Interface
- 1.3 Bảo mật
- 1.4 Java 9
- 1.5 String trong java
- 1.6 Collection framework và các bài toán nằm lòng trong java
- 1.7 Custom Object class
- 1.8 Support class
- 1.9 Những lỗi thường gặp phải của người mới bắt đầu lập trình java
- 1.10 Danh sách các keyword trong java
- 1.11 Wapper class trong java
- 1.12 Exception Handing
- 1.13 Stream API
- 1.14 Java mechanism
- 1.15 Date & Time
- 1.16 Java IO
- 1.17 Java NIO
- 1.18 Multithreading
- 1.19 Socket
- 1.20 Apache POI
- 1.21 Java Reflection
- 1.22 Java XML
- 1.23 Phỏng vấn
- 2 Tóm lược
Java core là gì?
Java một ngôn ngữ độc lập với các nền tảng. Có nghĩa là mã code java có thể biên dịch và chạy trên các nền tảng khác nhau như Windows, Linux, Mac OS etc.
Java có thể làm hầu hết mọi thứ, chẳng hạn như là Mobile (Android), Web (Spring, Servlet etc), Desktop app (Swing, JavaFX) etc. Cho nên chúng ta sẽ không sợ đói khi học java nhé.
Trong loạt bài Học java cơ bản qua từng ví dụ cụ thể này mình sẽ cố gắng giải thích đơn giản hoá nhất và cố gắng tạo ra nhiều ví dụ để cho các bạn dễ học, dễ nhớ.
Để học Java cơ bản thì cần những gì?
- Giới thiệu ngôn ngữ java
- Cài đặt biến môi trường
- JVM và Sự khác biệt giữa JVM, JDK, JRE
- Java SE, ME, EE, và JavaFX
- Sự khác nhau giữa Oracle JDK và OpenJDK
- Tạo project command line trong intellij
- Chương trình java đầu tiên
- Cách comment trong Java
- Nhập xuất màn hình console
- Các Kiểu dữ liệu trong java
- Biến trong Java
- Biến global
- Toán tử trong java
- Package
- Cách hoạt động của các toán tử logic
- Mệnh đề điều kiện trong java
- Mệnh đề điều kiện rút gọn
- Switch – case trong java
- Vòng lặp For trong java
- Vòng lặp While trog java
- Vòng lặp do-while trong java
- Mệnh đề Continue trong java
- Mệnh đề Break trong java
- Chuỗi(String) trong java
- Mảng(Array) trong java
- Mảng đa chiều trong java
- Tự định nghĩa Enum trong java
- Java annotation trong java
- Java regex – part 1
- Java regex – part 2
- Generic trong java
- Quản lý bộ nhớ hiểu quả với static trong java
- Static Block
- Qúa trình khởi tạo các biến static
- Shutdown hook
- System.exit() method
- Tổng hợp bài tập java căn bản
- Một số câu hỏi hóc búa về hàm main trong java
- Sự khác nhau giữa Oracle JDK và OpenJDK
- Duyệt các giá trị trong Enum
- Java có hỗ trợ lệnh goto giống C/C++?
- Random
- Clone method
- @Deprecated annotation
- @Sneaky throws
- @SuppressWarnings
- @SafeVarargs
- Command-line args
- Gửi Mail
- C++ vs Java
- C# vs Java
- Đệ quy
- Callback
- POJO & JavaBean
- Static import
Interface
Bảo mật
Java 9
String trong java
Một người anh trước đây đã chia sẽ rằng “Khi hệ thống lỗi tràn bộ nhớ, anh lead bảo rằng hãy kiếm những chỗ sử dụng String và optimize ngay cho bố. Làm vậy chắc chắn được”. Nói thế thì các bạn đủ hiểu rằng tầm quan trọng khi sử dụng String rồi phải không? Khi báo sử dụng thì dễ òm, còn nếu muốn thao tác gì trên đó mà không khéo thì toang lắm. Mời các bạn xơi loạt bài sau để nắm rõ String trong Java.
- Chuỗi(String)
- StringBuffer
- StringBuider
- String vs StringBuffer vs StringBuilder
- StringTokenizer
- StringJoiner trong java (8)
- String pool
- Cắt chuỗi
- String immutable
- Tổng hợp bài tập String
Collection framework và các bài toán nằm lòng trong java
Collection là một trong những thành phần các bạn sẽ sử dụng rất nhiều khi phát triển các ứng dụng Java. Mỗi một collection được sinh ra đều có mục đích sử dụng cụ thể. Thế nên chúng ta cần nắm hầu hết các collection thường xuyên sử dụng.
Nếu được sử dụng đúng cách chúng sẽ giúp chúng ta đơn giản hoá vấn đề hơn là chúng ta chày cối để code xử lý.
- Giới thiệu collection framework
- ArrayList
- LinkedList
- AbstractSet
- SortedSet
- Navigableset
- EnumSet
- TreeSet
- HashSet
- Map
- HashMap
- WeakHashMap
- Dictionary
- HashTable
- Queue
- PriorityQueue
- Stack
- LinkedHashMap
- LinkedHashSet
- EnumMap
- SortedMap
- Dictionary
- Vector
- Iterator
Custom Object class
- toString() method
- Mối quan hệ giữa equals() và hashCode()
- hashCode() method
- Singleton class
- serialVersionUID
Support class
Những lỗi thường gặp phải của người mới bắt đầu lập trình java
Danh sách các keyword trong java
- Tổng hợp các từ khoá trong java
- Từ khoá this trong java
- Từ khoá super trong java
- Từ khoá static trong java
- Từ khoá final trong java
- Từ khoá abstract trong java
- Từ khoá transient trong java
- Từ khoá volatile trong java
- Từ khoá strictfp trong java
- Từ khoá native trong java
Wapper class trong java
- Wrapper class trong java
- Primitive wrapper class – Immutable
- Number class
- Integer class
- Byte class
- Short class
- Long class
- Float class
- Double class
- Boolean class
- Character class
- Autoboxing và Unboxing trong java
Exception Handing
- Exception là gì?
- CheckedException và UncheckedException
- try-catch-finally
- try with resource
- Từ khoá Throw và Throws
- Tự định nghĩa Exception
- Một số mẹo nhỏ tránh NullPointerException
- Các trường hợp dẫn đến OutOfMemoryError
- Qúa trình lan truyền exception
- IndexOutofbounds
- NumberFormatException
Stream API
Có thể nói là một đột phá trong syntax và hiệu năng mà Java 8 mang lại, với việc cung cấp Stream API vô cùng mạnh mẽ. Giải quyết hầu hết những đoạn dài ngằng trước khi khi chúng ta muốn tìm kiếm, lọc các phần tử etc.
- Nested class
- Inner class
- Local class
- Anonymous class
- Lambda expression
- Stream API
- Method references
- Optional class
- findFirst() và findAny()
- skip() và limit()
- Stream toMap()
- Stream Filter
- Stream reduce
- Stream peek
- map() và flatMap()
- Stream Distinct
- allMatch, anyMatch, noneMatch
- Tổng hợp các functional interface
- Collectors GroupingBy
- Merge Stream
- Last element stream
Java mechanism
Phần này sẽ nói đến những cơ chế hoạt động phía bên dưới của Java. Khi bạn đã có kiến thức căn bản thì đây là phần tiếp theo để các bạn nâng cao kỹ năng và hiểu sâu bên dưới. Nó sẽ có lợi khi bạn muốn tối ưu ứng dụng của mình.
- Heap và Stack
- Pass by value và Pass by reference
- Garbage collector trong java
- Khi nào thì object được trình thu gom rác dọn dẹp
- Stack trace trong java
- Sự khác biệt giữa i++ và ++i
- Ép kiểu
- Upcasting và Downcasting
- Instanceof
Date & Time
Kiểu dữ liệu về thời gian là một trong những phần xử lý phức tạp và có rất nhiều trường hợp. Dưới đây tổng hợp các cách sử dụng các kiểu dữ liệu thời gian trong Java giúp chúng ta thao tác dễ dàng hơn với chúng.
- Instant class trong java
- Clock class trong java
- Duration class trong java
- Period class trong java
- LocalDate trong java
- LocalTime trong java
- LocalDateTime trong java
- MonthDay trong java
- Year class trong java
- YearMonth trong java
- ZonedDateTime trong java
Java IO
Nếu mới bắt đầu học Java, hay làm các tool thì đọc file là một chủ đề hot, dưới đây tổng hợp hầu hết các cách đọc file trong Java. Đúc kết và so sánh tốc độ giữa các cách đọc file.
- Giới thiệu Java IO
- Serializable
- Thao tác file cơ bản
- FileDescriptor
- FilePermission
- InputStream
- OutputStream
- Đọc file với FileInputStream
- Ghi file với FileOutputStream
- Luồng dữ liệu ngầm PipedInputStream và PipedOutputStream
- ByteArrayInputStream và ByteArrayOutputStream trong java
- BufferedInputStream
- BufferedOutputStream
- Đọc file the object
- PushbackInputStream
- SequenceInputStream
- DataInputstream và DataOutputStream
- FileReader
- FileWriter
- BufferedReader
- BufferedWriter
- RandomAccessFile
- PipedReader và PipedWriter
- Tổng hợp cách đọc file text
- So sánh thời gian thực thi giữa FileInputStream, BufferedInputStream, FileReader, BufferedReader.
- File CSV
- Đọc ghi file CSV
- Đọc ghi file Json
- Copy File
- Append File
- Download file
- Nén & giải nén file
Java NIO
Multithreading
- Phân biệt Multithreading và Multitasking
- Tạo thread với Thread và Runnable
- DeadLock
- Thread wait, notify, notifyAll
- Daemon thread
- Main thread
- Thread sleep()
- Vòng đời của thread
- Sự khác nhau giữa wait() và sleep()
- ThreadLocal
Socket
- Lập trình socket với Java core
- Xây dựng ứng dụng chat – p1
- Xây dựng ứng dụng chat – p2
- Xây dựng ứng dụng chat – p3
Apache POI
- Giới thiệu Apache POI
- Đọc ghi excel file
- Gán giá trị cho một ô trong excel
- Gán công thức cho một ô
- Hyperlink
- Front
- Merge cell
- Background & font color
Java Reflection
- Làm quen với Java Reflection
- Thao tác với constructor, field, method
- Gọi private method với reflection
- Check abstract class
- Gọi private method với reflection
- Kiểm tra static method
- Gọi method thông qua reflection
Java XML
Phỏng vấn
Tóm lược
Trên đây là danh sách mình đã tổng hợp trong suốt quá trình tìm hiểu về học Java cơ bản. Các bạn có thể dựa vào những keyword trên để tìm hiểu thêm các tài liệu chuyên sâu nhầm nâng cao kiến thức. Cám ơn các bạn đã ghé thăm.