{"id":11761,"date":"2022-09-28T11:46:23","date_gmt":"2022-09-28T06:16:23","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/"},"modified":"2022-09-28T11:46:23","modified_gmt":"2022-09-28T06:16:23","slug":"solved-class-fields-initialization-sequence-in-java","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/","title":{"rendered":"[Solved] class fields Initialization sequence in Java"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-29793259\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"29793259\" data-parentid=\"29792891\" data-score=\"2\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<h2>UPDATE FOR THE NEW CLEARER QUESTION:<\/h2>\n<blockquote>\n<p>It sees now that I should have added more text to my question. I<br \/>\n  wanted to know what would be the sequence of execution in case both<br \/>\n  these statements(1 and 2) are in one single class for the same<br \/>\n  variable ?<\/p>\n<\/blockquote>\n<p>You are interessted something like this:<\/p>\n<pre><code>   private class Test {\n        public String field = new String(\"1\");\n        {\n            field = new String(\"2\");\n        }\n\n    }\n<\/code><\/pre>\n<p>At first the field get the value 1, after that the constructor will be called and the init block which was placed in the ctor at compile time will be executed so the value of field is &#8220;2&#8221;.<\/p>\n<p>See this example:<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/ideone.com\/72uxES\">http:\/\/ideone.com\/72uxES<\/a><\/p>\n<p>See also this Question and answer:<\/p>\n<p>Default constructor vs. inline field initialization<\/p>\n<hr>\n<h2>OLD VERSION<\/h2>\n<p>I think you mean something like this:<\/p>\n<pre><code>Object obj = new Object() \n<\/code><\/pre>\n<p>Or<\/p>\n<pre><code>Object obj;\n{\n  obj = new Object();\n}\n<\/code><\/pre>\n<p>The curly brackets define a scope in which the variable life time is given.<\/p>\n<p>Say we have following example:<\/p>\n<pre><code>import java.util.*;\nimport java.lang.*;\nimport java.io.*;\n\nclass Ideone\n{\n    private static void checkObject(Object obj) {\n        if (obj == null)\n            System.out.println(\"Object is null\");\n        else\n            System.out.println(\"Object is not null\");\n    }\n    public static void main (String[] args) throws java.lang.Exception\n    {\n        Object obj;\n        {\n            obj = new Object();\n            checkObject(obj);\n        }\n        checkObject(obj);\n    }\n}\n<\/code><\/pre>\n<p>The Output is:<\/p>\n<pre><code>Object is not null\nObject is not null\n<\/code><\/pre>\n<p>But if we change it to:<\/p>\n<pre><code>{\n  Object obj = new Object();\n  checkObject(obj);\n}\ncheckObject(obj);\n<\/code><\/pre>\n<p>It will not even compile and give these error msg:<\/p>\n<pre><code>Main.java:22: error: cannot find symbol\n        checkObject(obj);\n                    ^\n  symbol:   variable obj\n  location: class Ideone\n1 error\n<\/code><\/pre>\n<p>The first declares a variable obj and initialize it inside the scope<br \/>\nbecause it was outside declared it can be used after the scope.<\/p>\n<p>If it is declared and initialized only in the scope it can be used only inside the scope.<br \/>\nThe lifetime is bound to the scope.<\/p>\n<p>If you use the curly brackets to initialize class fields<br \/>\nyou are able to use more than one statement to initialize them<br \/>\nbut you can also simply create a final method and call the method to initialize the field.<\/p>\n<p>Example for curly brackets and field initialization:<\/p>\n<pre><code>class A {\n private String field;\n {\n   StringBuilder builder = new StringBuilder(\"Text\").append(value)\n                                                    .append(\" \")\n                                                    .append(otherValue);\n   \/\/make some computations \n   \/\/append to builder\n   \/\/add to field\n   field = builder.toString();\n }\n<\/code><\/pre>\n<p>Hint:<\/p>\n<blockquote>\n<p>The Java compiler copies initializer blocks into every constructor.<br \/>\n  Therefore, this approach can be used to share a block of code between<br \/>\n  multiple constructors.<\/p>\n<\/blockquote>\n<p>See working example:<\/p>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/ideone.com\/X42rQI\">http:\/\/ideone.com\/X42rQI<\/a><\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved class fields Initialization sequence in Java <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] UPDATE FOR THE NEW CLEARER QUESTION: It sees now that I should have added more text to my question. I wanted to know what would be the sequence of execution in case both these statements(1 and 2) are in one single class for the same variable ? You are interessted something like this: private &#8230; <a title=\"[Solved] class fields Initialization sequence in Java\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\" aria-label=\"More on [Solved] class fields Initialization sequence in Java\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[613,323],"class_list":["post-11761","post","type-post","status-publish","format-standard","hentry","category-solved","tag-initialization","tag-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] class fields Initialization sequence in Java - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] class fields Initialization sequence in Java - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] UPDATE FOR THE NEW CLEARER QUESTION: It sees now that I should have added more text to my question. I wanted to know what would be the sequence of execution in case both these statements(1 and 2) are in one single class for the same variable ? You are interessted something like this: private ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-28T06:16:23+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\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:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] class fields Initialization sequence in Java\",\"datePublished\":\"2022-09-28T06:16:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\"},\"wordCount\":298,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"initialization\",\"java\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\",\"name\":\"[Solved] class fields Initialization sequence in Java - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-09-28T06:16:23+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] class fields Initialization sequence in Java\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] class fields Initialization sequence in Java - JassWeb","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:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] class fields Initialization sequence in Java - JassWeb","og_description":"[ad_1] UPDATE FOR THE NEW CLEARER QUESTION: It sees now that I should have added more text to my question. I wanted to know what would be the sequence of execution in case both these statements(1 and 2) are in one single class for the same variable ? You are interessted something like this: private ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/","og_site_name":"JassWeb","article_published_time":"2022-09-28T06:16:23+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] class fields Initialization sequence in Java","datePublished":"2022-09-28T06:16:23+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/"},"wordCount":298,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["initialization","java"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/","url":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/","name":"[Solved] class fields Initialization sequence in Java - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-09-28T06:16:23+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-class-fields-initialization-sequence-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] class fields Initialization sequence in Java"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11761","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=11761"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/11761\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=11761"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=11761"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=11761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}