{"id":94831,"date":"2026-04-12T21:36:41","date_gmt":"2026-04-12T14:36:41","guid":{"rendered":"https:\/\/itviec.com\/blog\/?p=94831"},"modified":"2026-04-12T21:36:42","modified_gmt":"2026-04-12T14:36:42","slug":"ham-trong-java","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/ham-trong-java\/","title":{"rendered":"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Ham_trong_Java_la_gi\" >H\u00e0m trong Java l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Tai_sao_Java_khong_co_khai_niem_%E2%80%9Cfunction%E2%80%9D_dung_doc_lap_nhu_C_hay_Python\" >T\u1ea1i sao Java kh\u00f4ng c\u00f3 kh\u00e1i ni\u1ec7m &#8220;function&#8221; \u0111\u1ee9ng \u0111\u1ed9c l\u1eadp nh\u01b0 C++ hay Python?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Cau_truc_cua_mot_ham_trong_Java_gom_nhung_gi\" >C\u1ea5u tr\u00fac c\u1ee7a m\u1ed9t h\u00e0m trong Java g\u1ed3m nh\u1eefng g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Ham_trong_Java_gom_nhung_loai_nao\" >H\u00e0m trong Java g\u1ed3m nh\u1eefng lo\u1ea1i n\u00e0o?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Phan_biet_Tham_so_va_Doi_so_Parameters_Arguments\" >Ph\u00e2n bi\u1ec7t Tham s\u1ed1 v\u00e0 \u0110\u1ed1i s\u1ed1 (Parameters &amp; Arguments)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Ky_thuat_Ghi_de_Overriding_va_Nap_chong_Overloading\" >K\u1ef9 thu\u1eadt Ghi \u0111\u00e8 (Overriding) v\u00e0 N\u1ea1p ch\u1ed3ng (Overloading)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Kinh_nghiem_khi_lam_viec_voi_ham_trong_Java\" >Kinh nghi\u1ec7m khi l\u00e0m vi\u1ec7c v\u1edbi h\u00e0m trong Java<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Cac_cau_hoi_thuong_gap_ve_ham_trong_Java\" >C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 h\u00e0m trong Java<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/#Ket_luan\" >K\u1ebft lu\u1eadn<\/a><\/li><\/ul><\/nav><\/div>\n\n<p><strong><em>Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n, vi\u1ec7c l\u1eb7p l\u1ea1i c\u00f9ng m\u1ed9t \u0111o\u1ea1n m\u00e3 t\u1ea1i nhi\u1ec1u n\u01a1i kh\u00f4ng ch\u1ec9 g\u00e2y l\u00e3ng ph\u00ed t\u00e0i nguy\u00ean m\u00e0 c\u00f2n khi\u1ebfn h\u1ec7 th\u1ed1ng tr\u1edf n\u00ean c\u1ed3ng k\u1ec1nh, kh\u00f3 ki\u1ec3m so\u00e1t. \u0110\u1ec3 gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 n\u00e0y, Java s\u1eed d\u1ee5ng kh\u00e1i ni\u1ec7m h\u00e0m \u2013 hay c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 method (Ph\u01b0\u01a1ng th\u1ee9c).<\/em><\/strong><\/p>\n\n\n\n<p>\u0110\u1ecdc b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 hi\u1ec3u th\u00eam v\u1ec1:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>H\u00e0m trong Java l\u00e0 g\u00ec? C\u00f3 g\u00ec kh\u00e1c h\u00e0m trong C++ hay Python?<\/li>\n\n\n\n<li>C\u1ea5u tr\u00fac c\u1ee7a m\u1ed9t h\u00e0m trong Java<\/li>\n\n\n\n<li>Ph\u00e2n bi\u1ec7t c\u00e1c lo\u1ea1i h\u00e0m trong Java<\/li>\n\n\n\n<li>Tham s\u1ed1 v\u00e0 \u0110\u1ed1i s\u1ed1 (Parameters &amp; Arguments)<\/li>\n\n\n\n<li>K\u1ef9 thu\u1eadt n\u00e2ng cao v\u1ec1 h\u00e0m: Ghi \u0111\u00e8 (Overriding) v\u00e0 N\u1ea1p ch\u1ed3ng (Overloading)<\/li>\n\n\n\n<li>Kinh nghi\u1ec7m khi l\u00e0m vi\u1ec7c v\u1edbi h\u00e0m trong Java<\/li>\n\n\n\n<li>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 h\u00e0m trong Java<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ham-trong-java-la-gi\"><span class=\"ez-toc-section\" id=\"Ham_trong_Java_la_gi\"><\/span><strong>H\u00e0m trong Java l\u00e0 g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>H\u00e0m l\u00e0 m\u1ed9t kh\u1ed1i m\u00e3 th\u1ef1c hi\u1ec7n m\u1ed9t nhi\u1ec7m v\u1ee5 c\u1ee5 th\u1ec3 v\u00e0 ch\u1ec9 ch\u1ea1y khi \u0111\u01b0\u1ee3c g\u1ecdi tr\u1ef1c ti\u1ebfp. Vi\u1ec7c t\u1ed5 ch\u1ee9c m\u00e3 ngu\u1ed3n b\u1eb1ng h\u00e0m mang l\u1ea1i ba l\u1ee3i \u00edch c\u1ed1t l\u00f5i:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>T\u00ednh t\u00e1i s\u1eed d\u1ee5ng (Reusability) gi\u00fap gi\u1ea3m thi\u1ec3u m\u00e3 tr\u00f9ng l\u1eb7p<\/li>\n\n\n\n<li>T\u00ednh \u0111\u00f3ng g\u00f3i (Encapsulation) gi\u00fap qu\u1ea3n l\u00fd logic ch\u1eb7t ch\u1ebd<\/li>\n\n\n\n<li>Kh\u1ea3 n\u0103ng d\u1ec5 b\u1ea3o tr\u00ec khi c\u1ea7n thay \u0111\u1ed5i hay s\u1eeda l\u1ed7i<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-t\u1ea1i-sao-java-khong-co-khai-ni\u1ec7m-function-d\u1ee9ng-d\u1ed9c-l\u1eadp-nh\u01b0-c-hay-python\"><span class=\"ez-toc-section\" id=\"Tai_sao_Java_khong_co_khai_niem_%E2%80%9Cfunction%E2%80%9D_dung_doc_lap_nhu_C_hay_Python\"><\/span><strong>T\u1ea1i sao Java kh\u00f4ng c\u00f3 kh\u00e1i ni\u1ec7m &#8220;function&#8221; \u0111\u1ee9ng \u0111\u1ed9c l\u1eadp nh\u01b0 C++ hay Python?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>H\u00e0m trong Java th\u01b0\u1eddng \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 ph\u01b0\u01a1ng th\u1ee9c (method), kh\u00f4ng \u0111\u1ee9ng \u0111\u1ed9c l\u1eadp nh\u01b0 C++ hay Python. L\u00ed do ch\u00ednh n\u1eb1m \u1edf tri\u1ebft l\u00fd &#8220;h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng thu\u1ea7n t\u00fay&#8221;, n\u01a1i m\u1ecdi th\u1ef1c th\u1ec3 v\u00e0 h\u00e0nh vi \u0111\u1ec1u ph\u1ea3i \u0111\u01b0\u1ee3c \u0111\u00f3ng g\u00f3i b\u00ean trong m\u1ed9t l\u1edbp (class) c\u1ee5 th\u1ec3.&nbsp;<\/p>\n\n\n\n<p>Trong Java, m\u1ed9t h\u00e0m kh\u00f4ng th\u1ec3 t\u1ed3n t\u1ea1i n\u1ebfu kh\u00f4ng c\u00f3 ch\u1ee7 th\u1ec3 s\u1edf h\u1eefu n\u00f3, gi\u00fap \u0111\u1ea3m b\u1ea3o t\u00ednh qu\u1ea3n l\u00fd ch\u1eb7t ch\u1ebd v\u1ec1 ph\u1ea1m vi (scope) v\u00e0 tr\u00e1nh xung \u0111\u1ed9t t\u00ean g\u1ecdi trong c\u00e1c h\u1ec7 th\u1ed1ng ph\u1ea7n m\u1ec1m l\u1edbn. Thay v\u00ec \u0111\u1ec3 c\u00e1c h\u00e0m n\u1eb1m r\u1ea3i r\u00e1c, Java bu\u1ed9c l\u1eadp tr\u00ecnh vi\u00ean ph\u1ea3i t\u1ed5 ch\u1ee9c m\u00e3 ngu\u1ed3n theo c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng, \u0111i\u1ec1u n\u00e0y h\u1ed7 tr\u1ee3 t\u1ed1i \u0111a cho vi\u1ec7c \u0111\u00f3ng g\u00f3i, b\u1ea3o m\u1eadt v\u00e0 gi\u00fap b\u1ed9 \u1ea3o h\u00f3a Java (JVM) d\u1ec5 d\u00e0ng qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb th\u00f4ng qua vi\u1ec7c t\u1ea3i c\u00e1c l\u1edbp.&nbsp;<\/p>\n\n\n\n<p>Ngay c\u1ea3 khi Java 8 gi\u1edbi thi\u1ec7u Lambda Expression \u0111\u1ec3 h\u1ed7 tr\u1ee3 l\u1eadp tr\u00ecnh h\u00e0m, v\u1ec1 b\u1ea3n ch\u1ea5t ch\u00fang v\u1eabn \u0111\u01b0\u1ee3c \u00e1nh x\u1ea1 v\u00e0o c\u00e1c Functional Interface, gi\u1eef cho c\u1ea5u tr\u00fac c\u1ee7a ng\u00f4n ng\u1eef lu\u00f4n th\u1ed1ng nh\u1ea5t v\u00e0 nh\u1ea5t qu\u00e1n v\u1edbi t\u01b0 duy \u0111\u1ed1i t\u01b0\u1ee3ng ban \u0111\u1ea7u.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><em>\u0110\u1ecdc chi ti\u1ebft: <strong><a href=\"https:\/\/itviec.com\/blog\/java-la-gi\/\" target=\"_blank\" rel=\"noreferrer noopener\">Java l\u00e0 g\u00ec? T\u1ea5t c\u1ea3 nh\u1eefng \u0111i\u1ec1u b\u1ea1n c\u1ea7n bi\u1ebft v\u1ec1 ng\u00f4n ng\u1eef Java<\/a><\/strong><\/em><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-c\u1ea5u-truc-c\u1ee7a-m\u1ed9t-ham-trong-java-g\u1ed3m-nh\u1eefng-gi\"><span class=\"ez-toc-section\" id=\"Cau_truc_cua_mot_ham_trong_Java_gom_nhung_gi\"><\/span><strong>C\u1ea5u tr\u00fac c\u1ee7a m\u1ed9t h\u00e0m trong Java g\u1ed3m nh\u1eefng g\u00ec?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u0110\u1ec3 s\u1eed d\u1ee5ng h\u00e0m m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3, tr\u01b0\u1edbc h\u1ebft b\u1ea1n c\u1ea7n n\u1eafm v\u1eefng c\u1ea5u tr\u00fac khai b\u00e1o ti\u00eau chu\u1ea9n. M\u1ed9t h\u00e0m trong Java \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a theo &#8220;c\u00f4ng th\u1ee9c&#8221; t\u1ed5ng qu\u00e1t sau:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Access_Modifier + Return_Type + Method_Name(Parameter_List) \\{ \/\/ Method_Body \\}<\/code><\/pre>\n\n\n\n<p>M\u1ed7i th\u00e0nh ph\u1ea7n trong c\u00fa ph\u00e1p tr\u00ean \u0111\u1ec1u \u0111\u00f3ng m\u1ed9t vai tr\u00f2 nh\u1ea5t \u0111\u1ecbnh trong vi\u1ec7c \u0111i\u1ec1u khi\u1ec3n c\u00e1ch h\u00e0m ho\u1ea1t \u0111\u1ed9ng:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Access Modifier (Ph\u1ea1m vi truy c\u1eadp):<\/strong> X\u00e1c \u0111\u1ecbnh quy\u1ec1n h\u1ea1n \u0111\u01b0\u1ee3c ph\u00e9p g\u1ecdi h\u00e0m n\u00e0y (v\u00ed d\u1ee5: <code>public<\/code>, <code>private<\/code>, <code>protected<\/code>). N\u1ebfu kh\u00f4ng khai b\u00e1o, Java s\u1ebd s\u1eed d\u1ee5ng ph\u1ea1m vi m\u1eb7c \u0111\u1ecbnh (default).<\/li>\n\n\n\n<li><strong>Return Type (Ki\u1ec3u tr\u1ea3 v\u1ec1):<\/strong> \u0110\u1ecbnh ngh\u0129a ki\u1ec3u d\u1eef li\u1ec7u m\u00e0 h\u00e0m s\u1ebd tr\u1ea3 k\u1ebft qu\u1ea3 sau khi th\u1ef1c thi (nh\u01b0 <code>int<\/code>, <code>String<\/code>, <code>double<\/code>). N\u1ebfu h\u00e0m ch\u1ec9 th\u1ef1c hi\u1ec7n nhi\u1ec7m v\u1ee5 m\u00e0 kh\u00f4ng tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb, ta s\u1eed d\u1ee5ng t\u1eeb kh\u00f3a <code>void<\/code>.<\/li>\n\n\n\n<li><strong>Method Name (T\u00ean h\u00e0m):<\/strong> T\u00ean g\u1ecdi \u0111\u1ec3 \u0111\u1ecbnh danh h\u00e0m. Trong Java, t\u00ean h\u00e0m th\u01b0\u1eddng tu\u00e2n theo quy t\u1eafc <strong>camelCase<\/strong> (vi\u1ebft hoa ch\u1eef c\u00e1i \u0111\u1ea7u ti\u00ean c\u1ee7a t\u1eeb th\u1ee9 hai tr\u1edf \u0111i, v\u00ed d\u1ee5: <code>calculateTotalPrice<\/code>).<\/li>\n\n\n\n<li><strong>Parameter List (Danh s\u00e1ch tham s\u1ed1):<\/strong> L\u00e0 c\u00e1c bi\u1ebfn \u0111\u1ea7u v\u00e0o \u0111\u01b0\u1ee3c \u0111\u1eb7t trong d\u1ea5u ngo\u1eb7c \u0111\u01a1n <strong><code>()<\/code><\/strong>. N\u1ebfu h\u00e0m kh\u00f4ng c\u1ea7n d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o, ph\u1ea7n n\u00e0y s\u1ebd \u0111\u1ec3 tr\u1ed1ng.<\/li>\n\n\n\n<li><strong>Method Body (Th\u00e2n h\u00e0m):<\/strong> Ph\u1ea7n n\u1eb1m trong c\u1eb7p ngo\u1eb7c nh\u1ecdn <strong><code>{}<\/code><\/strong>. \u0110\u00e2y l\u00e0 n\u01a1i ch\u1ee9a to\u00e0n b\u1ed9 logic x\u1eed l\u00fd v\u00e0 c\u00e2u l\u1ec7nh th\u1ef1c thi c\u1ee7a h\u00e0m.<\/li>\n<\/ul>\n\n\n\n<p>V\u00ed d\u1ee5 minh h\u1ecda n\u1ebfu ph\u1ea1m vi truy c\u1eadp l\u00e0 <code>public<\/code>, ki\u1ec3u tr\u1ea3 v\u1ec1 l\u00e0&nbsp; int, t\u00ean h\u00e0m l\u00e0 <code>sum<\/code>, v\u00e0 hai tham s\u1ed1 \u0111\u1ea7u v\u00e0o l\u00e0 <code>a<\/code>, <code>b<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public int sum(int a, int b) {\n    int result = a + b;\n    return result;\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ham-trong-java-g\u1ed3m-nh\u1eefng-lo\u1ea1i-nao\"><span class=\"ez-toc-section\" id=\"Ham_trong_Java_gom_nhung_loai_nao\"><\/span><strong>H\u00e0m trong Java g\u1ed3m nh\u1eefng lo\u1ea1i n\u00e0o?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u0110\u1ec3 qu\u1ea3n l\u00fd v\u00e0 s\u1eed d\u1ee5ng hi\u1ec7u qu\u1ea3, c\u00e1c h\u00e0m trong Java th\u01b0\u1eddng \u0111\u01b0\u1ee3c chia th\u00e0nh hai nh\u00f3m ch\u00ednh d\u1ef1a tr\u00ean ngu\u1ed3n g\u1ed1c v\u00e0 c\u00e1ch th\u1ee9c ho\u1ea1t \u0111\u1ed9ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ham-co-s\u1eb5n-predefined-methods\"><strong>H\u00e0m c\u00f3 s\u1eb5n (Predefined Methods)<\/strong><\/h3>\n\n\n\n<p>\u0110\u00e2y l\u00e0 nh\u1eefng h\u00e0m \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ed9i ng\u0169 ph\u00e1t tri\u1ec3n Java x\u00e2y d\u1ef1ng s\u1eb5n trong c\u00e1c th\u01b0 vi\u1ec7n chu\u1ea9n (JDK). B\u1ea1n ch\u1ec9 c\u1ea7n g\u1ecdi t\u00ean v\u00e0 s\u1eed d\u1ee5ng m\u00e0 kh\u00f4ng c\u1ea7n quan t\u00e2m \u0111\u1ebfn logic b\u00ean trong.<\/p>\n\n\n\n<p><strong>V\u00ed d\u1ee5:<\/strong>&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>System.out.println()<\/code> d\u00f9ng \u0111\u1ec3 in d\u1eef li\u1ec7u<\/li>\n\n\n\n<li><code>Math.max(a, b)<\/code> \u0111\u1ec3 t\u00ecm s\u1ed1 l\u1edbn h\u01a1n<\/li>\n\n\n\n<li><code>String.length()<\/code> \u0111\u1ec3 \u0111o \u0111\u1ed9 d\u00e0i chu\u1ed7i<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ham-do-ng\u01b0\u1eddi-dung-d\u1ecbnh-nghia-user-defined-methods\"><strong>H\u00e0m do ng\u01b0\u1eddi d\u00f9ng \u0111\u1ecbnh ngh\u0129a (User-defined Methods)<\/strong><\/h3>\n\n\n\n<p>\u0110\u00e2y l\u00e0 c\u00e1c h\u00e0m do l\u1eadp tr\u00ecnh vi\u00ean t\u1ef1 vi\u1ebft \u0111\u1ec3 gi\u1ea3i quy\u1ebft c\u00e1c b\u00e0i to\u00e1n c\u1ee5 th\u1ec3 trong d\u1ef1 \u00e1n. B\u1ea1n c\u00f3 to\u00e0n quy\u1ec1n quy\u1ebft \u0111\u1ecbnh t\u00ean g\u1ecdi, tham s\u1ed1 \u0111\u1ea7u v\u00e0o v\u00e0 logic x\u1eed l\u00fd b\u00ean trong th\u00e2n h\u00e0m.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-phan-bi\u1ec7t-ham-tinh-static-va-ham-th\u1ef1c-th\u1ec3-non-static-instance\"><strong>Ph\u00e2n bi\u1ec7t h\u00e0m t\u0129nh (static) v\u00e0 h\u00e0m th\u1ef1c th\u1ec3 (non-static\/instance)<\/strong><\/h3>\n\n\n\n<p>M\u1ed9t trong nh\u1eefng \u0111i\u1ec3m quan tr\u1ecdng nh\u1ea5t khi l\u00e0m vi\u1ec7c v\u1edbi h\u00e0m trong Java l\u00e0 hi\u1ec3u r\u00f5 s\u1ef1 kh\u00e1c bi\u1ec7t gi\u1eefa h\u00e0m t\u0129nh (static) v\u00e0 h\u00e0m th\u1ef1c th\u1ec3 (non-static\/instance).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>\u0110\u1eb7c \u0111i\u1ec3m<\/strong><\/td><td><strong>H\u00e0m Static<\/strong><\/td><td><strong>H\u00e0m Instance<\/strong><\/td><\/tr><tr><td><strong>T\u1eeb kh\u00f3a<\/strong><\/td><td>C\u00f3 t\u1eeb kh\u00f3a static khi khai b\u00e1o.<\/td><td>Kh\u00f4ng s\u1eed d\u1ee5ng t\u1eeb kh\u00f3a static.<\/td><\/tr><tr><td><strong>C\u00e1ch g\u1ecdi<\/strong><\/td><td>G\u1ecdi tr\u1ef1c ti\u1ebfp th\u00f4ng qua <strong>T\u00ean Class<\/strong>.<\/td><td>Ph\u1ea3i kh\u1edfi t\u1ea1o <strong>\u0110\u1ed1i t\u01b0\u1ee3ng (Object)<\/strong> m\u1edbi c\u00f3 th\u1ec3 g\u1ecdi.<\/td><\/tr><tr><td><strong>M\u1ee5c \u0111\u00edch<\/strong><\/td><td>D\u00f9ng cho c\u00e1c t\u00e1c v\u1ee5 chung, kh\u00f4ng ph\u1ee5 thu\u1ed9c v\u00e0o tr\u1ea1ng th\u00e1i c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng.<\/td><td>D\u00f9ng \u0111\u1ec3 x\u1eed l\u00fd d\u1eef li\u1ec7u ri\u00eang bi\u1ec7t c\u1ee7a t\u1eebng \u0111\u1ed1i t\u01b0\u1ee3ng c\u1ee5 th\u1ec3.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>V\u00ed d\u1ee5 minh h\u1ecda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Calculator {\n    \/\/ H\u00e0m Static: G\u1ecdi b\u1eb1ng Calculator.add(5, 3)\n    public static int add(int a, int b) {\n        return a + b;\n    }\n\n    \/\/ H\u00e0m Instance: Ph\u1ea3i t\u1ea1o \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi g\u1ecdi \u0111\u01b0\u1ee3c\n    public void displayResult(int result) {\n        System.out.println(\"K\u1ebft qu\u1ea3 l\u00e0: \" + result);\n    }\n}<\/code><\/pre>\n\n\n\n<p>Trong v\u00ed d\u1ee5 n\u00e0y:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0110\u1ec3 d\u00f9ng h\u00e0m <code>add<\/code> \u2192 B\u1ea1n ch\u1ec9 c\u1ea7n vi\u1ebft <code>Calculator.add(5, 10);<\/code><\/li>\n\n\n\n<li>\u0110\u1ec3 d\u00f9ng h\u00e0m <code>displayResult<\/code> \u2192 B\u1ea1n ph\u1ea3i kh\u1edfi t\u1ea1o \u0111\u1ed1i t\u01b0\u1ee3ng:&nbsp;<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>Calculator cal = new Calculator(); cal.displayResult(15);<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-phan-bi\u1ec7t-tham-s\u1ed1-va-d\u1ed1i-s\u1ed1-parameters-amp-arguments\"><span class=\"ez-toc-section\" id=\"Phan_biet_Tham_so_va_Doi_so_Parameters_Arguments\"><\/span><strong>Ph\u00e2n bi\u1ec7t Tham s\u1ed1 v\u00e0 \u0110\u1ed1i s\u1ed1 (Parameters &amp; Arguments)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Trong l\u1eadp tr\u00ecnh, hai kh\u00e1i ni\u1ec7m n\u00e0y th\u01b0\u1eddng b\u1ecb d\u00f9ng l\u1eabn l\u1ed9n, nh\u01b0ng ch\u00fang c\u00f3 vai tr\u00f2 kh\u00e1c nhau trong v\u00f2ng \u0111\u1eddi c\u1ee7a m\u1ed9t h\u00e0m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tham s\u1ed1 (Parameters):<\/strong> L\u00e0 c\u00e1c bi\u1ebfn \u0111\u01b0\u1ee3c khai b\u00e1o trong \u0111\u1ecbnh ngh\u0129a h\u00e0m. Ch\u00fang \u0111\u00f3ng vai tr\u00f2 l\u00e0 &#8220;bi\u1ebfn t\u1ea1m&#8221; \u0111\u1ec3 nh\u1eadn d\u1eef li\u1ec7u khi h\u00e0m \u0111\u01b0\u1ee3c th\u1ef1c thi.<\/li>\n\n\n\n<li><strong>\u0110\u1ed1i s\u1ed1 (Arguments):<\/strong> L\u00e0 gi\u00e1 tr\u1ecb th\u1ef1c t\u1ebf m\u00e0 b\u1ea1n truy\u1ec1n v\u00e0o h\u00e0m khi th\u1ef1c hi\u1ec7n l\u1eddi g\u1ecdi h\u00e0m.<\/li>\n<\/ul>\n\n\n\n<p><strong>V\u00ed d\u1ee5:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public void greet(String name) { \/\/ \"name\" l\u00e0 tham s\u1ed1 (Parameter)\n    System.out.println(\"Hello \" + name);\n}\n\ngreet(\"Java\"); \/\/ \"Java\" l\u00e0 \u0111\u1ed1i s\u1ed1 (Argument)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c\u01a1-ch\u1ebf-truy\u1ec1n-tham-tr\u1ecb-pass-by-value-trong-java\"><strong>C\u01a1 ch\u1ebf Truy\u1ec1n tham tr\u1ecb (Pass by Value) trong Java<\/strong><\/h3>\n\n\n\n<p>M\u1ed9t \u0111i\u1ec3m c\u1ef1c k\u1ef3 quan tr\u1ecdng c\u1ea7n l\u01b0u \u00fd: Java lu\u00f4n lu\u00f4n s\u1eed d\u1ee5ng c\u01a1 ch\u1ebf Truy\u1ec1n tham tr\u1ecb (Pass by Value). \u0110i\u1ec1u n\u00e0y c\u00f3 ngh\u0129a l\u00e0 khi b\u1ea1n truy\u1ec1n m\u1ed9t \u0111\u1ed1i s\u1ed1 v\u00e0o h\u00e0m, Java s\u1ebd t\u1ea1o ra m\u1ed9t b\u1ea3n sao c\u1ee7a gi\u00e1 tr\u1ecb \u0111\u00f3 v\u00e0 g\u1eedi b\u1ea3n sao n\u00e0y v\u00e0o trong h\u00e0m.<\/p>\n\n\n\n<p>C\u01a1 ch\u1ebf n\u00e0y ho\u1ea1t \u0111\u1ed9ng kh\u00e1c nhau t\u00f9y thu\u1ed9c v\u00e0o ki\u1ec3u d\u1eef li\u1ec7u:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u0110\u1ed1i v\u1edbi ki\u1ec3u d\u1eef li\u1ec7u nguy\u00ean th\u1ee7y (Primitive Types): <\/strong>Khi truy\u1ec1n c\u00e1c ki\u1ec3u nh\u01b0 <code>int<\/code>, <code>double<\/code>, <code>boolean<\/code>&#8230; h\u00e0m s\u1ebd nh\u1eadn m\u1ed9t b\u1ea3n sao c\u1ee7a gi\u00e1 tr\u1ecb. M\u1ecdi thay \u0111\u1ed5i \u0111\u1ed1i v\u1edbi tham s\u1ed1 b\u00ean trong h\u00e0m s\u1ebd kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn bi\u1ebfn g\u1ed1c b\u00ean ngo\u00e0i.<\/li>\n\n\n\n<li><strong>\u0110\u1ed1i v\u1edbi ki\u1ec3u d\u1eef li\u1ec7u tham chi\u1ebfu (Reference Types): <\/strong>\u0110\u1ed1i v\u1edbi c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng (Object), Java truy\u1ec1n b\u1ea3n sao c\u1ee7a \u0111\u1ecba ch\u1ec9 \u00f4 nh\u1edb (reference).\n<ul class=\"wp-block-list\">\n<li>N\u1ebfu b\u1ea1n thay \u0111\u1ed5i n\u1ed9i dung c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng th\u00f4ng qua \u0111\u1ecba ch\u1ec9 n\u00e0y, bi\u1ebfn g\u1ed1c b\u00ean ngo\u00e0i s\u1ebd thay \u0111\u1ed5i (v\u00ec c\u1ea3 hai c\u00f9ng tr\u1ecf v\u00e0o m\u1ed9t v\u00f9ng nh\u1edb).<\/li>\n\n\n\n<li>N\u1ebfu b\u1ea1n g\u00e1n tham s\u1ed1 \u0111\u00f3 cho m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng m\u1edbi ho\u00e0n to\u00e0n trong h\u00e0m, bi\u1ebfn g\u1ed1c b\u00ean ngo\u00e0i s\u1ebd kh\u00f4ng thay \u0111\u1ed5i.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p><strong>L\u01b0u \u00fd quan tr\u1ecdng: <\/strong>Nhi\u1ec1u ng\u01b0\u1eddi l\u1ea7m t\u01b0\u1edfng Java truy\u1ec1n tham chi\u1ebfu (Pass by Reference) cho Object, nh\u01b0ng th\u1ef1c t\u1ebf Java ch\u1ec9 sao ch\u00e9p &#8220;gi\u00e1 tr\u1ecb c\u1ee7a c\u00e1i tham chi\u1ebfu \u0111\u00f3&#8221; r\u1ed3i truy\u1ec1n \u0111i. Hi\u1ec3u \u0111\u00fang b\u1ea3n ch\u1ea5t n\u00e0y gi\u00fap b\u1ea1n tr\u00e1nh \u0111\u01b0\u1ee3c c\u00e1c l\u1ed7i logic kh\u00f3 t\u00ecm khi x\u1eed l\u00fd d\u1eef li\u1ec7u m\u1ea3ng ho\u1eb7c object ph\u1ee9c t\u1ea1p.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-k\u1ef9-thu\u1eadt-ghi-de-overriding-va-n\u1ea1p-ch\u1ed3ng-overloading\"><span class=\"ez-toc-section\" id=\"Ky_thuat_Ghi_de_Overriding_va_Nap_chong_Overloading\"><\/span><strong>K\u1ef9 thu\u1eadt Ghi \u0111\u00e8 (Overriding) v\u00e0 N\u1ea1p ch\u1ed3ng (Overloading)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u0110\u1ec3 s\u1eed d\u1ee5ng h\u00e0m m\u1ed9t c\u00e1ch linh ho\u1ea1t, b\u1ea1n c\u1ea7n ph\u00e2n bi\u1ec7t r\u00f5 hai k\u1ef9 thu\u1eadt: Overloading v\u00e0 Overriding. \u0110\u00e2y ch\u00ednh l\u00e0 c\u00e1ch Java th\u1ef1c hi\u1ec7n t\u00ednh \u0111a h\u00ecnh (Polymorphism).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-method-overloading-n\u1ea1p-ch\u1ed3ng-ph\u01b0\u01a1ng-th\u1ee9c\"><strong>Method Overloading (N\u1ea1p ch\u1ed3ng ph\u01b0\u01a1ng th\u1ee9c)<\/strong><\/h3>\n\n\n\n<p>N\u1ea1p ch\u1ed3ng x\u1ea3y ra khi trong c\u00f9ng m\u1ed9t l\u1edbp c\u00f3 nhi\u1ec1u <strong>h\u00e0m<\/strong> <strong>c\u00f9ng t\u00ean<\/strong> nh\u01b0ng <strong>kh\u00e1c nhau v\u1ec1 tham s\u1ed1<\/strong> (kh\u00e1c s\u1ed1 l\u01b0\u1ee3ng tham s\u1ed1 ho\u1eb7c kh\u00e1c ki\u1ec3u d\u1eef li\u1ec7u c\u1ee7a tham s\u1ed1).<\/p>\n\n\n\n<p><strong>Th\u1eddi \u0111i\u1ec3m x\u00e1c \u0111\u1ecbnh:<\/strong> X\u1ea3y ra trong qu\u00e1 tr\u00ecnh bi\u00ean d\u1ecbch (Compile-time polymorphism).<\/p>\n\n\n\n<p><strong>M\u1ee5c \u0111\u00edch:<\/strong> Gi\u00fap th\u1ef1c hi\u1ec7n c\u00e1c c\u00f4ng vi\u1ec7c t\u01b0\u01a1ng t\u1ef1 nhau v\u1edbi c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u \u0111\u1ea7u v\u00e0o kh\u00e1c nhau m\u00e0 kh\u00f4ng c\u1ea7n \u0111\u1eb7t nhi\u1ec1u t\u00ean h\u00e0m g\u00e2y nh\u1ea7m l\u1eabn.<\/p>\n\n\n\n<p><strong>V\u00ed d\u1ee5:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public int add(int a, int b) { return a + b; }\npublic double add(double a, double b) { return a + b; } \/\/ N\u1ea1p ch\u1ed3ng h\u00e0m add<\/code><\/pre>\n\n\n\n<p><strong>Gi\u1ea3i th\u00edch:<\/strong><\/p>\n\n\n\n<p>H\u00e0m 1:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public int add(int a, int b)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nh\u1eadn v\u00e0o 2 s\u1ed1 nguy\u00ean (<code>int<\/code>).<\/li>\n\n\n\n<li>Tr\u1ea3 v\u1ec1 t\u1ed5ng l\u00e0 m\u1ed9t s\u1ed1 nguy\u00ean.<\/li>\n<\/ul>\n\n\n\n<p>H\u00e0m 2:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public double add(double a, double b)<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nh\u1eadn v\u00e0o 2 s\u1ed1 th\u1ef1c (<code>double<\/code>).<\/li>\n\n\n\n<li>Tr\u1ea3 v\u1ec1 t\u1ed5ng l\u00e0 m\u1ed9t s\u1ed1 th\u1ef1c.<\/li>\n<\/ul>\n\n\n\n<p>Thay v\u00ec ph\u1ea3i vi\u1ebft 2 h\u00e0m add x\u1eed l\u00fd ri\u00eang cho ki\u1ec3u d\u1eef li\u1ec7u int (s\u1ed1 nguy\u00ean) v\u00e0 double (s\u1ed1 th\u1ef1c), th\u00ec ta ch\u1ec9 c\u1ea7n vi\u1ebft 1 h\u00e0m x\u1eed l\u00fd chung. Nh\u1edd \u0111\u00f3 tr\u00e1nh l\u1eb7p l\u1ea1i code v\u1edbi c\u00f9ng m\u1ed9t ch\u1ee9c n\u0103ng.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-method-overriding-ghi-de-ph\u01b0\u01a1ng-th\u1ee9c\"><strong>Method Overriding (Ghi \u0111\u00e8 ph\u01b0\u01a1ng th\u1ee9c)<\/strong><\/h3>\n\n\n\n<p>Ghi \u0111\u00e8 x\u1ea3y ra khi m\u1ed9t l\u1edbp con (Subclass) \u0111\u1ecbnh ngh\u0129a l\u1ea1i m\u1ed9t h\u00e0m \u0111\u00e3 t\u1ed3n t\u1ea1i \u1edf l\u1edbp cha (Superclass). H\u00e0m \u1edf l\u1edbp con ph\u1ea3i c\u00f3 <strong>c\u00f9ng t\u00ean, c\u00f9ng tham s\u1ed1 v\u00e0 c\u00f9ng ki\u1ec3u tr\u1ea3 v\u1ec1<\/strong> v\u1edbi h\u00e0m \u1edf l\u1edbp cha.<\/p>\n\n\n\n<p><strong>Th\u1eddi \u0111i\u1ec3m x\u00e1c \u0111\u1ecbnh:<\/strong> X\u1ea3y ra trong qu\u00e1 tr\u00ecnh th\u1ef1c thi ch\u01b0\u01a1ng tr\u00ecnh (Runtime polymorphism).<\/p>\n\n\n\n<p><strong>M\u1ee5c \u0111\u00edch:<\/strong> Cho ph\u00e9p l\u1edbp con thay \u0111\u1ed5i ho\u1eb7c \u0111\u1eb7c t\u1ea3 l\u1ea1i logic x\u1eed l\u00fd c\u1ee7a l\u1edbp cha cho ph\u00f9 h\u1ee3p v\u1edbi nhu c\u1ea7u ri\u00eang.<\/p>\n\n\n\n<p><strong>V\u00ed d\u1ee5 code:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ L\u1edbp Cha (Superclass)\nclass Animal {\n    public void makeSound() {\n        System.out.println(\"\u0110\u1ed9ng v\u1eadt \u0111ang t\u1ea1o ra \u00e2m thanh...\");\n    }\n}\n\n\/\/ L\u1edbp Con (Subclass) k\u1ebf th\u1eeba t\u1eeb Animal\nclass Dog extends Animal {\n    @Override \/\/ Annotation n\u00e0y \u0111\u1ec3 b\u00e1o cho tr\u00ecnh bi\u00ean d\u1ecbch bi\u1ebft \u0111\u00e2y l\u00e0 ghi \u0111\u00e8\n    public void makeSound() {\n        System.out.println(\"G\u00e2u G\u00e2u!\");\n    }\n}\n\n\/\/ L\u1edbp Con kh\u00e1c k\u1ebf th\u1eeba t\u1eeb Animal\nclass Cat extends Animal {\n    @Override\n    public void makeSound() {\n        System.out.println(\"M\u00e8o Meo!\");\n    }\n}<\/code><\/pre>\n\n\n\n<p>C\u00e1ch th\u1ef1c thi trong h\u00e0m Main:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Main {\n    public static void main(String&#91;] args) {\n        Animal myAnimal = new Animal();\n        Animal myDog = new Dog(); \/\/ T\u00ednh \u0111a h\u00ecnh\n        Animal myCat = new Cat();\n\n        myAnimal.makeSound(); \/\/ K\u1ebft qu\u1ea3: \u0110\u1ed9ng v\u1eadt \u0111ang t\u1ea1o ra \u00e2m thanh...\n        myDog.makeSound();    \/\/ K\u1ebft qu\u1ea3: G\u00e2u G\u00e2u! (Ph\u01b0\u01a1ng th\u1ee9c c\u1ee7a l\u1edbp cha \u0111\u00e3 b\u1ecb ghi \u0111\u00e8)\n        myCat.makeSound();    \/\/ K\u1ebft qu\u1ea3: M\u00e8o Meo! (Ph\u01b0\u01a1ng th\u1ee9c c\u1ee7a l\u1edbp cha \u0111\u00e3 b\u1ecb ghi \u0111\u00e8)\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-b\u1ea3ng-so-sanh-nhanh\"><strong>B\u1ea3ng so s\u00e1nh nhanh<\/strong><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>\u0110\u1eb7c \u0111i\u1ec3m&nbsp;<\/strong><\/td><td><strong>Method Overloading&nbsp;<\/strong><\/td><td><strong>Method Overriding&nbsp;<\/strong><\/td><\/tr><tr><td><strong>Quan h\u1ec7 l\u1edbp<\/strong><\/td><td>Trong c\u00f9ng m\u1ed9t l\u1edbp<\/td><td>Gi\u1eefa l\u1edbp cha v\u00e0 l\u1edbp con (Inheritance)<\/td><\/tr><tr><td><strong>Tham s\u1ed1<\/strong><\/td><td>Ph\u1ea3i kh\u00e1c nhau<\/td><td>Ph\u1ea3i gi\u1ed1ng h\u1ec7t nhau<\/td><\/tr><tr><td><strong>T\u00ednh \u0111a h\u00ecnh<\/strong><\/td><td>Compile-time (\u0110a h\u00ecnh t\u0129nh).<\/td><td>Runtime (\u0110a h\u00ecnh \u0111\u1ed9ng)<\/td><\/tr><tr><td><strong>T\u1eeb kh\u00f3a h\u1ed7 tr\u1ee3<\/strong><\/td><td>Kh\u00f4ng b\u1eaft bu\u1ed9c.<\/td><td>Th\u01b0\u1eddng d\u00f9ng @Override \u0111\u1ec3 \u0111\u00e1nh d\u1ea5u.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kinh-nghi\u1ec7m-khi-lam-vi\u1ec7c-v\u1edbi-ham-trong-java\"><span class=\"ez-toc-section\" id=\"Kinh_nghiem_khi_lam_viec_voi_ham_trong_Java\"><\/span><strong>Kinh nghi\u1ec7m khi l\u00e0m vi\u1ec7c v\u1edbi h\u00e0m trong Java<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vi\u1ec7c hi\u1ec3u c\u00fa ph\u00e1p l\u00e0 \u0111i\u1ec1u ki\u1ec7n c\u1ea7n, nh\u01b0ng \u0111\u1ec3 vi\u1ebft \u0111\u01b0\u1ee3c nh\u1eefng h\u00e0m &#8220;s\u1ea1ch&#8221; v\u00e0 hi\u1ec7u qu\u1ea3, b\u1ea1n n\u00ean tu\u00e2n th\u1ee7 c\u00e1c nguy\u00ean t\u1eafc sau:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-quy-t\u1eafc-single-responsibility-d\u01a1n-nhi\u1ec7m\"><strong>Quy t\u1eafc &#8220;Single Responsibility&#8221; (\u0110\u01a1n nhi\u1ec7m)<\/strong><\/h3>\n\n\n\n<p><strong>M\u1ed9t h\u00e0m ch\u1ec9 n\u00ean th\u1ef1c hi\u1ec7n duy nh\u1ea5t m\u1ed9t nhi\u1ec7m v\u1ee5. <\/strong>N\u1ebfu b\u1ea1n th\u1ea5y h\u00e0m c\u1ee7a m\u00ecnh \u0111ang l\u00e0m qu\u00e1 nhi\u1ec1u vi\u1ec7c (v\u1eeba t\u00ednh to\u00e1n, v\u1eeba ghi file, v\u1eeba g\u1eedi mail), h\u00e3y chia nh\u1ecf n\u00f3 ra. \u0110i\u1ec1u n\u00e0y gi\u00fap vi\u1ec7c ki\u1ec3m th\u1eed (unit test) v\u00e0 t\u00e1i s\u1eed d\u1ee5ng tr\u1edf n\u00ean d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ 1. Ch\u1ec9 qu\u1ea3n l\u00fd d\u1eef li\u1ec7u h\u00f3a \u0111\u01a1n\nclass Invoice {\n    private double amount;\n    public double getAmount() { return amount; }\n}\n\/\/ 2. Ch\u1ec9 ph\u1ee5 tr\u00e1ch in \u1ea5n\nclass InvoicePrinter {\n    public void print(Invoice invoice) {\n        System.out.println(\"In h\u00f3a \u0111\u01a1n: \" + invoice.getAmount());\n    }\n}\n\/\/ 3. Ch\u1ec9 ph\u1ee5 tr\u00e1ch l\u01b0u tr\u1eef\nclass InvoiceRepository {\n    public void save(Invoice invoice) {\n        System.out.println(\"L\u01b0u h\u00f3a \u0111\u01a1n v\u00e0o Database...\");\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-d\u1eb7t-ten-ham-co-y-nghia\"><strong>\u0110\u1eb7t t\u00ean h\u00e0m c\u00f3 \u00fd ngh\u0129a<\/strong><\/h3>\n\n\n\n<p>T\u00ean h\u00e0m n\u00ean <strong>b\u1eaft \u0111\u1ea7u b\u1eb1ng m\u1ed9t \u0111\u1ed9ng t\u1eeb<\/strong> \u0111\u1ec3 th\u1ec3 hi\u1ec7n h\u00e0nh \u0111\u1ed9ng. Tr\u00e1nh nh\u1eefng t\u00ean chung chung nh\u01b0 <code>handleData()<\/code> hay <code>process()<\/code>.<\/p>\n\n\n\n<p>Thay v\u00e0o \u0111\u00f3, h\u00e3y d\u00f9ng <code>validateUserEmail()<\/code> ho\u1eb7c <code>calculateTaxAmount()<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-h\u1ea1n-ch\u1ebf-s\u1ed1-l\u01b0\u1ee3ng-tham-s\u1ed1\"><strong>H\u1ea1n ch\u1ebf s\u1ed1 l\u01b0\u1ee3ng tham s\u1ed1<\/strong><\/h3>\n\n\n\n<p>M\u1ed9t h\u00e0m c\u00f3 qu\u00e1 nhi\u1ec1u tham s\u1ed1 (th\u01b0\u1eddng l\u00e0 tr\u00ean 3-4 tham s\u1ed1) s\u1ebd g\u00e2y kh\u00f3 kh\u0103n cho ng\u01b0\u1eddi g\u1ecdi h\u00e0m v\u00e0 d\u1ec5 nh\u1ea7m l\u1eabn th\u1ee9 t\u1ef1 truy\u1ec1n v\u00e0o. N\u1ebfu c\u1ea7n truy\u1ec1n nhi\u1ec1u d\u1eef li\u1ec7u, h\u00e3y c\u00e2n nh\u1eafc \u0111\u00f3ng g\u00f3i ch\u00fang v\u00e0o m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng (Object) ho\u1eb7c s\u1eed d\u1ee5ng Pattern ph\u00f9 h\u1ee3p.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tranh-side-effects-nbsp\"><strong>Tr\u00e1nh Side Effects&nbsp;<\/strong><\/h3>\n\n\n\n<p>H\u00e0m n\u00ean h\u1ea1n ch\u1ebf vi\u1ec7c thay \u0111\u1ed5i c\u00e1c bi\u1ebfn to\u00e0n c\u1ee5c ho\u1eb7c tr\u1ea1ng th\u00e1i b\u00ean ngo\u00e0i m\u1ed9t c\u00e1ch \u00e2m th\u1ea7m. M\u1ed9t h\u00e0m t\u1ed1t l\u00e0 h\u00e0m m\u00e0 k\u1ebft qu\u1ea3 \u0111\u1ea7u ra ch\u1ec9 ph\u1ee5 thu\u1ed9c v\u00e0o tham s\u1ed1 \u0111\u1ea7u v\u00e0o v\u00e0 logic b\u00ean trong n\u00f3.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Calculator {\n    \n    \/\/ PURE FUNCTION: Kh\u00f4ng thay \u0111\u1ed5i b\u1ea5t k\u1ef3 th\u1ee9 g\u00ec b\u00ean ngo\u00e0i\n    \/\/ K\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1 duy nh\u1ea5t ph\u1ee5 thu\u1ed9c v\u00e0o tham s\u1ed1 truy\u1ec1n v\u00e0o\n    public static int calculateTotal(int currentBalance, int bonus) {\n        return currentBalance + bonus; \n    }\n\n    public static void main(String&#91;] args) {\n        int balance = 1000;\n        \n        \/\/ G\u1ecdi h\u00e0m v\u00e0 nh\u1eadn k\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1\n        int newBalance = calculateTotal(balance, 500);\n        \n        System.out.println(\"S\u1ed1 d\u01b0 c\u0169: \" + balance);    \/\/ V\u1eabn l\u00e0 1000\n        System.out.println(\"S\u1ed1 d\u01b0 m\u1edbi: \" + newBalance); \/\/ L\u00e0 1500\n    }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-x\u1eed-ly-gia-tr\u1ecb-tr\u1ea3-v\u1ec1\"><strong>X\u1eed l\u00fd gi\u00e1 tr\u1ecb tr\u1ea3 v\u1ec1<\/strong><\/h3>\n\n\n\n<p>Tr\u00e1nh tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb <code>null<\/code> n\u1ebfu c\u00f3 th\u1ec3. Thay v\u00e0o \u0111\u00f3, h\u00e3y tr\u1ea3 v\u1ec1 m\u1ed9t m\u1ea3ng r\u1ed7ng, m\u1ed9t collection r\u1ed7ng ho\u1eb7c s\u1eed d\u1ee5ng <code>Optional<\/code> (t\u1eeb Java 8 tr\u1edf \u0111i) \u0111\u1ec3 tr\u00e1nh l\u1ed7i <code>NullPointerException<\/code>.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5 :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import java.util.*;\n\npublic class UserService {\n    \/\/ 1. V\u1edbi Danh s\u00e1ch: Tr\u1ea3 v\u1ec1 m\u1ed9t List r\u1ed7ng thay v\u00ec null\n    public List&lt;String&gt; getUsers() {\n        if (databaseIsEmpty) {\n            return Collections.emptyList(); \/\/ An to\u00e0n, ng\u01b0\u1eddi d\u00f9ng d\u00f9ng v\u00f2ng l\u1eb7p for s\u1ebd kh\u00f4ng b\u1ecb l\u1ed7i\n        }\n        return userList;\n    }\n\n    \/\/ 2. V\u1edbi \u0111\u1ed1i t\u01b0\u1ee3ng \u0111\u01a1n l\u1ebb: S\u1eed d\u1ee5ng Optional (Java 8+)\n    public Optional&lt;String&gt; findUserById(String id) {\n        if (userNotFound) {\n            return Optional.empty(); \/\/ Th\u00f4ng b\u00e1o r\u00f5 r\u00e0ng r\u1eb1ng \"c\u00f3 th\u1ec3 kh\u00f4ng c\u00f3 k\u1ebft qu\u1ea3\"\n        }\n        return Optional.of(\"Nguyen Van A\");\n    }\n}<\/code><\/pre>\n\n\n\n<p>S\u1eed d\u1ee5ng t\u1eeb kh\u00f3a <code>void<\/code> m\u1ed9t c\u00e1ch h\u1ee3p l\u00fd cho c\u00e1c h\u00e0m th\u1ef1c thi h\u00e0nh \u0111\u1ed9ng (nh\u01b0 in \u1ea5n, l\u01b0u database) thay v\u00ec c\u00e1c h\u00e0m t\u00ednh to\u00e1n gi\u00e1 tr\u1ecb.<\/p>\n\n\n\n<p>V\u00ed d\u1ee5 code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class OrderProcessor {\n    private double price = 100.0;\n\n    \/\/ H\u00c0M T\u00cdNH TO\u00c1N (Query): Ph\u1ea3i tr\u1ea3 v\u1ec1 gi\u00e1 tr\u1ecb, kh\u00f4ng n\u00ean d\u00f9ng void \u0111\u1ec3 thay \u0111\u1ed5i bi\u1ebfn ng\u1ea7m\n    public double calculateDiscount(double percentage) {\n        return price * (percentage \/ 100);\n    }\n\n    \/\/ H\u00c0M TH\u1ef0C THI (Command): Th\u1ef1c hi\u1ec7n h\u00e0nh \u0111\u1ed9ng, s\u1eed d\u1ee5ng void\n    public void saveToDatabase() {\n        \/\/ Logic k\u1ebft n\u1ed1i DB v\u00e0 l\u01b0u tr\u1eef\n        System.out.println(\"\u0110\u00e3 l\u01b0u \u0111\u01a1n h\u00e0ng th\u00e0nh c\u00f4ng.\");\n    }\n\n    public void sendEmailConfirmation() {\n        \/\/ Logic g\u1eedi email\n        System.out.println(\"\u0110\u00e3 g\u1eedi email x\u00e1c nh\u1eadn.\");\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-cac-cau-h\u1ecfi-th\u01b0\u1eddng-g\u1eb7p-v\u1ec1-ham-trong-java\"><span class=\"ez-toc-section\" id=\"Cac_cau_hoi_thuong_gap_ve_ham_trong_Java\"><\/span><strong>C\u00e1c c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 h\u00e0m trong Java<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-t\u1ea1i-sao-java-khong-co-khai-ni\u1ec7m-function-d\u1ee9ng-d\u1ed9c-l\u1eadp-nh\u01b0-c-hay-python\"><strong>T\u1ea1i sao Java kh\u00f4ng c\u00f3 kh\u00e1i ni\u1ec7m &#8220;Function&#8221; \u0111\u1ee9ng \u0111\u1ed9c l\u1eadp nh\u01b0 C++ hay Python?<\/strong><\/h3>\n\n\n\n<p>Trong Java, m\u1ecdi th\u1ee9 \u0111\u1ec1u ph\u1ea3i n\u1eb1m trong m\u1ed9t l\u1edbp (Class) \u0111\u1ec3 tu\u00e2n th\u1ee7 ch\u1eb7t ch\u1ebd nguy\u00ean l\u00fd l\u1eadp tr\u00ecnh h\u01b0\u1edbng \u0111\u1ed1i t\u01b0\u1ee3ng. Do \u0111\u00f3, c\u00e1c h\u00e0m trong Java lu\u00f4n g\u1eafn li\u1ec1n v\u1edbi m\u1ed9t l\u1edbp v\u00e0 \u0111\u01b0\u1ee3c g\u1ecdi ch\u00ednh x\u00e1c l\u00e0 <strong>Method (Ph\u01b0\u01a1ng th\u1ee9c) ch\u1ee9 kh\u00f4ng ph\u1ea3i l\u00e0 \u201cFunction\u201d<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-khi-nao-nen-dung-ham-static-khi-nao-dung-ham-binh-th\u01b0\u1eddng-instance\"><strong>Khi n\u00e0o n\u00ean d\u00f9ng h\u00e0m <\/strong>static<strong>, khi n\u00e0o d\u00f9ng h\u00e0m b\u00ecnh th\u01b0\u1eddng (instance)?<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>S\u1eed d\u1ee5ng static<\/strong> khi h\u00e0m th\u1ef1c hi\u1ec7n m\u1ed9t nhi\u1ec7m v\u1ee5 chung, kh\u00f4ng c\u1ea7n truy c\u1eadp v\u00e0o c\u00e1c thu\u1ed9c t\u00ednh ri\u00eang bi\u1ec7t c\u1ee7a \u0111\u1ed1i t\u01b0\u1ee3ng (v\u00ed d\u1ee5: c\u00e1c h\u00e0m t\u00ednh to\u00e1n to\u00e1n h\u1ecdc).<\/li>\n\n\n\n<li><strong>S\u1eed d\u1ee5ng h\u00e0m b\u00ecnh th\u01b0\u1eddng (instance)<\/strong> khi logic c\u1ee7a h\u00e0m c\u1ea7n s\u1eed d\u1ee5ng ho\u1eb7c thay \u0111\u1ed5i d\u1eef li\u1ec7u (state) c\u1ee7a m\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng c\u1ee5 th\u1ec3.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-co-th\u1ec3-thay-d\u1ed5i-gia-tr\u1ecb-c\u1ee7a-m\u1ed9t-bi\u1ebfn-primitive-nh\u01b0-int-sau-khi-truy\u1ec1n-vao-ham-khong\"><strong>C\u00f3 th\u1ec3 thay \u0111\u1ed5i gi\u00e1 tr\u1ecb c\u1ee7a m\u1ed9t bi\u1ebfn Primitive (nh\u01b0 <\/strong><strong>int<\/strong><strong>) sau khi truy\u1ec1n v\u00e0o h\u00e0m kh\u00f4ng?<\/strong><\/h3>\n\n\n\n<p><strong>Kh\u00f4ng.<\/strong> V\u00ec Java s\u1eed d\u1ee5ng c\u01a1 ch\u1ebf truy\u1ec1n tham tr\u1ecb (Pass by Value), h\u00e0m ch\u1ec9 nh\u1eadn \u0111\u01b0\u1ee3c b\u1ea3n sao c\u1ee7a gi\u00e1 tr\u1ecb \u0111\u00f3. M\u1ecdi thay \u0111\u1ed5i b\u00ean trong h\u00e0m ch\u1ec9 t\u00e1c \u0111\u1ed9ng l\u00ean b\u1ea3n sao v\u00e0 kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn bi\u1ebfn g\u1ed1c \u1edf n\u01a1i g\u1ecdi.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-m\u1ed9t-ham-co-th\u1ec3-tr\u1ea3-v\u1ec1-nhi\u1ec1u-gia-tr\u1ecb-cung-luc-khong\"><strong>M\u1ed9t h\u00e0m c\u00f3 th\u1ec3 tr\u1ea3 v\u1ec1 nhi\u1ec1u gi\u00e1 tr\u1ecb c\u00f9ng l\u00fac kh\u00f4ng?<\/strong><\/h3>\n\n\n\n<p>M\u1ed9t h\u00e0m trong Java ch\u1ec9 c\u00f3 th\u1ec3 khai b\u00e1o <strong>m\u1ed9t ki\u1ec3u tr\u1ea3 v\u1ec1 duy nh\u1ea5t<\/strong>. Tuy nhi\u00ean, b\u1ea1n c\u00f3 th\u1ec3 tr\u1ea3 v\u1ec1 nhi\u1ec1u d\u1eef li\u1ec7u b\u1eb1ng c\u00e1ch \u0111\u00f3ng g\u00f3i ch\u00fang v\u00e0o:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>M\u1ed9t m\u1ea3ng (Array).<\/li>\n\n\n\n<li>M\u1ed9t Collection (nh\u01b0 List ho\u1eb7c Map).<\/li>\n\n\n\n<li>M\u1ed9t \u0111\u1ed1i t\u01b0\u1ee3ng (Object) t\u00f9y ch\u1ec9nh ch\u1ee9a c\u00e1c tr\u01b0\u1eddng d\u1eef li\u1ec7u c\u1ea7n thi\u1ebft.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-t\u1eeb-khoa-final-trong-tham-s\u1ed1-ham-co-y-nghia-gi\"><strong>T\u1eeb kh\u00f3a<\/strong><strong> final<\/strong><strong> trong tham s\u1ed1 h\u00e0m c\u00f3 \u00fd ngh\u0129a g\u00ec?<\/strong><\/h3>\n\n\n\n<p>Khi b\u1ea1n khai b\u00e1o <code>public void update(final int x)<\/code>, t\u1eeb kh\u00f3a <code>final<\/code> ng\u0103n ch\u1eb7n vi\u1ec7c thay \u0111\u1ed5i gi\u00e1 tr\u1ecb c\u1ee7a tham s\u1ed1 x ngay b\u00ean trong th\u00e2n h\u00e0m. \u0110i\u1ec1u n\u00e0y gi\u00fap m\u00e3 ngu\u1ed3n an to\u00e0n h\u01a1n v\u00e0 tr\u00e1nh c\u00e1c l\u1ed7i g\u00e1n gi\u00e1 tr\u1ecb ngo\u00e0i \u00fd mu\u1ed1n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-k\u1ebft-lu\u1eadn\"><span class=\"ez-toc-section\" id=\"Ket_luan\"><\/span><strong>K\u1ebft lu\u1eadn<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Vi\u1ec7c n\u1eafm v\u1eefng c\u00e1ch v\u1eadn h\u00e0nh c\u1ee7a <strong>h\u00e0m trong Java<\/strong> l\u00e0 b\u01b0\u1edbc ngo\u1eb7t quan tr\u1ecdng gi\u00fap b\u1ea1n chuy\u1ec3n t\u1eeb vi\u1ec7c vi\u1ebft m\u00e3 thu\u1ea7n t\u00fay sang vi\u1ec7c thi\u1ebft k\u1ebf c\u1ea5u tr\u00fac ph\u1ea7n m\u1ec1m b\u00e0i b\u1ea3n. Hi\u1ec3u r\u00f5 t\u1eeb c\u00fa ph\u00e1p c\u01a1 b\u1ea3n, c\u00e1ch ph\u00e2n lo\u1ea1i h\u00e0m cho \u0111\u1ebfn c\u00e1c c\u01a1 ch\u1ebf chuy\u00ean s\u00e2u nh\u01b0 truy\u1ec1n tham tr\u1ecb hay t\u00ednh \u0111a h\u00ecnh s\u1ebd gi\u00fap b\u1ea1n x\u00e2y d\u1ef1ng \u0111\u01b0\u1ee3c nh\u1eefng \u1ee9ng d\u1ee5ng Java m\u1ea1nh m\u1ebd v\u00e0 t\u1ed1i \u01b0u.<\/p>\n\n\n\n<p>H\u00e3y lu\u00f4n ghi nh\u1edb r\u1eb1ng: M\u1ed9t h\u00e0m t\u1ed1t kh\u00f4ng ch\u1ec9 l\u00e0 m\u1ed9t h\u00e0m ch\u1ea1y \u0111\u00fang, m\u00e0 c\u00f2n ph\u1ea3i l\u00e0 m\u1ed9t h\u00e0m d\u1ec5 \u0111\u1ecdc, d\u1ec5 ki\u1ec3m th\u1eed v\u00e0 d\u1ec5 b\u1ea3o tr\u00ec. Hy v\u1ecdng b\u00e0i vi\u1ebft n\u00e0y \u0111\u00e3 cung c\u1ea5p cho b\u1ea1n c\u00e1i nh\u00ecn to\u00e0n di\u1ec7n v\u00e0 nh\u1eefng kinh nghi\u1ec7m th\u1ef1c t\u1ebf \u0111\u1ec3 \u00e1p d\u1ee5ng v\u00e0o c\u00e1c d\u1ef1 \u00e1n s\u1eafp t\u1edbi.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n, vi\u1ec7c l\u1eb7p l\u1ea1i c\u00f9ng m\u1ed9t \u0111o\u1ea1n m\u00e3 t\u1ea1i nhi\u1ec1u n\u01a1i kh\u00f4ng ch\u1ec9 g\u00e2y l\u00e3ng ph\u00ed t\u00e0i nguy\u00ean m\u00e0 c\u00f2n khi\u1ebfn h\u1ec7 th\u1ed1ng tr\u1edf n\u00ean c\u1ed3ng k\u1ec1nh, kh\u00f3 ki\u1ec3m so\u00e1t. \u0110\u1ec3 gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1 n\u00e0y, Java s\u1eed d\u1ee5ng kh\u00e1i ni\u1ec7m h\u00e0m \u2013 hay c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 method [&hellip;]<\/p>\n","protected":false},"author":203,"featured_media":95540,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109,10350],"tags":[],"class_list":["post-94831","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it","category-java"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3 - ITviec Blog<\/title>\n<meta name=\"description\" content=\"Chi ti\u1ebft h\u00e0m trong Java k\u00e8m v\u00ed d\u1ee5: c\u1ea5u tr\u00fac, ph\u00e2n bi\u1ec7t c\u00e1c lo\u1ea1i h\u00e0m, tham s\u1ed1 v\u00e0 \u0111\u1ed1i s\u1ed1, k\u1ef9 thu\u1eadt n\u00e2ng cao v\u00e0 c\u00e1c kinh nghi\u1ec7m khi vi\u1ebft h\u00e0m.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/ham-trong-java\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3\" \/>\n<meta property=\"og:description\" content=\"Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n, vi\u1ec7c l\u1eb7p l\u1ea1i c\u00f9ng m\u1ed9t \u0111o\u1ea1n m\u00e3 t\u1ea1i nhi\u1ec1u n\u01a1i kh\u00f4ng ch\u1ec9 g\u00e2y l\u00e3ng ph\u00ed t\u00e0i nguy\u00ean m\u00e0 c\u00f2n khi\u1ebfn h\u1ec7 th\u1ed1ng tr\u1edf n\u00ean c\u1ed3ng k\u1ec1nh,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/ham-trong-java\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-12T14:36:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-12T14:36:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2026\/04\/ham-trong-java-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"421\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tien Tran\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"Tien Tran\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3 - ITviec Blog","description":"Chi ti\u1ebft h\u00e0m trong Java k\u00e8m v\u00ed d\u1ee5: c\u1ea5u tr\u00fac, ph\u00e2n bi\u1ec7t c\u00e1c lo\u1ea1i h\u00e0m, tham s\u1ed1 v\u00e0 \u0111\u1ed1i s\u1ed1, k\u1ef9 thu\u1eadt n\u00e2ng cao v\u00e0 c\u00e1c kinh nghi\u1ec7m khi vi\u1ebft h\u00e0m.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/ham-trong-java\/","og_locale":"vi_VN","og_type":"article","og_title":"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3","og_description":"Trong qu\u00e1 tr\u00ecnh ph\u00e1t tri\u1ec3n d\u1ef1 \u00e1n, vi\u1ec7c l\u1eb7p l\u1ea1i c\u00f9ng m\u1ed9t \u0111o\u1ea1n m\u00e3 t\u1ea1i nhi\u1ec1u n\u01a1i kh\u00f4ng ch\u1ec9 g\u00e2y l\u00e3ng ph\u00ed t\u00e0i nguy\u00ean m\u00e0 c\u00f2n khi\u1ebfn h\u1ec7 th\u1ed1ng tr\u1edf n\u00ean c\u1ed3ng k\u1ec1nh,","og_url":"https:\/\/itviec.com\/blog\/ham-trong-java\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2026-04-12T14:36:41+00:00","article_modified_time":"2026-04-12T14:36:42+00:00","og_image":[{"width":800,"height":421,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2026\/04\/ham-trong-java-scaled.png","type":"image\/png"}],"author":"Tien Tran","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"Tien Tran","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"14 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/"},"author":{"name":"Tien Tran","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/1595d671c49cfa2a48cd3c0a047a1298"},"headline":"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3","datePublished":"2026-04-12T14:36:41+00:00","dateModified":"2026-04-12T14:36:42+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/"},"wordCount":3630,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2026\/04\/ham-trong-java-scaled.png","articleSection":["Chuy\u00ean m\u00f4n IT","Java"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/","url":"https:\/\/itviec.com\/blog\/ham-trong-java\/","name":"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3 - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2026\/04\/ham-trong-java-scaled.png","datePublished":"2026-04-12T14:36:41+00:00","dateModified":"2026-04-12T14:36:42+00:00","description":"Chi ti\u1ebft h\u00e0m trong Java k\u00e8m v\u00ed d\u1ee5: c\u1ea5u tr\u00fac, ph\u00e2n bi\u1ec7t c\u00e1c lo\u1ea1i h\u00e0m, tham s\u1ed1 v\u00e0 \u0111\u1ed1i s\u1ed1, k\u1ef9 thu\u1eadt n\u00e2ng cao v\u00e0 c\u00e1c kinh nghi\u1ec7m khi vi\u1ebft h\u00e0m.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/ham-trong-java\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2026\/04\/ham-trong-java-scaled.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2026\/04\/ham-trong-java-scaled.png","width":800,"height":421,"caption":"h\u00e0m trong java - function trong java - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/ham-trong-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"H\u00e0m trong Java l\u00e0 g\u00ec: Kinh nghi\u1ec7m vi\u1ebft code \u201cs\u1ea1ch\u201d v\u00e0 hi\u1ec7u qu\u1ea3"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/1595d671c49cfa2a48cd3c0a047a1298","name":"Tien Tran","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/05\/tien-tran-author-e1715658627643-100x100.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/05\/tien-tran-author-e1715658627643-100x100.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/05\/tien-tran-author-e1715658627643-100x100.jpg","caption":"Tien Tran"},"url":"https:\/\/itviec.com\/blog\/author\/tien-tran\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/94831","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/203"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=94831"}],"version-history":[{"count":4,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/94831\/revisions"}],"predecessor-version":[{"id":95541,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/94831\/revisions\/95541"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/95540"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=94831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=94831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=94831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}