

{"id":15105,"date":"2018-05-20T06:37:34","date_gmt":"2018-05-20T06:37:34","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=15105"},"modified":"2026-05-30T15:47:05","modified_gmt":"2026-05-30T10:17:05","slug":"stringbuffer-vs-stringbuilder","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/","title":{"rendered":"String vs StringBuffer vs StringBuilder in Java"},"content":{"rendered":"<p>We know that by default strings are immutable in nature. However, there are many restrictions in an immutable string, when it comes to string handling. That is why Java provides us with two classes, StringBuffer and StringBuilder, that helps programmers take a mutable string as input and work with them. There are pros and cons to both these classes, and it is necessary to know which one to use and when. In this article, we will see StringBuffer vs StringBuilder in detail.<\/p>\n<h3>StringBuffer Class in Java<\/h3>\n<p>The StringBuffer class was introduced into the Java Programming Language with Java 1.0v. This class was introduced for the sole purpose of transforming a string into a mutable object. But there arose a problem while using this class in a multi-thread environment.<\/p>\n<p>The methods in this class are public and synchronized, so naturally, they cannot be used simultaneously in multiple threads. This was the main disadvantage of using StringBuffer. But the StringBuffer class also ensures thread safety.<\/p>\n<p>The StringBuffer class allows changes in the string. Adding the property of mutability to a string. It also leads to providing safety to a thread by ensuring that the thread must execute one after the other.<\/p>\n<p><strong>Code to explain Java StringBuffer Class:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">package com.DataFlair.Stringbuffer;\r\npublic class Append\r\n{\r\n    public static void main(String args[])\r\n    {  \r\n        StringBuffer str=new StringBuffer(\"Data\");  \r\n        str.append(\"Flair\");  \r\n        System.out.println(str);\r\n    }  \r\n}  \r\n<\/pre>\n<p><strong>The output of the above code:<\/strong><\/p>\n<div class=\"code-output\">DataFlair<\/div>\n<h3>StringBuilder class in Java<\/h3>\n<p>To put it in simple words, the StringBuilder class was introduced in the Java 1.5v update to replace the StringBuffer class.<\/p>\n<p>The StringBuilder class solves the problem of Multithreading easily. It contains an additional provision of non-synchronized methods which gives it compatibility to run in a multi-thread environment.<\/p>\n<p>Although, it works fastly but it lacks in providing a safety to the thread. Threads are not synchronized so there is no blocking of the thread while the other is in running state. But programmers still prefer the StringBuilder class over the StringBuffer Class.<\/p>\n<p><strong>Code to understand Java StringBuilder class:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">package com.DataFlair.StringBuffervsStringbuilder;\r\npublic class Append\r\n{\r\n    public static void main(String args[])\r\n    {  \r\n        StringBuilder str=new StringBuilder(\"Data\");  \r\n        str.append(\"Flair\");  \r\n        System.out.println(str);\r\n    }  \r\n}\r\n<\/pre>\n<p><strong>The output of the above code:<\/strong><\/p>\n<div class=\"code-output\">DataFlair<\/div>\n<p><strong>Summarization of a few important points regarding StringBuffer and StringBuilder<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Parameter<\/b><\/td>\n<td><b>StringBuffer<\/b><\/td>\n<td><b>StringBuilder<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>Storage Area<\/b><\/td>\n<td><span style=\"font-weight: 400\">Heap<\/span><\/td>\n<td><span style=\"font-weight: 400\">Heap<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Mutability<\/b><\/td>\n<td><span style=\"font-weight: 400\">Yes<\/span><\/td>\n<td><span style=\"font-weight: 400\">Yes<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Thread Safety<\/b><\/td>\n<td><span style=\"font-weight: 400\">Yes<\/span><\/td>\n<td><span style=\"font-weight: 400\">No<\/span><\/td>\n<\/tr>\n<tr>\n<td><b>Speed<\/b><\/td>\n<td><span style=\"font-weight: 400\">Very Slow<\/span><\/td>\n<td><span style=\"font-weight: 400\">Fast<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Difference between StringBuilder vs StringBuffer in Java<\/h3>\n<p>1. StringBuffer class was present right from the beginning when Java was introduced. The StringBuilder class was introduced with version 1.5 update to compensate for the mistakes made in the StringBuffer class.<\/p>\n<p>2. The methods present in the StringBuffer class, like append(), delete(), replace(), etc are synchronized in nature. Whereas the same methods of the StringBuilder class are non-synchronized.<\/p>\n<p>3. The synchronized methods of the StringBuffer class provides thread safety but the StringBuilder class has non-synchronized methods and so it\u2019s not thread-safe.<\/p>\n<p>4. To perform string manipulation in a multi-threaded environment we should use the StringBuilder class, but if there is no multi-threaded environment involved, then StringBuffer can be better due to thread safety.<\/p>\n<p>5. The StringBuilder class is way faster than the StringBuffer class, as synchronization is not required in it.<\/p>\n<p>Even though the StringBuffer is thread-safe, programmers still prefer the StringBuilder as it is way faster.<br \/>\nLet us summarize the differences and similarities into a table:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>SL.No.<\/b><\/td>\n<td><b>StringBuffer Class in Java<\/b><\/td>\n<td><b>StringBuilder Class in Java<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">1<\/span><\/td>\n<td><span style=\"font-weight: 400\">The strings in the StringBuffer class are always mutable.<\/span><\/td>\n<td><span style=\"font-weight: 400\">The strings in the StringBuilder class are also always mutable.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">2<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is thread-safe<\/span><\/td>\n<td><span style=\"font-weight: 400\">It is not thread-safe.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">3<\/span><\/td>\n<td><span style=\"font-weight: 400\">Present from Java 1.0<\/span><\/td>\n<td><span style=\"font-weight: 400\">Introduced in Java 1.5<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">4<\/span><\/td>\n<td><span style=\"font-weight: 400\">It can use only one thread at a time, thus always ensuring thread safety.<\/span><\/td>\n<td><span style=\"font-weight: 400\">It can use multiple threads at a time, and may or may not violate thread safety.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">5<\/span><\/td>\n<td><span style=\"font-weight: 400\">If multiple threads have to be used, they need to wait for synchronization, thus adding a lot of time to execution.\u00a0<\/span><\/td>\n<td><span style=\"font-weight: 400\">Multiple threads can operate together without synchronization, thus working a lot faster.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">6<\/span><\/td>\n<td><span style=\"font-weight: 400\">Performance is very low<\/span><\/td>\n<td><span style=\"font-weight: 400\">Performance is High<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">7<\/span><\/td>\n<td><span style=\"font-weight: 400\">The object is allocated heap memory.<\/span><\/td>\n<td><span style=\"font-weight: 400\">The object is allocated heap memory.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Code to understand the performance of Java StringBuffer and StringBuilder:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">package com.DataFlair.StringBuffervsStringbuilder;\r\npublic class PerformanceAnalysis\r\n{\r\n        public static void main(String[] args)\r\n        {  \r\n                long startTime = System.currentTimeMillis();  \r\n                StringBuffer str1 = new StringBuffer(\"DataFlair\");  \r\n                for (int i=0; i&lt;10000000; i++)\r\n                {  \r\n                    str1.append(\"StringBuffer\");  \r\n                } \r\n                System.out.println(\"Time taken by StringBuffer in Millisecond is: \" + (System.currentTimeMillis() - startTime) + \"millisec\"); \r\n                startTime = System.currentTimeMillis();  \r\n                StringBuilder str2 = new StringBuilder(\"DataFlair\");  \r\n                for (int i=0; i&lt;10000000; i++)\r\n                {  \r\n                    str2.append(\"StringBuilder\");  \r\n                }  \r\n                System.out.println(\"Time taken by StringBuilder in Millisecond is: \" + (System.currentTimeMillis() - startTime) + \"millisec\"); \r\n        } \r\n}\r\n<\/pre>\n<p><strong>The output of the above code:<\/strong><\/p>\n<div class=\"code-output\">Time taken by StringBuffer in Millisecond is: 343millisec<br \/>\nTime taken by StringBuilder in Millisecond is: 316millisec<\/div>\n<p>We can clearly see that the StringBuilder is Faster than the StringBuffer class. The greater the number of operations the greater will be the difference in time.<\/p>\n<p>The time to execute the program depends on the performance of the machine on which it runs.<\/p>\n<p><strong>Code to convert StringBuilder and StringBuffer object to String in Java:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">package com.DataFlair.StringBuffervsStringbuilder;\r\npublic class Conversion\r\n{\r\n     public static void main(String[] args) {\r\n    StringBuffer str1 = new StringBuffer(\"DataFlair\");\r\n    StringBuilder str2 = new StringBuilder(\"StringBuffer vs StringBuilder\");\r\n    String str1C = str1.toString();\r\n    System.out.println(\"StringBuffer object to String: \");\r\n    System.out.println(str1C);\r\n    String str2C = str2.toString();\r\n    System.out.println(\"StringBuilder object to String: \");\r\n    System.out.println(str2C);\r\n  }\r\n}\r\n<\/pre>\n<p><strong>The output of the above code:<\/strong><\/p>\n<div class=\"code-output\">StringBuffer object to String:<br \/>\nDataFlair<br \/>\nStringBuilder object to String:<br \/>\nStringBuffer vs StringBuilder<\/div>\n<h3>Conclusion<\/h3>\n<p>In this article, we saw how StringBuilder and StringBuffer have similarities and differences of their own. It is the work of the programmer to understand the situation and implement the better of the two classes for the purpose of the program. We discussed, in brief, the two classes and when to use them with regard to the environment of the system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We know that by default strings are immutable in nature. However, there are many restrictions in an immutable string, when it comes to string handling. That is why Java provides us with two classes,&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":108884,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[3897,13909,13910,13911,13920,13923,13924,13925],"class_list":["post-15105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","tag-difference-between-stringbuffer-and-stringbuilder-in-java","tag-string-vs-stringbuffer","tag-string-vs-stringbuffer-vs-stringbuilder-in-java","tag-string-vs-stringbuilder","tag-stringbuffer-in-java","tag-stringbuffer-vs-stringbuilder","tag-stringbuilder-vs-stringbuffer","tag-stringjoiner"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>String vs StringBuffer vs StringBuilder in Java - DataFlair<\/title>\n<meta name=\"description\" content=\"Let&#039;s understand the Comparison of String vs StringBuffer vs StringBuilder in Java with the various examples,\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"String vs StringBuffer vs StringBuilder in Java - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Let&#039;s understand the Comparison of String vs StringBuffer vs StringBuilder in Java with the various examples,\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-20T06:37:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-30T10:17:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/05\/stringbuffer-vs-stringbuilder-in-java.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"String vs StringBuffer vs StringBuilder in Java - DataFlair","description":"Let's understand the Comparison of String vs StringBuffer vs StringBuilder in Java with the various examples,","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:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/","og_locale":"en_US","og_type":"article","og_title":"String vs StringBuffer vs StringBuilder in Java - DataFlair","og_description":"Let's understand the Comparison of String vs StringBuffer vs StringBuilder in Java with the various examples,","og_url":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2018-05-20T06:37:34+00:00","article_modified_time":"2026-05-30T10:17:05+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/05\/stringbuffer-vs-stringbuilder-in-java.webp","type":"image\/webp"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"String vs StringBuffer vs StringBuilder in Java","datePublished":"2018-05-20T06:37:34+00:00","dateModified":"2026-05-30T10:17:05+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/"},"wordCount":807,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/05\/stringbuffer-vs-stringbuilder-in-java.webp","keywords":["difference between stringbuffer and stringbuilder in java","string vs stringBuffer","String vs StringBuffer vs StringBuilder in Java","string vs stringbuilder","StringBuffer in java","stringBuffer vs stringbuilder","stringbuilder vs stringbuffer","stringjoiner"],"articleSection":["Java Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/","url":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/","name":"String vs StringBuffer vs StringBuilder in Java - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/05\/stringbuffer-vs-stringbuilder-in-java.webp","datePublished":"2018-05-20T06:37:34+00:00","dateModified":"2026-05-30T10:17:05+00:00","description":"Let's understand the Comparison of String vs StringBuffer vs StringBuilder in Java with the various examples,","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/05\/stringbuffer-vs-stringbuilder-in-java.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2018\/05\/stringbuffer-vs-stringbuilder-in-java.webp","width":1200,"height":628,"caption":"stringbuffer vs stringbuilder in java"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/stringbuffer-vs-stringbuilder\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Java Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/java\/"},{"@type":"ListItem","position":3,"name":"String vs StringBuffer vs StringBuilder in Java"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/15105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=15105"}],"version-history":[{"count":10,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/15105\/revisions"}],"predecessor-version":[{"id":148522,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/15105\/revisions\/148522"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/108884"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=15105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=15105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=15105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}