Học java cơ bản qua từng ví dụ cụ thể

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ì?

Đây là danh sách các bài hướng dẫn đầu tiên giành cho các bạn vừa bắt đầu làm quen với ngôn ngữ Java. Các bài hướng dẫn học Java cơ bản được sắp sếp theo lộ trình, nên hãy đọc từ trên xuống dưới các bạn nha.
Sau khi học xong loại bài hướng dẫn làm quen với Java các bạn có thể làm các ứng dụng trên giao diện console. Nắm vững cú pháp, cấu trúc, và các thành phần cơ bản của Java. Đây là nền tảng quá quan trọng để học tiếp các phần ở phía sau.
 
  1. Giới thiệu ngôn ngữ java
  2. Cài đặt biến môi trường 
  3. JVM và Sự khác biệt giữa JVM, JDK, JRE
  4. Java SE, ME, EE, và JavaFX
  5. Sự khác nhau giữa Oracle JDK và OpenJDK
  6. Tạo project command line trong intellij
  7. Chương trình java đầu tiên
  8. Cách comment trong Java
  9. Nhập xuất màn hình console
  10. Các Kiểu dữ liệu trong java
  11. Biến trong Java
  12. Biến global
  13. Toán tử trong java
  14. Package
  15. Cách hoạt động của các toán tử logic
  16. Mệnh đề điều kiện trong java
  17. Mệnh đề điều kiện rút gọn
  18. Switch – case trong java
  19. Vòng lặp For trong java
  20. Vòng lặp While trog java
  21. Vòng lặp do-while trong java
  22. Mệnh đề Continue trong java
  23. Mệnh đề Break trong java
  24. Chuỗi(String) trong java
  25. Mảng(Array) trong java
  26. Mảng đa chiều trong java
  27. Tự định nghĩa Enum trong java
  28. Java annotation trong java
  29. Java regex – part 1
  30. Java regex – part 2
  31. Generic trong java
  32. Quản lý bộ nhớ hiểu quả với static trong java
  33. Static Block
  34. Qúa trình khởi tạo các biến static
  35. Shutdown hook 
  36. System.exit() method
  37. Tổng hợp bài tập java căn bản
  38. Một số câu hỏi hóc búa về hàm main trong java
  39. Sự khác nhau giữa Oracle JDK và OpenJDK
  40. Duyệt các giá trị trong Enum
  41. Java có hỗ trợ lệnh goto giống C/C++?
  42. Random
  43. Clone method
  44. @Deprecated annotation
  45. @Sneaky throws
  46. @SuppressWarnings
  47. @SafeVarargs
  48. Command-line args
  49. Gửi Mail
  50. C++ vs Java
  51. C# vs Java
  52. Đệ quy
  53. Callback
  54. POJO & JavaBean
  55. Static import

Interface

  1. Comparator interface  

Bảo mật

  1. Mã hóa MD5
  2. Mã hóa SHA-256
  3. Mã hoá SHA-512

Java 9

  1. Các tính năng mới trong Java 9
  2. Private method trong interface
  3. Optional 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.

  1. Chuỗi(String)
  2. StringBuffer
  3. StringBuider
  4. String vs StringBuffer vs StringBuilder
  5. StringTokenizer
  6. StringJoiner trong java (8)
  7. String pool
  8. Cắt chuỗi
  9. String immutable
  10. 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ý.

  1. Giới thiệu collection framework
  2. ArrayList
    1. Convert Array sang ArrayList và ngược lại
    2. Immutable ArrayList
    3. ArrayList vs Vector
  3. LinkedList
  4. AbstractSet
  5. SortedSet
  6. Navigableset
  7. EnumSet
  8. TreeSet
  9. HashSet
    1. Làm thế nào để Set/HashSet đảm bảo các phần tử không trùng lặp
  10. Map
  11. HashMap
    1. Cách hoạt động bên trong HashMap
    2. Khởi tạo HashMap
  12. WeakHashMap
  13. Dictionary
  14. HashTable
  15. Queue
  16. PriorityQueue
  17. Stack 
  18. LinkedHashMap
  19. LinkedHashSet
  20. EnumMap
  21. SortedMap
  22. Dictionary 
  23. Vector
  24. Iterator

Custom Object class

  1. toString() method
  2. Mối quan hệ giữa equals() và hashCode()
  3. hashCode() method
  4. Singleton class
  5. serialVersionUID

Support class 

  1. Math
  2. BigDecimal
  3. BigInteger
  4. Pair class
  5. Google Guava
  6. CountDownLatch 
  7. System class
  8. Properties 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

  1. Code smell – part 1

Danh sách các keyword trong java 

  1. Tổng hợp các từ khoá trong java
  2. Từ khoá this trong java
  3. Từ khoá super trong java
  4. Từ khoá static trong java
  5. Từ khoá final trong java
  6. Từ khoá abstract trong java
  7. Từ khoá transient trong java
  8. Từ khoá volatile trong java
  9. Từ khoá strictfp trong java
  10. Từ khoá native trong java

Wapper class trong java

  1. Wrapper class trong java
  2. Primitive wrapper class – Immutable
  3. Number class
  4. Integer class
  5. Byte class
  6. Short class
  7. Long class
  8. Float class
  9. Double class
  10. Boolean class
  11. Character class
  12. Autoboxing và Unboxing trong java

Exception Handing

  1. Exception là gì? 
  2. CheckedException và UncheckedException
  3. try-catch-finally
  4. try with resource
  5. Từ khoá Throw và Throws 
  6. Tự định nghĩa Exception
  7. Một số mẹo nhỏ tránh NullPointerException
  8. Các trường hợp dẫn đến OutOfMemoryError
  9. Qúa trình lan truyền exception
  10. IndexOutofbounds
  11. 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.

  1. Nested class
  2. Inner class
  3. Local class
  4. Anonymous class
  5. Lambda expression 
  6. Stream API
  7. Method references
  8. Optional class
  9. findFirst() và findAny()
  10. skip() và limit() 
  11. Stream toMap()
  12. Stream Filter
  13. Stream reduce
  14. Stream peek
  15. map() và flatMap()
  16. Stream Distinct
  17. allMatch, anyMatch, noneMatch
  18. Tổng hợp các functional interface
  19. Collectors GroupingBy
  20. Merge Stream
  21. 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.

  1. Heap và Stack
  2. Pass by value và Pass by reference
  3. Garbage collector trong java
  4. Khi nào thì object được trình thu gom rác dọn dẹp
  5. Stack trace trong java
  6. Sự khác biệt giữa i++ và ++i
  7. Ép kiểu
  8. Upcasting và Downcasting
  9. 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.

  1. Instant class trong java
  2. Clock class trong java
  3. Duration class trong java
  4. Period class trong java
  5. LocalDate trong java
  6. LocalTime trong java
  7. LocalDateTime trong java
  8. MonthDay trong java
  9. Year class trong java
  10. YearMonth trong java
  11. 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.

  1. Giới thiệu Java IO
  2. Serializable
  3. Thao tác file cơ bản
  4. FileDescriptor 
  5. FilePermission
  6. InputStream
  7. OutputStream 
  8. Đọc file với FileInputStream
  9. Ghi file với FileOutputStream
  10. Luồng dữ liệu ngầm PipedInputStream và PipedOutputStream
  11. ByteArrayInputStream và  ByteArrayOutputStream trong java 
  12. BufferedInputStream 
  13. BufferedOutputStream
  14. Đọc file the object
  15. PushbackInputStream
  16.  SequenceInputStream
  17. DataInputstream và DataOutputStream 
  18. FileReader 
  19. FileWriter
  20. BufferedReader
  21. BufferedWriter
  22. RandomAccessFile 
  23. PipedReader và PipedWriter
  24. Tổng hợp cách đọc file text
  25. So sánh thời gian thực thi giữa FileInputStream, BufferedInputStream, FileReader, BufferedReader.
  26. File CSV
  27. Đọc ghi file CSV
  28. Đọc ghi file Json
  29. Copy File
  30. Append File
  31. Download file
  32. Nén & giải nén file

Java NIO

  1. Giới thiệu Java NIO
  2. Copy thư mục
  3. Rename / move file
  4. File size

Multithreading 

  1. Phân biệt Multithreading và Multitasking
  2. Tạo thread với Thread và Runnable 
  3. DeadLock
  4. Thread wait, notify, notifyAll
  5. Daemon thread 
  6. Main thread
  7. Thread sleep()
  8. Vòng đời của thread
  9. Sự khác nhau giữa wait() và sleep()
  10. ThreadLocal

Socket

  1. Lập trình socket với Java core
  2. Xây dựng ứng dụng chat – p1
  3. Xây dựng ứng dụng chat – p2
  4. Xây dựng ứng dụng chat – p3

Apache POI

  1. Giới thiệu Apache POI
  2. Đọc ghi excel file
  3. Gán giá trị cho một ô trong excel
  4. Gán công thức cho một ô
  5. Hyperlink
  6. Front
  7. Merge cell
  8. Background & font color

Java Reflection

  1. Làm quen với Java Reflection
  2. Thao tác với constructor, field, method
  3. Gọi private method với reflection
  4. Check abstract class
  5. Gọi private method với reflection
  6. Kiểm tra static method 
  7. Gọi method thông qua reflection

Java XML

  1. Đọc, ghi file XML – Dom XML parser

Phỏng vấn

  1. Tổng hợp 75 câu hỏi phỏng vấn Java

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. 

5 3 votes
Article Rating
Subscribe
Notify of
guest
3 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
3
0
Would love your thoughts, please comment.x
()
x