{"id":22555,"date":"2023-10-12T07:39:27","date_gmt":"2023-10-12T00:39:27","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=22555"},"modified":"2023-10-12T07:39:27","modified_gmt":"2023-10-12T00:39:27","slug":"threadlocal-in-java","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/threadlocal-in-java.html","title":{"rendered":"ThreadLocal in Java"},"content":{"rendered":"<p>The ThreadLocal class in Java is a class that allows us to store and retrieve the values of variables in the same thread. As long as it&#8217;s the same thread, you can store a value and retrieve it whenever we want.<\/p>\n<p>You can initialize objects of the ThreadLocal class normally like other classes as follows:<\/p>\n<pre class=\"lang:java decode:true \">ThreadLocal&lt;String&gt; threadLocal = new ThreadLocal&lt;&gt;();<\/pre>\n<p>You should clearly specify the data type that the ThreadLocal object will store. In the example above, I declared the data type that the ThreadLocal object will store as String!<\/p>\n<p>Now you can use the set() method of this ThreadLocal object to store the value you want, for example:<\/p>\n<pre class=\"lang:java decode:true \">threadLocal.set(\"Huong Dan Java\");<\/pre>\n<p>To get this value, you can use the get() method as follows:<\/p>\n<pre class=\"lang:java decode:true \">threadLocal.get()<\/pre>\n<p>Results when I run the example:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.java;\r\n\r\npublic class Example {\r\n\r\n  public static void main(String[] args) {\r\n    ThreadLocal&lt;String&gt; threadLocal = new ThreadLocal&lt;&gt;();\r\n\r\n    threadLocal.set(\"Huong Dan Java\");\r\n\r\n    System.out.println(threadLocal.get());\r\n  }\r\n}\r\n<\/pre>\n<p>will be as follows:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-22557 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2023\/10\/threadlocal-in-java-1.png\" alt=\"\" width=\"700\" height=\"591\" \/>If you retrieve the value stored in ThreadLocal in another thread, you will see that the value will be null. Because two different threads will not see the value in each other&#8217;s ThreadLocal. For example, if I write more code to read the value of ThreadLocal that I created above:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.java;\r\n\r\npublic class Example {\r\n\r\n  public static void main(String[] args) {\r\n    ThreadLocal&lt;String&gt; threadLocal = new ThreadLocal&lt;&gt;();\r\n\r\n    threadLocal.set(\"Huong Dan Java\");\r\n\r\n    System.out.println(threadLocal.get());\r\n\r\n    Thread thread = new Thread(new Runnable() {\r\n\r\n      @Override\r\n      public void run() {\r\n        System.out.println(\"Getting value from another thread: \" + threadLocal.get());\r\n      }\r\n    });\r\n    thread.start();\r\n  }\r\n}\r\n<\/pre>\n<p>then when you run it, you will see the following results:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-22558 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2023\/10\/threadlocal-in-java-2.png\" alt=\"\" width=\"700\" height=\"530\" \/><\/p>\n<p>My example has 2 threads: one is the main thread running the application and a new thread that I create. As you can see, the newly created thread does not see the value stored in the main thread&#8217;s ThreadLocal.<\/p>\n<p>You can remove the value stored in ThreadLocal using the remove() method:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.java;\r\n\r\npublic class Example {\r\n\r\n  public static void main(String[] args) {\r\n    ThreadLocal&lt;String&gt; threadLocal = new ThreadLocal&lt;&gt;();\r\n\r\n    threadLocal.set(\"Huong Dan Java\");\r\n\r\n    System.out.println(threadLocal.get());\r\n\r\n    threadLocal.remove();\r\n\r\n    System.out.println(threadLocal.get());\r\n  }\r\n}\r\n<\/pre>\n<p>The result when I run the example will be as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-22559 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2023\/10\/threadlocal-in-java-3.png\" alt=\"\" width=\"700\" height=\"576\" \/><\/p>\n<p>After removing, there are no more values stored in ThreadLocal!<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;22555&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;ThreadLocal in Java&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>The ThreadLocal class in Java is a class that allows us to store and retrieve the values of variables in the same thread. As long as it&#8217;s the same thread, you can store a value and retrieve it whenever we want. You can initialize objects&hellip; <a href=\"https:\/\/huongdanjava.com\/threadlocal-in-java.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":411,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[269],"tags":[],"class_list":["post-22555","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-basic","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>ThreadLocal in Java - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"In this tutorial, I introduce with you all about ThreadLocal in Java.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/threadlocal-in-java.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ThreadLocal in Java - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, I introduce with you all about ThreadLocal in Java.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/threadlocal-in-java.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-12T00:39:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/05\/java.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"620\" \/>\n\t<meta property=\"og:image:height\" content=\"349\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"ThreadLocal in Java\",\"datePublished\":\"2023-10-12T00:39:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html\"},\"wordCount\":261,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/java.jpg\",\"articleSection\":[\"Java Basic\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html\",\"name\":\"ThreadLocal in Java - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/java.jpg\",\"datePublished\":\"2023-10-12T00:39:27+00:00\",\"description\":\"In this tutorial, I introduce with you all about ThreadLocal in Java.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/java.jpg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/java.jpg\",\"width\":620,\"height\":349},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/threadlocal-in-java.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ThreadLocal in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ThreadLocal in Java - Huong Dan Java","description":"In this tutorial, I introduce with you all about ThreadLocal in Java.","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:\/\/huongdanjava.com\/threadlocal-in-java.html","og_locale":"en_US","og_type":"article","og_title":"ThreadLocal in Java - Huong Dan Java","og_description":"In this tutorial, I introduce with you all about ThreadLocal in Java.","og_url":"https:\/\/huongdanjava.com\/threadlocal-in-java.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2023-10-12T00:39:27+00:00","og_image":[{"width":620,"height":349,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/05\/java.jpg","type":"image\/jpeg"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"ThreadLocal in Java","datePublished":"2023-10-12T00:39:27+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html"},"wordCount":261,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/05\/java.jpg","articleSection":["Java Basic"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/threadlocal-in-java.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html","url":"https:\/\/huongdanjava.com\/threadlocal-in-java.html","name":"ThreadLocal in Java - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/05\/java.jpg","datePublished":"2023-10-12T00:39:27+00:00","description":"In this tutorial, I introduce with you all about ThreadLocal in Java.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/threadlocal-in-java.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/05\/java.jpg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/05\/java.jpg","width":620,"height":349},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/threadlocal-in-java.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"ThreadLocal in Java"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/22555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=22555"}],"version-history":[{"count":2,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/22555\/revisions"}],"predecessor-version":[{"id":22560,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/22555\/revisions\/22560"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/411"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=22555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=22555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=22555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}