Generics trong Java như PRO | Code Thu

Java Generics luôn là một đề tài dễ gây nhầm lẫn. Video này sẽ đề cập những gì bạn cần biết về Generics trong Java và giúp bạn trở thành một Pro developer.
Xin chào, nếu video này hữu ích với bạn, một lượt đăng ký kênh sẽ rất quý giá với mình. Điều đó giúp mình biết được rằng mình đang tạo ra nội dung hữu ích cho mọi người :)
Subscribe cho Code Thủ - youtube.com/@codethu?sub_conf...
Facebook Page - / codethu
#tuhoc #tuhoclaptrinh #tựhọcjava #tựhọclậptrình #tuhocjava #CodeThủ #CodeThu #codethu

Пікірлер: 83

  • @quangcaonhat5860
    @quangcaonhat58608 ай бұрын

    Sịn thật sự, mình mới học code coi cuốn thật

  • @shyforlov9123
    @shyforlov912314 күн бұрын

    ủng hộ bạn, mong bạn sẽ share kiến thức của bạn nhiều hơn nữa

  • @joseph_hieunguyen
    @joseph_hieunguyenАй бұрын

    đỉnh thật sự, coi cuốn kinh khủng. Cám ơn a nhiều

  • @Ashley-nh4ez
    @Ashley-nh4ez8 ай бұрын

    Video rất bổ ích, cảm ơn bạn!

  • @SangNguyen-ih4fy
    @SangNguyen-ih4fy8 ай бұрын

    Tuyệt vời quá a ơi !!!

  • @chens3207
    @chens32076 ай бұрын

    hay quá anh ơi, mong sắp tới anh ra thêm nhiều video để giúp các bạn sinh viên học java dễ dàng hơn ạ

  • @nguyentuankhoi7367
    @nguyentuankhoi73677 ай бұрын

    Ông nội này giảng dễ hiểu thật, giọng cũng dễ nghe ủng hộ 2 likes

  • @user-qx1wo4rf2w
    @user-qx1wo4rf2w6 ай бұрын

    hay lắm ạ, em cảm ơn anh nhiều ạ

  • @babinhtran7499
    @babinhtran749910 ай бұрын

    ủng hộ bạn làm thêm nhiều video về OOP và thêm nhiều mảng khác

  • @nguyenthucchien6492
    @nguyenthucchien64922 ай бұрын

    Quá hay. RESPECT

  • @numberninenam8656
    @numberninenam8656 Жыл бұрын

    Quá tuyệt vời, cảm ơn anh vì kiến thức rất bổ ích

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Thanks bạn đã ủng hộ mình :)

  • @readingkoreanbook
    @readingkoreanbook Жыл бұрын

    Dễ hiểu hẳn ạ. Cảm ơn bạn rất nhiều

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn ủng hộ nha ❤️

  • @annielisenguyen1800
    @annielisenguyen1800 Жыл бұрын

    Một trong những video về Generic dể hiểu nhất mà mình từng xem. Rất hay và mong bạn vẫn giữ style làm video như vậy hoặc còn hay hơn thế nửa. Rất cảm ơn bạn

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Mình cảm ơn bạn ủng hộ rất nhiều ❤️

  • @SangTran-dp9th
    @SangTran-dp9th Жыл бұрын

    cảm ơn bạn, video rất hay ạ

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn ủng hộ nha ❤️

  • @trihahuy3653
    @trihahuy3653 Жыл бұрын

    hay lắm, tiếp tục nhé a trai

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Thanks bạn ủng hộ nha :)

  • @ychi8888
    @ychi88886 ай бұрын

    Rất hay và dễ hiểu, mong bạn làm với Angular + TypeScript

  • @nguyentienduy1638
    @nguyentienduy163810 ай бұрын

    Hay quá anh ơi

  • @truongvannhan954
    @truongvannhan95411 ай бұрын

    đơn giản & dễ hiểu . thank you

  • @CodeThu

    @CodeThu

    11 ай бұрын

    Cảm ơn bạn ủng hộ ❤️

  • @binhnguyenvan641
    @binhnguyenvan64111 ай бұрын

    video hay quá. Cảm ơn anh

  • @CodeThu

    @CodeThu

    11 ай бұрын

    Càm ơn bạn ủng hộ nha ❤️

  • @nguyentaitue4596
    @nguyentaitue45968 ай бұрын

    Hay anh ơiii

  • @hplat-vku
    @hplat-vku4 ай бұрын

    dễ hiểu quá a

  • @buihuunghiafplhcm8167
    @buihuunghiafplhcm8167 Жыл бұрын

    Video của anh dễ hiểu hay và hài nữa

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn ủng hộ mình nha ❤️

  • @Gatetan123
    @Gatetan123 Жыл бұрын

    cảm ơn bạn, rất dễ hiểu

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Mình cảm ơn bạn ủng hộ nha ❤️

  • @JavaDev9661
    @JavaDev9661 Жыл бұрын

    sắp đi phỏng vấn lại ngồi cày lại core haha, thank anh chủ kênh nhé

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Hihi cảm ơn bạn ủng hộ nha. Mình chúc bạn gặp nhiều may mắn trong cuộc phỏng vấn sắp đến ❤️

  • @giangxuan4494
    @giangxuan44943 ай бұрын

    yêu a.

  • @thanhganhteam8336
    @thanhganhteam833610 ай бұрын

    Quá là đỉnh và dễ hiểu luôn

  • @CodeThu

    @CodeThu

    10 ай бұрын

    Cảm ơn bạn ủng hộ nha ❤️

  • @YOUNGHOIQUAN
    @YOUNGHOIQUAN11 ай бұрын

    Cảm ơn bạn nhiều

  • @CodeThu

    @CodeThu

    11 ай бұрын

    Cảm ơn bạn ủng hộ ❤️

  • @congquantran7714
    @congquantran771410 ай бұрын

    Mặt trời chân lí chói qua tim😂

  • @CodeThu

    @CodeThu

    10 ай бұрын

    Hihi cảm ơn bạn ủng hộ nha 😊

  • @phammanhhung9733
    @phammanhhung97335 ай бұрын

    List bài giảng của bạn công phu như vậy không biết có phần nào nói về đa luồng không nhỉ :)))

  • @nhattrinh8823
    @nhattrinh8823 Жыл бұрын

    hay quá a ơi, e bắn luôn rồi

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn ủng hộ ❤️

  • @anhhuyis7678
    @anhhuyis76784 ай бұрын

    á đù , kiến thức đã được tiếp thu

  • @Nam_704
    @Nam_70410 ай бұрын

    hay qớ

  • @CodeThu

    @CodeThu

    10 ай бұрын

    Cảm ơn bạn ủng hộ nha ❤️

  • @trungnghiaphamang6075
    @trungnghiaphamang60755 ай бұрын

    sự khác nhau giữa T extends và T super là gì vậy a?

  • @nhatlg
    @nhatlg Жыл бұрын

    Xin cảm ơn vì video rất dễ hiểu. Tuy nhiên phần hoạt náo chèn thêm cứ như jump scare ấy. Có thể chỉnh âm lượng cho đồng đều với phần bài giảng thì đỡ giật mình.

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn ủng hộ và góp ý. Mình sẽ khắc phục trong những video tiếp theo 🙏

  • @nguyenbatrungfplhcm5070
    @nguyenbatrungfplhcm5070 Жыл бұрын

    anh làm về cái wrapper đi ạ. Kiểu như so sánh double với Double í

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn góp ý nha. Mình sẽ nghiên cứu làm về wrapper 🙌

  • @fancaothukiemtien5994
    @fancaothukiemtien5994 Жыл бұрын

    Hay quá anh ơi. Mong anh ra video phân tích sự khác nhau giữa interface với abstract đi anh..

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Thanks bạn đã ủng hộ. Mình sẽ làm video bạn yêu cầu trong thời gian tới :)

  • @din-do-that
    @din-do-that Жыл бұрын

    bro rất đẹp try khi làm chuỗi bài giảng này

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Hihi cảm ơn bạn ủng hộ nha ☺️

  • @nguyentienminh0710
    @nguyentienminh07104 күн бұрын

    Anh dngf theme gì cho intellij vậy ạ

  • @angtran4119
    @angtran4119 Жыл бұрын

    Hic anh có thể đề xuất giúp em 1 vài kênh KZread dạy full java được ko ạ, anh giải thích 1 số khái niệm dễ hiểu quá, e năm nhất cx hơi hiểu hiểu, tại năm 2 e học java rồi sợ quá 😢😢

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn ủng hộ nha. Bạn đừng lo lắng nhiều, thật sự các khái niệm Java không khó hiểu lắm đâu. Mình sẽ cố gắng giải thích hết các khái niệm trong Java một cách dễ hiểu nhất 🤝

  • @nhutanhtran1738
    @nhutanhtran17388 ай бұрын

    sao lại dùng lớp bao thế anh , thường code e toàn dùng dạng nguyên thủy không hà :V

  • @lesy4509
    @lesy4509 Жыл бұрын

    bạn làm dependency injection đi

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn theo dõi vào để lại comment nha. Mình sẽ làm về đề tài này trong thời gian sớm nhất ❤️

  • @hieuo9323
    @hieuo9323 Жыл бұрын

    Phút thứ 14:10 ở phần khởi tạo PersonString,lớp person có T extends Number nên PersonString phải chuyển sang Integer cho thuộc kiểu số vậy vẫn muốn nó thuộc kiểu String mà vẫn giới hạn đc kiểu giá trị truyền vào thì s a nhỉ

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Chào bạn, câu hỏi của bạn rất thú vị. Nếu mình muốn T chỉ giới hạn cho String thì mình phải để T extends String. Nếu như vậy thì mình đảm bào kiểu dữ liệu truyền vào sẽ là String hoặc những lớp con của String. Mình hy vọng mình trả lời được câu hỏi của bạn, nếu bạn có câu hỏi nào thì để lại comment nha. Cảm ơn bạn nhiều ❤️

  • @toanlemanh1101
    @toanlemanh1101 Жыл бұрын

    a cho em hỏi là tại sao a lại dùng wrapper - Integer thay vì int tại phần instance variable ? Tiện a có thể chia sẻ về ưu nhược điểm của việc sử dụng wrapper class ko ?

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Cảm ơn bạn để lại câu hỏi nha. Trong Java, Generics được thiết kế để hỗ trợ kiểu dữ liệu động trong khi vẫn bảo đảm tính toàn vẹn của kiểu dữ liệu. Các kiểu dữ liệu nguyên thủy như int, double, float... không được hỗ trợ bởi Generics vì chúng là các kiểu dữ liệu cơ bản và không phải là các đối tượng. Thay vào đó, mình cần sử dụng các lớp bao đóng (wrapper class) như Integer, Double, Float... để đại diện cho các kiểu dữ liệu nguyên thủy. Các lớp bao đóng này là các lớp đối tượng được cung cấp bởi Java để bao gồm các kiểu dữ liệu nguyên thủy, cho phép mình sử dụng chúng trong các Generic class hoặc method. Việc sử dụng các lớp bao đóng cũng có thể giúp tăng khả năng tương thích của code của mình vì các kiểu dữ liệu bao đóng này có thể được chuyển đổi thành các kiểu dữ liệu nguyên thủy tương ứng một cách tự động (autoboxing). Ví dụ, khi mình truyền một đối tượng Integer vào một phương thức yêu cầu một tham số kiểu int, Java sẽ tự động chuyển đổi đối tượng Integer thành một giá trị kiểu int. Vì vậy, để sử dụng Generics trong Java, mình cần sử dụng các lớp bao đóng như Integer, Double, Float thay vì các kiểu dữ liệu nguyên thủy. Mình hy vọng mình giải thích được cẩu hỏi của bạn. Nếu bạn có câu hỏi nào, đừng ngần ngại comment mình sẽ trả lời trong thời gian sớm nhất. Cảm ơn bạn nhiều :)

  • @nhattrinh8823

    @nhattrinh8823

    Жыл бұрын

    @@CodeThu vậy các kiểu dữ liệu Integer, Double,... thuộc wrapper class cũng là đối tượng hả anh. Các kiểu dữ liệu bao đóng có thể tự động chuyển đổi thành các kiểu dữ liệu nguyên thủy tương ứng, vậy có phải tất cả các trường hợp sử dụng kiểu dữ liệu nguyên thủy trong java đều có thể thay thế bằng kiểu wrapper class không ạ. Cho em hỏi thêm 1 câu nữa là ngoài Generics, còn những kĩ thuật nào bắt buộc phải dùng wrapper class nữa không ạ. em cảm ơn

  • @CodeThu

    @CodeThu

    Жыл бұрын

    @@nhattrinh8823 chào bạn, cảm ơn bạn ủng hộ và để lại bình luộn nha. Đúng vậy bạn, các kiểu dữ liệu Integer, Double,... thuộc wrapper class đều là đối tượng trong Java. Các kiểu dữ liệu bao đóng này có thể tự động chuyển đổi thành các kiểu dữ liệu nguyên thủy tương ứng, điều này gọi là autoboxing và unboxing. Về câu hỏi thứ hai của bạn, ngoài Generics, wrapper class cũng được sử dụng trong các tình huống khác nhau. Một số trường hợp phổ biến mà bạn cần sử dụng wrapper class là khi làm việc với collections (danh sách), các cấu trúc dữ liệu phức tạp như List, Map, hoặc Set, và khi cần truyền kiểu dữ liệu nguyên thủy như đối tượng trong các phương thức. Mình có video về Wrapper Class, mình đảm bảo sẽ giải thích hết thắc mắc của bạn 😁kzread.info/dash/bejne/foecy9OIZ86Tl6Q.html

  • @nhattrinh8823

    @nhattrinh8823

    Жыл бұрын

    @@CodeThu thank anh

  • @tamtrung6172
    @tamtrung6172 Жыл бұрын

    Đây có được gọi overload không vậy anh

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Chào bạn, cảm ơn bạn ủng hộ nha. Generic không được gọi là overload bạn. Tại overload hay nạp chồng là khi một lớp có nhiều phương thức cũng tên nhưng khác nhau về số lượng tham số, kiểu dữ liệu của các tham số hoặc cả hai. Dưới đây là link video về overload bạn có thể tham khảo nha 😊 kzread.info/dash/bejne/i6yf0ZttcZXNgcY.html

  • @duytam6597
    @duytam6597 Жыл бұрын

    generic methods cũng giới hạn tương tự như generics class phải k ad?

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Đúng nha bạn, khi bạn sử dụng generic methods, bạn có thể giới hạn kiểu dữ liệu của tham số bằng cách sử dụng từ khóa `extends` để chỉ định ràng buộc kiểu (type bounds). Khi bạn sử dụng `T extends Type`, bạn đang ràng buộc kiểu dữ liệu của tham số `T` phải là một lớp hoặc giao diện mà mở rộng (extends) hoặc triển khai (implements) từ `Type` hoặc một lớp con của `Type`. Và generics class cũng hỗ trợ việc giới hạn kiểu dữ liệu bằng ràng buộc kiểu luôn. Cảm ơn bạn ủng hộ nha ❤️

  • @duytam6597

    @duytam6597

    Жыл бұрын

    @@CodeThu cảm ơn ad ạ, hihi. chúc ad sức khỏe tốt heng

  • @CodeThu

    @CodeThu

    Жыл бұрын

    @@duytam6597 cảm ơn bạn nha.

  • @VietTran-ro2xn
    @VietTran-ro2xn Жыл бұрын

    kho báu zootube

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Hihi cảm ơn bạn ủng hộ nha ❤️

  • @phamcongtoan1399
    @phamcongtoan1399 Жыл бұрын

    anh cho em hỏi có extends các class dc k z a 14:00

  • @CodeThu

    @CodeThu

    Жыл бұрын

    Chào bạn, bạn hoàn toàn có thể tạo một lớp mà mở rộng một lớp generic. Tuy nhiên, khi bạn mở rộng lớp generic, bạn cần phải chỉ định các kiểu dữ liệu thực tế cho các tham số kiểu của lớp generic mà bạn đang kế thừa. Nếu không, lớp của bạn cũng phải là một lớp generic với cùng các tham số kiểu đó 😊

  • @phamcongtoan1399

    @phamcongtoan1399

    Жыл бұрын

    ​@@CodeThuý e là kiểu như T có extends các lớp đối tượng(Cat,Dog...) không á anh

  • @CodeThu

    @CodeThu

    Жыл бұрын

    @@phamcongtoan1399 sorry bạn mình hiểu nhầm ý bạn một xíu. Câu trả lời ngắn cho câu hỏi của bạn là T có thể extends lớp nào cũng được nha bạn. Việc sử dụng từ khoá 'extends' trong Generics không chỉ giới hạn kiểu của T, mà còn giúp mình chắc chắn rằng T sẽ có tất cả các phương thức và thuộc tính của lớp hoặc interface mà T 'extends' từ đó. Điều này đồng nghĩa với việc mình có thể gọi các phương thức của lớp hoặc interface đó mà không cần phải ép kiểu. Khi bạn sử dụng cú pháp "T extends Dog", bạn đang nói rằng T có thể là bất kỳ lớp nào kế thừa từ Dog hoặc Dog nếu Dog là một interface. Nói cách khác, T có thể là lớp Dog hoặc một lớp con của Dog.

  • @thanhtamgiap3408
    @thanhtamgiap3408Ай бұрын

    nhét mấy meme dzo coi khó chịu thật sự, vừa ồn vừa mất tập trung, cái người xem cần sự tập trung vào nội dung

  • @Patrick_watterson
    @Patrick_watterson18 күн бұрын

    vừa kiếm được kênh ôn tập kiến thức lại để đỡ quên chất lượng như này mà kênh lại ngừng hoạt động faowifjoawehfoawfawoefjds đời éo le vkl ................