{"id":5475,"date":"2023-10-23T15:44:39","date_gmt":"2023-10-23T22:44:39","guid":{"rendered":"https:\/\/ioflood.com\/blog\/?p=5475"},"modified":"2024-02-26T15:11:11","modified_gmt":"2024-02-26T22:11:11","slug":"primitive-data-types-in-java","status":"publish","type":"post","link":"https:\/\/ioflood.com\/blog\/primitive-data-types-in-java\/","title":{"rendered":"Primitive Data Types in Java: A Detailed Overview"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/ioflood.com\/blog\/wp-content\/uploads\/2023\/10\/Icons-for-primitive-Java-data-types-labels-tech-background-and-logo-300x300.jpg\" alt=\"Icons for primitive Java data types labels tech background and logo\" width=\"300\" height=\"300\" title=\"\"><\/figure>\n<\/div>\n<p>Are you finding it challenging to understand primitive data types in Java? You&#8217;re not alone. Many developers, especially beginners, find this topic a bit complex. But, think of Java&#8217;s primitive data types as the basic building blocks, akin to Lego pieces, that form the foundation of your Java programs.<\/p>\n<p>These primitive types are the most fundamental data types in Java, and understanding them is crucial to mastering the language. They are the simplest forms of data with which we can start building more complex data structures.<\/p>\n<p><strong>In this guide, we will walk you through each of Java&#8217;s eight primitive data types, explaining their uses and characteristics.<\/strong> We&#8217;ll cover everything from their size, range of values, and common uses, to more advanced topics like type casting, type promotion, and the use of wrapper classes.<\/p>\n<p>So, let&#8217;s dive in and start mastering Java&#8217;s primitive data types!<\/p>\n<h2>TL;DR: What Are the Primitive Data Types in Java?<\/h2>\n<blockquote><p>\n  Java has eight primitive data types: <code>byte, short, int, long, float, double, char, and boolean<\/code>. Each of these types has a specific size and a specific range of values it can represent.\n<\/p><\/blockquote>\n<p>Here&#8217;s a simple example of declaring each type:<\/p>\n<pre><code class=\"language-java line-numbers\">byte b = 10;\nshort s = 500;\nint i = 10000;\nlong l = 150000L;\nfloat f = 5.75f;\ndouble d = 19.99;\nchar c = 'A';\nboolean bool = true;\n\n\/\/ Output:\n\/\/ b = 10\n\/\/ s = 500\n\/\/ i = 10000\n\/\/ l = 150000\n\/\/ f = 5.75\n\/\/ d = 19.99\n\/\/ c = 'A'\n\/\/ bool = true\n<\/code><\/pre>\n<p>In this example, we&#8217;ve declared and initialized each of Java&#8217;s eight primitive data types. The values assigned are within the range that each type can represent.<\/p>\n<blockquote><p>\n  This is just a basic introduction to Java&#8217;s primitive data types. There&#8217;s much more to learn about each type, including their size, range of values, and when to use them. Continue reading for a more detailed exploration of these fundamental building blocks of Java.\n<\/p><\/blockquote>\n<h2>Exploring Java&#8217;s Primitive Data Types<\/h2>\n<p>Java provides eight primitive data types, each with its own size, range of values, and common uses. Let&#8217;s explore each of these types in detail.<\/p>\n<h3>Byte<\/h3>\n<p>The <code>byte<\/code> data type in Java is an 8-bit signed two&#8217;s complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive).<\/p>\n<pre><code class=\"language-java line-numbers\">byte byteValue = 100;\nSystem.out.println(byteValue);\n\n\/\/ Output:\n\/\/ 100\n<\/code><\/pre>\n<p>In this example, we&#8217;ve declared a <code>byte<\/code> variable named <code>byteValue<\/code> and assigned it a value of 100. The <code>System.out.println<\/code> command prints the value of <code>byteValue<\/code> to the console.<\/p>\n<h3>Short<\/h3>\n<p>The <code>short<\/code> data type in Java is a 16-bit signed two&#8217;s complement integer. It has a minimum value of -32,768 and a maximum value of 32,767 (inclusive).<\/p>\n<pre><code class=\"language-java line-numbers\">short shortValue = 30000;\nSystem.out.println(shortValue);\n\n\/\/ Output:\n\/\/ 30000\n<\/code><\/pre>\n<p>Here, we&#8217;ve declared a <code>short<\/code> variable named <code>shortValue<\/code> and assigned it a value of 30000. The <code>System.out.println<\/code> command prints the value of <code>shortValue<\/code> to the console.<\/p>\n<h3>Int<\/h3>\n<p>The <code>int<\/code> data type in Java is a 32-bit signed two&#8217;s complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive).<\/p>\n<pre><code class=\"language-java line-numbers\">int intValue = 2000000;\nSystem.out.println(intValue);\n\n\/\/ Output:\n\/\/ 2000000\n<\/code><\/pre>\n<p>In this example, we&#8217;ve declared an <code>int<\/code> variable named <code>intValue<\/code> and assigned it a value of 2000000. The <code>System.out.println<\/code> command prints the value of <code>intValue<\/code> to the console.<\/p>\n<h3>Long<\/h3>\n<p>The <code>long<\/code> data type in Java is a 64-bit two&#8217;s complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive).<\/p>\n<pre><code class=\"language-java line-numbers\">long longValue = 3000000000L;\nSystem.out.println(longValue);\n\n\/\/ Output:\n\/\/ 3000000000\n<\/code><\/pre>\n<p>Here, we&#8217;ve declared a <code>long<\/code> variable named <code>longValue<\/code> and assigned it a value of 3000000000. The <code>System.out.println<\/code> command prints the value of <code>longValue<\/code> to the console.<\/p>\n<h3>Float<\/h3>\n<p>The <code>float<\/code> data type in Java is a single-precision 32-bit IEEE 754 floating point. It&#8217;s mainly used to save memory in large arrays of floating point numbers.<\/p>\n<pre><code class=\"language-java line-numbers\">float floatValue = 3.14f;\nSystem.out.println(floatValue);\n\n\/\/ Output:\n\/\/ 3.14\n<\/code><\/pre>\n<p>In this example, we&#8217;ve declared a <code>float<\/code> variable named <code>floatValue<\/code> and assigned it a value of 3.14. The <code>System.out.println<\/code> command prints the value of <code>floatValue<\/code> to the console.<\/p>\n<h3>Double<\/h3>\n<p>The <code>double<\/code> data type in Java is a double-precision 64-bit IEEE 754 floating point. It&#8217;s generally used for decimal values.<\/p>\n<pre><code class=\"language-java line-numbers\">double doubleValue = 3.1415926535;\nSystem.out.println(doubleValue);\n\n\/\/ Output:\n\/\/ 3.1415926535\n<\/code><\/pre>\n<p>Here, we&#8217;ve declared a <code>double<\/code> variable named <code>doubleValue<\/code> and assigned it a value of 3.1415926535. The <code>System.out.println<\/code> command prints the value of <code>doubleValue<\/code> to the console.<\/p>\n<h3>Char<\/h3>\n<p>The <code>char<\/code> data type in Java is a single 16-bit Unicode character. It has a minimum value of &#8216;\\u0000&#8217; (or 0) and a maximum value of &#8216;\\uffff&#8217; (or 65,535 inclusive).<\/p>\n<pre><code class=\"language-java line-numbers\">char charValue = 'J';\nSystem.out.println(charValue);\n\n\/\/ Output:\n\/\/ J\n<\/code><\/pre>\n<p>In this example, we&#8217;ve declared a <code>char<\/code> variable named <code>charValue<\/code> and assigned it a value of &#8216;J&#8217;. The <code>System.out.println<\/code> command prints the value of <code>charValue<\/code> to the console.<\/p>\n<h3>Boolean<\/h3>\n<p>The <code>boolean<\/code> data type in Java has only two possible values: <code>true<\/code> and <code>false<\/code>. It&#8217;s used for simple flags that track true\/false conditions.<\/p>\n<pre><code class=\"language-java line-numbers\">boolean booleanValue = true;\nSystem.out.println(booleanValue);\n\n\/\/ Output:\n\/\/ true\n<\/code><\/pre>\n<p>Here, we&#8217;ve declared a <code>boolean<\/code> variable named <code>booleanValue<\/code> and assigned it a value of true. The <code>System.out.println<\/code> command prints the value of <code>booleanValue<\/code> to the console.<\/p>\n<h2>Diving Deeper: Type Casting, Promotion, and Wrapper Classes<\/h2>\n<p>As you become more comfortable with Java&#8217;s primitive data types, you&#8217;ll encounter situations that require a more advanced understanding. Let&#8217;s explore some of these scenarios.<\/p>\n<h3>Type Casting in Java<\/h3>\n<p>Type casting is when you assign a value of one primitive data type to another type. In Java, there are two types of casting:<\/p>\n<ol>\n<li>Widening Casting (automatically) &#8211; converting a smaller type to a larger type size<\/li>\n<li>Narrowing Casting (manually) &#8211; converting a larger type to a smaller size type<\/li>\n<\/ol>\n<pre><code class=\"language-java line-numbers\">\/\/ Widening Casting\nint myInt = 9;\ndouble myDouble = myInt;\n\nSystem.out.println(myInt);\nSystem.out.println(myDouble);\n\n\/\/ Output:\n\/\/ 9\n\/\/ 9.0\n<\/code><\/pre>\n<p>In the example above, we cast an <code>int<\/code> to a <code>double<\/code>. Java automatically casts the <code>int<\/code> to a <code>double<\/code> since a <code>double<\/code> is larger than an <code>int<\/code>.<\/p>\n<pre><code class=\"language-java line-numbers\">\/\/ Narrowing Casting\n\ndouble myDouble = 9.78;\nint myInt = (int) myDouble;\n\nSystem.out.println(myDouble);\nSystem.out.println(myInt);\n\n\/\/ Output:\n\/\/ 9.78\n\/\/ 9\n<\/code><\/pre>\n<p>In this example, we cast a <code>double<\/code> to an <code>int<\/code>. Since an <code>int<\/code> is smaller than a <code>double<\/code>, we need to manually cast it using <code>(int)<\/code>.<\/p>\n<h3>Type Promotion in Java<\/h3>\n<p>Type promotion is an automatic conversion of one data type to another. It usually occurs when we perform operations between different types.<\/p>\n<pre><code class=\"language-java line-numbers\">int myInt = 5;\ndouble myDouble = 6.2;\ndouble result = myInt + myDouble;\n\nSystem.out.println(result);\n\n\/\/ Output:\n\/\/ 11.2\n<\/code><\/pre>\n<p>In this example, <code>myInt<\/code> is automatically promoted to a <code>double<\/code> when performing the addition operation with <code>myDouble<\/code>. The result is a <code>double<\/code>.<\/p>\n<h3>Wrapper Classes in Java<\/h3>\n<p>Each of Java&#8217;s eight primitive data types has a corresponding wrapper class. These classes encapsulate a primitive data type within an object.<\/p>\n<pre><code class=\"language-java line-numbers\">\/\/ Creating an Integer object\nInteger myInt = Integer.valueOf(10);\n\nSystem.out.println(myInt);\n\n\/\/ Output:\n\/\/ 10\n<\/code><\/pre>\n<p>In this example, we use the <code>Integer<\/code> wrapper class to create an <code>Integer<\/code> object that encapsulates the primitive <code>int<\/code> value 10.<\/p>\n<h2>Deep Dive into Java&#8217;s Reference Types<\/h2>\n<p>Java&#8217;s primitive types are efficient and easy to use, but they have their limitations. For instance, they cannot be used to call methods because they are not objects. This is where Java&#8217;s reference types come into play.<\/p>\n<h3>Understanding Reference Types<\/h3>\n<p>Reference types in Java are used to create objects and arrays. Unlike primitive types, which hold their values directly, reference types hold the address of the object they refer to.<\/p>\n<pre><code class=\"language-java line-numbers\">String str = new String(\"Hello World\");\nSystem.out.println(str);\n\n\/\/ Output:\n\/\/ Hello World\n<\/code><\/pre>\n<p>In this example, <code>str<\/code> is a reference type. It holds the address of the <code>String<\/code> object that contains &#8220;Hello World&#8221;.<\/p>\n<h3>Primitive Types vs. Reference Types<\/h3>\n<p>The choice between using primitive types and reference types depends on what you need to do. Primitive types are simpler and faster, while reference types are more flexible and powerful.<\/p>\n<pre><code class=\"language-java line-numbers\">int primitive = 5;\nInteger reference = new Integer(5);\n\nSystem.out.println(primitive);\nSystem.out.println(reference);\n\n\/\/ Output:\n\/\/ 5\n\/\/ 5\n<\/code><\/pre>\n<p>In this example, <code>primitive<\/code> is a primitive type and <code>reference<\/code> is a reference type. Both hold the value 5, but <code>reference<\/code> is an object that can be used to call methods.<\/p>\n<h3>Performance Considerations<\/h3>\n<p>Primitive types are generally faster and use less memory than reference types. This is because reference types need to allocate memory for their object and store the address of the object.<\/p>\n<h3>The Use of Null<\/h3>\n<p>One key advantage of reference types is that they can be assigned the value <code>null<\/code>, representing the absence of a value. Primitive types cannot be <code>null<\/code>.<\/p>\n<pre><code class=\"language-java line-numbers\">Integer reference = null;\nSystem.out.println(reference);\n\n\/\/ Output:\n\/\/ null\n<\/code><\/pre>\n<p>In this example, we assign <code>null<\/code> to the <code>Integer<\/code> reference type. This would not be possible with an <code>int<\/code> primitive type.<\/p>\n<h2>Troubleshooting Primitive Data Types in Java<\/h2>\n<p>While working with primitive data types in Java, you might encounter some common issues. Let&#8217;s discuss these problems and provide some solutions.<\/p>\n<h3>Handling Overflow and Underflow<\/h3>\n<p>Overflow and underflow situations arise when a value is outside the range for its data type.<\/p>\n<pre><code class=\"language-java line-numbers\">byte byteValue = 127;\nbyteValue++;\n\nSystem.out.println(byteValue);\n\n\/\/ Output:\n\/\/ -128\n<\/code><\/pre>\n<p>In this example, we incremented <code>byteValue<\/code> beyond its maximum value. This caused an overflow, and <code>byteValue<\/code> wrapped around to its minimum value.<\/p>\n<h3>Dealing with Loss of Precision<\/h3>\n<p>Loss of precision occurs when a floating-point value is assigned to an integer type.<\/p>\n<pre><code class=\"language-java line-numbers\">int intValue = (int) 3.14;\nSystem.out.println(intValue);\n\n\/\/ Output:\n\/\/ 3\n<\/code><\/pre>\n<p>In this example, we cast the floating-point number 3.14 to an <code>int<\/code>. The decimal part was lost, resulting in a loss of precision.<\/p>\n<h3>Avoiding Null Pointer Exceptions<\/h3>\n<p>Null pointer exceptions occur when you try to use a reference type that has a <code>null<\/code> value.<\/p>\n<pre><code class=\"language-java line-numbers\">Integer reference = null;\nreference++;\n\n\/\/ Output:\n\/\/ Exception in thread \"main\" java.lang.NullPointerException\n<\/code><\/pre>\n<p>In this example, we tried to increment a <code>null<\/code> reference, which resulted in a <code>NullPointerException<\/code>.<\/p>\n<p>To avoid these issues, always ensure that your values are within the correct range for their data type, be aware of the loss of precision when casting between types, and check for <code>null<\/code> before using a reference type.<\/p>\n<h2>Understanding Data Types in Programming<\/h2>\n<p>In programming, data types are an integral concept. They define the kind of data that can be stored and manipulated within a program. Java, like many other programming languages, categorizes its data types into two broad categories: primitive types and reference types.<\/p>\n<h3>Primitive Types vs. Reference Types<\/h3>\n<p>Primitive types are the most basic data types available within the Java language. They include <code>byte<\/code>, <code>short<\/code>, <code>int<\/code>, <code>long<\/code>, <code>float<\/code>, <code>double<\/code>, <code>char<\/code>, and <code>boolean<\/code>. These types are predefined by the language and named by a reserved keyword.<\/p>\n<p>On the other hand, reference types are created based on the programmer&#8217;s need. They can be used to store collections of data, such as arrays and objects.<\/p>\n<pre><code class=\"language-java line-numbers\">int primitiveType = 10; \/\/ Primitive type\nInteger referenceType = new Integer(10); \/\/ Reference type\n\nSystem.out.println(primitiveType);\nSystem.out.println(referenceType);\n\n\/\/ Output:\n\/\/ 10\n\/\/ 10\n<\/code><\/pre>\n<p>In this example, <code>primitiveType<\/code> is a primitive data type, while <code>referenceType<\/code> is a reference data type. Both hold the integer value 10, but <code>referenceType<\/code> is an object that can be used to call methods.<\/p>\n<h3>How Data Types are Handled in Memory<\/h3>\n<p>When it comes to memory management, primitive types and reference types are handled differently. Primitive types are stored directly in the stack, while reference types are stored in the heap. The variable in the stack points to the location in the heap where the actual object is stored.<\/p>\n<pre><code class=\"language-java line-numbers\">int primitiveType = 10; \/\/ Stored directly in the stack\nInteger referenceType = new Integer(10); \/\/ Stored in the heap\n<\/code><\/pre>\n<p>In this example, <code>primitiveType<\/code> is stored directly in the stack. In contrast, <code>referenceType<\/code> is an address that points to the actual object in the heap.<\/p>\n<p>Understanding the distinction between primitive and reference types, as well as how they are handled in memory, is crucial for efficient programming in Java.<\/p>\n<h2>Exploring Beyond Primitive Data Types in Java<\/h2>\n<p>Understanding Java&#8217;s primitive data types is a fundamental step in mastering the language. However, it&#8217;s also the starting point for delving into more complex topics that are crucial for effective programming and system design.<\/p>\n<h3>Data Structures and Algorithms<\/h3>\n<p>Data structures and algorithms form the backbone of efficient programming. A deep understanding of primitive data types in Java is essential for building and manipulating various data structures like arrays, linked lists, stacks, queues, trees, and graphs. These data structures, in turn, form the basis for creating efficient algorithms.<\/p>\n<h3>Java&#8217;s Object Class<\/h3>\n<p>In Java, every class implicitly or explicitly extends the Object class, making it a superclass of all other classes. Hence, understanding primitive data types is vital for working with the Object class and its methods.<\/p>\n<h3>Generics in Java<\/h3>\n<p>Generics add stability to your code by allowing you to specify the exact type of your collections at compile time. A solid understanding of Java&#8217;s primitive data types is necessary to use generics effectively.<\/p>\n<h3>Java&#8217;s Collections Framework<\/h3>\n<p>The Collections Framework in Java is a unified architecture for representing and manipulating collections. Knowledge of primitive data types is essential to work effectively with different types of collections like List, Set, Map, etc.<\/p>\n<h3>Further Resources for Mastering Java&#8217;s Primitive Data Types<\/h3>\n<p>To deepen your understanding of Java&#8217;s primitive data types, consider exploring the following resources:<\/p>\n<ul>\n<li><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/blog\/data-type-in-java\/\">Understanding Data Types<\/a> &#8211; Master selecting the appropriate data type for variables in Java programs<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/blog\/java-long\/\">Java Long<\/a> &#8211; Explore the Java long data type for representing large integer values.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/ioflood.com\/blog\/java-boolean\/\">Boolean Data Type in Java<\/a> &#8211; Learn about boolean expressions and logical operations in Java.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/docs.oracle.com\/javase\/tutorial\/\" target=\"_blank\" rel=\"noopener\">Oracle&#8217;s Java Tutorials<\/a> &#8211; Oracle&#8217;s official tutorials are a great resource for learning Java.<\/p>\n<\/li>\n<li>\n<p>Geeks for Geeks&#8217; <a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.geeksforgeeks.org\/java\/\" target=\"_blank\" rel=\"noopener\">Java Guide<\/a> offers tutorials on all aspects of Java programming, including primitive data types.<\/p>\n<\/li>\n<li>\n<p><a class=\"wp-editor-md-post-content-link\" href=\"https:\/\/www.baeldung.com\/java-primitives\" target=\"_blank\" rel=\"noopener\">Introduction to Primitive Types in Java<\/a> by Baeldung explains primitive data types in Java, their memory management, and usage.<\/p>\n<\/li>\n<\/ul>\n<h2>Wrapping Up: Mastering Primitive Data Types in Java<\/h2>\n<p>In this comprehensive guide, we&#8217;ve delved into the core of Java programming &#8211; the primitive data types. We&#8217;ve dissected each of Java&#8217;s eight primitive types, understanding their characteristics, common uses, and potential issues.<\/p>\n<p>We embarked on our journey with the basics, exploring each primitive type from <code>byte<\/code> to <code>boolean<\/code>. We then delved into more advanced topics, discussing type casting, type promotion, and the use of wrapper classes. Along the way, we tackled common issues you might encounter, such as overflow, underflow, and loss of precision, providing you with solutions and workarounds for each problem.<\/p>\n<p>We also ventured into the world of reference types, understanding their use, performance considerations, and the unique ability to handle <code>null<\/code> values. This led us to the distinction between primitive types and reference types in Java, a fundamental concept for any Java programmer.<\/p>\n<table>\n<thead>\n<tr>\n<th>Data Type<\/th>\n<th>Size<\/th>\n<th>Min Value<\/th>\n<th>Max Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>byte<\/td>\n<td>8-bit<\/td>\n<td>-128<\/td>\n<td>127<\/td>\n<\/tr>\n<tr>\n<td>short<\/td>\n<td>16-bit<\/td>\n<td>-32,768<\/td>\n<td>32,767<\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td>32-bit<\/td>\n<td>-2,147,483,648<\/td>\n<td>2,147,483,647<\/td>\n<\/tr>\n<tr>\n<td>long<\/td>\n<td>64-bit<\/td>\n<td>-9,223,372,036,854,775,808<\/td>\n<td>9,223,372,036,854,775,807<\/td>\n<\/tr>\n<tr>\n<td>float<\/td>\n<td>32-bit<\/td>\n<td>1.4e-45<\/td>\n<td>3.4e+38<\/td>\n<\/tr>\n<tr>\n<td>double<\/td>\n<td>64-bit<\/td>\n<td>4.9e-324<\/td>\n<td>1.8e+308<\/td>\n<\/tr>\n<tr>\n<td>char<\/td>\n<td>16-bit<\/td>\n<td>&#8221;<\/td>\n<td>&#8216;\uffff&#8217;<\/td>\n<\/tr>\n<tr>\n<td>boolean<\/td>\n<td>N\/A<\/td>\n<td>false<\/td>\n<td>true<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Whether you&#8217;re just starting out with Java or you&#8217;re looking to brush up your skills, we hope this guide has given you a deeper understanding of Java&#8217;s primitive data types and their importance in your coding journey.<\/p>\n<p>Understanding primitive data types is a fundamental step in mastering Java. With this knowledge, you are well-equipped to tackle more complex topics in Java. Happy coding!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Are you finding it challenging to understand primitive data types in Java? You&#8217;re not alone. Many developers, especially beginners, find this topic a bit complex. But, think of Java&#8217;s primitive data types as the basic building blocks, akin to Lego pieces, that form the foundation of your Java programs. These primitive types are the most [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10300,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[154,121],"tags":[],"class_list":["post-5475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-programming-coding","cat-154-id","cat-121-id","has_thumb"],"_links":{"self":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/5475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/comments?post=5475"}],"version-history":[{"count":9,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/5475\/revisions"}],"predecessor-version":[{"id":17699,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/posts\/5475\/revisions\/17699"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media\/10300"}],"wp:attachment":[{"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/media?parent=5475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/categories?post=5475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ioflood.com\/blog\/wp-json\/wp\/v2\/tags?post=5475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}