New Boolean() vs. static Boolean constants - how java compiler handles them

A coworker commented today that it is better practice to use static Boolean constants instead of creating new Boolean objects because Booleans are immutable and creating new Boolean objects would therefore be a waste of memory. For eg. do Boolean.TRUE instead of new Boolean(true). However a friend responded that a good java compiler would take care of that. Does anyone know if that is true? And if so, do most java compilers implement that optimization and is it safe to assume that it is a given?

Even if the compiler takes care of it, it's good coding practice to use the static instances instead.
That's what they're there for, and it's a lot easier to read as well.
Boolean b = new Boolean(true);is a lot less easy to read than
Boolean b = Boolean.TRUE;especially when it's as parameters to methods, and littered all over the code.
And when using static imports it gets even better.
Boolean b = TRUE;

Similar Messages

  • I have several pics of my new grandson throughout the year.  How do I combine them into one event

    I have several pics of my new grandson throughout the year.  How do I combine them into one event

    You can drag and drop photos from one Event to another. Or you can flag them and use the Events: Add Flagged photos to Select Event.
    However, why not use an Album for the job?

  • I have just used migration assistant to import photos (using an ethernet cable) from my PC. It has worked but they have gone into a new user on my MacPro. How can I merge them into the one user account.

    I have just used migration assistant to import photos (using an ethernet cable) from my PC. It has worked but they have gone into a new user on my MacPro. How can I merge them into the one user account.

    How many pictures (or how many bytes) are we talking?  Now that the pictures are imported one way to cross users is to use a removable drive (although large volumes of files preclude this).
    The other is to login as the user where the pictures are, then copy them into the public drop box of the user where you want the picture.
    The arrow is showing (in ths example) copy files from the Pictures folder for my user to the guest user accounts public dropbox.  When you do this you may have to authenticate and you won't be able to see the results of the copy until you log in as the other user.
    All users are in the folder "/Users/"

  • I´m new at Garageband and Mainstage. How can I make them work together?

    I´m new at Garageband and Mainstage. How can I make them work together?

    You may want to download and read the manual for your phone. It may answer a lot of the basic questions.
    http://support.apple.com/manuals/#iphone
    There is an app on your phone called "Mail". Yes, it's for reading your email.
    Best of luck.

  • I made an album just now. I went back to delete the pics from my camera roll but my only option is to "delete everywhere." I want to leave them in the new album I made..  How i can delete them from camera roll without deleting from other Album i made

    I made an album just now. I went back to delete the pics from my camera roll but my only option is to "delete everywhere." I want to leave them in the new album I made..  How i can delete them from camera roll without deleting from other Album i made

    The way that I understand that it works, is that the photos are not copied into the new albums, instead it just points to the photos - the number of photos on the iPad in Settings > General > About doesn't increase when you create new album so I assume from that that it isn't copying the photo, just pointing to it. So if you delete the photo from the camera roll you will therefore also be deleting all the pointers to it

  • Constants with Java Compiler ?

    When recompiling java files which contains CONSTANTS, I mean static final variables,
    I should also recompile the classes from
    which these constants are referred to. Otherwise
    I get buggy results. Is this an aimed result of
    Java or a bug of Java, I wonder ?

    my statement is TRUE also if the member is not declared as "final". When a Java Compiler do work,
    it replaces "REFERENCES TO MEMBERS ASSIGNED CONSTANT VALUES" with their compile-time assigned values. Thus,
    --------- here is A.java ----------
    public class A {
    public static void main(String [] str) {
    System.out.println(""+ b.b);
    ---- here is B.java --------------
    public class B {
    static final int b = 10;
    after producing A.class and B.class , if reproduce
    B.class to have member b = 20 then,
    java A
    is gonna print out 10, so not displaying the real value ??
    I think One class' compilation should not be dependent
    to others classes' compilation. It seems to be a BUG of Java ? Does'nt ?
    When recompiling java files which containsCONSTANTS,
    I mean static final variables,
    I should also recompile the classes from
    which these constants are referred to. Otherwise
    I get buggy results. Is this an aimed result of
    Java or a bug of Java, I wonder ?static final int number = 3;
    MyClass.number will be parsed to 3, since it's
    guaranteed not to change unless you of course modify
    the source.

  • My mailboxes are not showing up in the viewing area.  When I create a new mailbox they are listed.  How do I restore them in the mail view?

    My mailboxes are not visible.  When I go to add a new mailbox they are visible when asked where to put the new mailbox.  If I lost them how do I get them back if possible.  I have played around with everything that I can think of but with no luck.

    I have sorted it myself!!
    Ipod is now in the top right corner, last time I clicked on it, it ejected it but by clicking on the actual ipod icon then it brings up your ipod. I restored it to factory settings and synced all my music and it now works again. Hope this can help anyone who ends up with the same problem.

  • Errors in flat file records? how can i handle them?

    Hi All,
    I am new for BDC. I am uploading customer(XD01) records using BDC caltransaction method.my problem is when i am running the program, some times my program is not updating the records because of my flat file errors. after i correcting the error records and if i run the same program already updated records not processing. my program not running. what i need to do? how can i handle the flat file for reprocessing the error records?
    i have around 50,000 records in my flat file.

    your program accepts a flat file say the structure of it is structure_load and you create another structure similar to structure_load and name it structure_error.
    loop at itab_load.
    call transactions...
    if success..
    commit work and wait X sec.
    else.
    move-corresponding field to structure_error
    append structure_error.
    endif.
    endloop.
    write the file stru_error to PC or app server and make the changes  to the data and use the str_error as input to your code again..

  • BPEL 2.0 throws some of the faults as exceptions.. how do i handle them

    hi All
    I am using Jdev 11.1.1.6
    There is something weird happening while i am trying to handle faults in BPEL 2.0..
    Scenario: I am simply transfering data from one table to another and there is mismatch of the length in two tables i.e. target table have column with 30 length and source system is sending data of 40 length..
    so i am expecting a BPEL Binding Fault for the same
    but I am getting an exception from BPEL 2.0 for the same.. and it is not thrown as a fault to catch block.. Project gets Rolledback without throwing Fault to catch Block..
    then i tried same with BPEL 1.1 and it gave me fault as expected in catch block which i could handle by sending fault notifications..
    but BPEL 2.0 does not give me option of sending notifications as i do not get fault in Catch block..
    Issue: How do i handle the fault in BPEL 2.0 when its throwing it as exception?????
    Below is the trace i get from my instance with BPEL 2.0 and BPEL 1.1..
    Getting Exception From BPEL 2.0 as below_: After throwing the exception process gets rolledback but instance is always in running mode
    Non Recoverable System Fault :
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    Exception i am getting in Invoke Activity but No Fault
    <fault>
    <exception class="com.collaxa.cube.engine.EngineException">
    JTA transaction is not in active state. The transaction became inactive when executing activity "" for instance "520,633", bpel engine can not proceed further without an active transaction. please debug the invoked subsystem on why the transaction is not in active status. the transaction status is "MARKED_ROLLBACK". The reason was The execution of this instance "520633" for process "BPELProcess2" is supposed to be in an active jta transaction, the current transaction status is "MARKED_ROLLBACK", the underlying exception is "BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. " . Consult the system administrator regarding this error.
    <stack>
    <f>com.oracle.bpel.client.util.TransactionUtils.throwExceptionIfTxnNotActive#107</f>
    <f>com.collaxa.cube.ws.WSInvocationManager.invoke#352</f>
    <f>com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke#1070</f>
    <f>com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalInvoke#584</f>
    <f>com.collaxa.cube.engine.ext.common.InvokeHandler.handle#132</f>
    <f>com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__executeStatements#74</f>
    <f>com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform#166</f>
    <f>com.collaxa.cube.engine.CubeEngine.performActivity#2687</f>
    <f>com.collaxa.cube.engine.CubeEngine._handleWorkItem#1190</f>
    <f>com.collaxa.cube.engine.CubeEngine.handleWorkItem#1093</f>
    <f>com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal#76</f>
    <f>com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage#218</f>
    <f>com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory#297</f>
    <f>com.collaxa.cube.engine.CubeEngine.endRequest#4609</f>
    <f>com.collaxa.cube.engine.CubeEngine.endRequest#4540</f>
    <f>com.collaxa.cube.engine.CubeEngine._createAndInvoke#713</f>
    <f>...</f>
    </stack>
    </exception>
    <root class="oracle.fabric.common.FabricInvocationException">
    BINDING.JCA-12563 Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    <stack>
    <f>oracle.integration.platform.blocks.adapter.fw.jca.cci.EndpointInteractionException.getFabricInvocationException#75</f>
    <f>oracle.integration.platform.blocks.adapter.AdapterReference.getFabricInvocationException#307</f>
    <f>oracle.integration.platform.blocks.adapter.AdapterReference.post#293</f>
    <f>oracle.integration.platform.blocks.mesh.AsynchronousMessageHandler.doPost#142</f>
    <f>oracle.integration.platform.blocks.mesh.MessageRouter.post#197</f>
    <f>oracle.integration.platform.blocks.mesh.MeshImpl.post#215</f>
    <f>sun.reflect.GeneratedMethodAccessor1455.invoke</f>
    <f>sun.reflect.DelegatingMethodAccessorImpl.invoke#25</f>
    <f>java.lang.reflect.Method.invoke#597</f>
    <f>org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection#307</f>
    <f>org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint#182</f>
    <f>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed#149</f>
    <f>oracle.integration.platform.metrics.PhaseEventAspect.invoke#71</f>
    <f>org.springframework.aop.framework.ReflectiveMethodInvocation.proceed#171</f>
    <f>org.springframework.aop.framework.JdkDynamicAopProxy.invoke#204</f>
    <f>$Proxy315.post</f>
    <f>...</f>
    </stack>
    </root>
    </fault>
    Getting Exception as well as Fault from BPEL 1.1 as below_
    ->Here i am getting exception as above
    Non Recoverable System Fault :
    Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
    ->and here is the fault thrown by BPEL 1.1
    Non Recoverable System Fault :
    <bpelFault><faultType>0</faultType><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary></part><part name="detail"><detail>ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) </detail></part><part name="code"><code>12899</code></part></bindingFault></bpelFault>
    Fault i am getting in Invoke Activity
    <fault>
    <bpelFault>
    <faultType>0</faultType>
    <bindingFault>
    <part name="summary">
    <summary>Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'merge' failed due to: DBWriteInteractionSpec Execute Failed Exception. merge failed. Descriptor name: [MergeItemDBAdapterV1.Item]. Caused by java.sql.BatchUpdateException: ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) . Please see the logs for the full DBAdapter logging output prior to this exception. This exception is considered not retriable, likely due to a modelling mistake. To classify it as retriable instead add property nonRetriableErrorCodes with value "-12899" to your deployment descriptor (i.e. weblogic-ra.xml). To auto retry a retriable fault set these composite.xml properties for this invoke: jca.retry.interval, jca.retry.count, and jca.retry.backoff. All properties are integers. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. </summary>
    </part>
    <part name="detail">
    <detail>ORA-12899: value too large for column "ITEM"."ITEMNAME" (actual: 40, maximum: 30) </detail>
    </part>
    <part name="code">
    <code>12899</code>
    </part>
    </bindingFault>
    </bpelFault>
    </fault>
    Please suggest..

    I sorted out what is happening..
    When My Target DB is Empty and Merge operation is executed , Fault is thrown and catch block was able to catch it
    And When My Target DB is having Values, It is thrown as Exception.. i.e. no fault to Catch block :(
    Someone have any idea, hoe this can be resolved???
    Edited by: 910947 on Aug 31, 2012 1:43 AM

  • I know there is a bug with the new firefox 3.6.14 and how Java operates. I've un-installed 3.6.14 and re-installed 3.6.13 Does the Firefox Beta 4 have the prob that 3.6.14 has? When will firefox updates fix this Java bug?

    Under tools options for the 3.6.14 there is no tab to enable java, only java scripts. There was an add- on for Java that automatically downloaded that may be part of the problem. I' also updated to Java 1.6.0.24,- is that may be part of problem. The Pogo.com website will not load certain games.
    My biggest question is whether the Firefox beta 4 is safe(er) to use, and/or does it have other and perhaps worse bugs that have not been worked out.

    Firefox 3.6.15 fixes that problem with Java.
    Use Help > '''Check for Updates''' to get 3.6.15.

  • Static abstract methods - how can I avoid them?

    Hi everybody,
    just found out that java doesn't allow static abstract methods nor static methods in interfaces. Although I understand the reasons, I can't think of how to change my design to gain the required behavior without the need of static abstract methods.
    Here's what I want to do and how my thoughts lead to static abstract methods:
    ClassA provides access to native code (c-dll, using jna). The path to the dll can be set programmatically. Here's a draft of the class:
    public ClassA {
       private static String path;
       public static void setRealtivePath(String path) {
          //check if path exists and is not null -> get absolute path
          setPath(path);
       public static void setPath(String absolutePath) {
          this.path = path;
      //code to provide access to native lib
    }There is some more classes which provide access to different dlls (therefore the code for accessing the dlls differs from ClassA). Although this works, the setRelativePath method has to be implemented in each class. I thought it would be nice to put this method into a abstract super class that looks like this:
    public abstract class superClass {
       public static void setRelativePath(String path) {
          //check if path exists and is not null -> get absolute path
          setPath(path);
       //force inherting class to implement a static method
       public static abstract void setPath(String absolutePath);
    }thus simplifying ClassA and it's look-a-likes:
    public ClassA {
       private static String path;
       @Override
       public static void setPath(String absolutePath) {
          this.path = path;
      //code to provide access to native lib
    }Since static abstract methods (and overriding static methods) is not allowed, this doesn't work.
    I hope someone can catch my idea ;). Any suggestions how to do this in a nice clean way?
    Thanks in advance,
    Martin
    Edited by: morty2 on Jul 22, 2009 2:57 AM

    First of all, thanks a lot for your answer.
    YoungWinston wrote:
    Actually, you can "override" static methods (in that you can write the same method for both a subclass and a superclass, providing the superclass method isn't final); it's just that it doesn't work polymorphically. The "overriding" method masks the overridden one and the determination of what gets called is entirely down to the declared type.Yes, I know that. There's one problem: Your suggestion means that I simply have to drop the abstract modifier in the super classes setPath method. However, since the super class calls the setPath method (and not the inherting classes!) it will always be the super classes' method being called.
    YoungWinston wrote:
    Why are you so concerned with making everything static? Seems to me that the simplest solution would be to make all the contents instance-based.I want ClassA and it's look-a-likes to be set up properly at application start up, be accessible quite anytime and easily, they don't do anything themselves except for setting the path and calling into the native library which does the math. (Compareable to how you call e.g. Math.cos()). Therefore I don't think that an instance-based solution would be a better approach.
    YoungWinston wrote:
    Furthermore, you could make the class immutable; which might be a good thing - I'm not sure I'd want someone being able to change the pathname after I've >set up a class like this.Thanks for that!
    PS: As mentioned in my first post, I do have a working solution. However, I'm really corious about finding a nicer and cleaner way to do it!
    Martin

  • Firefox updated and my new page tiles are now gone how do I get them back?

    I update Firefox, and in the process Norton became my automatic search engine and new page. I have tried everything but have not be able to revert back to the new page tiles. Can you help me resolve this problem? I have attached a photo of what my new page looks like.

    This is likely because norton automatically changed your new tab page in an update to its software. To change this, do the following:
    1. Open a new tab, and go to about:config
    2. In the search box, type in "browser.newtab.url"
    3. Double-click on the entry that appears, and in the text box that appears enter "about:newtab", and then click okay.

  • All of my photos did not come to my new phone through My PhotoStream. How can I get them on my new 5C?

    I have tried to access through iCloud, but it still won't transfer. Do I need to sync to my computer and then over to my new phone?

    You need to understand that Photo Stream is TEMPORARY storage ONLY. Once enabled on a device, ONLY new photos you take or import to the device are pushed to Photo Stream. Read more here:
    http://support.apple.com/kb/HT4486

  • HT201272 I can clearly see previously downloaded items that are still on iTunes, but I cannot download them on my new computer.  Does anyone know how I can retrieve them?

    I cannot download music from previous purchases, but I can clearly see them in the iTunes store.  What is Apple trying to pull?

    Why can't you?
    What have you tried?
    What happened when you tried?
    Any info at all about your issue?
    Downloading past purchases from the App Store, iBookstore, and ...

  • Downtimes, how do you handle them?

    I was just wondering how the rest of the Nation handles their IronPort downtimes? Are they a big production, scheduled, notification to clients, approved by management? Or are they stealthy, done behind the scenes, nobody is aware of the changes?
    I can see pro's and con's to each way and I'm just wondering what the rest of the community does.
    What I'm currently facing is our department is trying to minimize scheduled downtimes as much as possible. I was just told that my downtime window will coincide with our Active Directory infrastructure downtimes. My concern is if something breaks, was it a domain controller issue or was it a IronPort issue?
    What are everyone else's thoughts?

    I don't think one is necessarily exclusive of other methods. I prefer to use a solution that fits the problem at hand.
    I was just wondering how the rest of the Nation handles their IronPort downtimes? Are they a big production, scheduled, notification to clients, approved by management? Or are they stealthy, done behind the scenes, nobody is aware of the changes?

Maybe you are looking for

  • Is there a way to shut off sharing your notes in iCal events?

    Hey there, long time lurker, first time poster, haha. I have dates/events on iCal a specific shared calendar I'm using, and it's my understanding that previously iCloud didn't share the notes you had made for that event - only date, time, location, e

  • Captivate 8 - submit buttons/images no longer showing on devices after adding text with javascript

    I'm working on a Captivate 8 project to publish to devices through PhoneGap. This is working successfully on iPhone and Android so far. I have modified the quiz so I have 2 types of quizzes with 3 levels each without the final score showing at the en

  • Listener not getting started

    Hello, I am using Oracle Database 10G and Windows Vista. I am trying to start my listener but it is not getting started. When I looked at the error message. It says TNS-12560: TNS:protocol adapter error TNS-00511: No listener 32-bit Windows Error: 2:

  • Problems with bit shift left in Formula Node

    Hi, Sorry but my English is not good. I'm trying to execute a bit shift left in the Formula Node, but the shift left is not working as I expected. uInt32 parametro[5]; float32 valorAmostra; int16 indiceAmostra; uInt8 indiceResposta; int16 controle; i

  • SSM - Error in the initial logon

    Hi. I am new to SSM, but have been working on IP and BCS for sometime. We have SAP Strategy Management 7.0 SP7 (JAVA deployment on NW CE Server) installed and configured. I tried to logon to SSM but got the following error. undefined: 'SQLArray1.1' i