357 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Pods | Blogs | Search | myPL | About 
 
Latest 7 Posts
Dell U2713HM 68,6 cm (27 Zoll) LED-Monitor ein Traum für den Entwickler
Thu, Aug 21st 2014 31
How to fix "Bootmgr is missing" error in Windows 7
Sun, Aug 10th 2014 103
AFP Workbench Viewer fails with "The program can't start because icuuc44.dll ismissing"
Fri, Aug 8th 2014 63
Die Cloud und der Browser sind für Enterpriseanwendungen vielleicht doch keine so gute Idee
Mon, Aug 4th 2014 210
Network layer name resolution in Wireshark
Fri, Aug 1st 2014 64
Easy packet filtering with Wireshark
Thu, Jul 31st 2014 95
Add your own Shortcuts to the Masthead without java or eclipse knowledge
Thu, Jul 31st 2014 106
Top 10
Motorola kündigt gerade das neue Moto G Smartphone zu einem wirklichen Hammerpreis an.
Wed, Nov 13th 2013 715
Show pictures in emails from iPhones as attachments and not as inline images
Wed, Aug 14th 2013 567
Domino/Notes 9.0.1 FP1 has been postponed to April.
Tue, Mar 25th 2014 550
Force the Notes client to refresh policies from the server
Thu, Aug 8th 2013 531
IBM i V7R2 has been announced today.
Mon, Apr 28th 2014 472
IBM rolls out a new design for the lotus developerworks website
Fri, Mar 21st 2014 461
A deep look under the hood of the Notes Standard client.
Sun, Jun 29th 2014 408
IBM Notes/Domino 8.5.3 FP6 is available on Fix Central
Wed, Dec 11th 2013 395
Rational Developer for System i 9 is available
Fri, Jun 28th 2013 366
Become an expert in TCP/IP networking
Sun, Mar 23rd 2014 359


"equal" vs "==" in Java
   

Ein typischer Anfängerfehler in Java ist, zwei Objekte in einer if Klausel mit "==" statt mit .equals() zu vergleichen. Dies ist aber in den meisten Fällen grundfalsch. Das tückische dabei ist, dass der Fehler nicht immer sofort auffällt, da unter manchen Umständen der Vergleich mit "==" auch funktioniert.

Um zu verstehen warum die beiden Vergleiche unterschiedlich sind, muss man zuerst wissen, wie Java eigentlich Objekte verwaltet. Wenn mit new ein neues Objekt erzeugt wird und einer Variable zugewiesen wird, wird nicht das Objekt in der Variable gespeichert, sondern das Objekt wird am Heap (Hauptspeicher) erzeugt und ein Zeiger auf die Stelle im Heap an der das Objekt gespeichert ist, wird der Variable zugewiesen. Man kann sich sozusagen die Variable als einen primitiven Datentyp vorstellen, der eine Referenz auf den Heap speichert. Mehrere Variablen können die selbe Referenz auf das selbe Objekt im Heap zugewiesen haben. Wenn nun mit "==" verglichen wird, wird das Objekt im Heap gar nicht angeschaut, sondern es wird nur verglichen, ob die Variable die gleiche Referenz enthält. Wenn ja wird true zurückgeliefert und wenn nein wird false zurückgeliefert. Ganz anders verhält es sich beim equals(). Hier müssen die Objekte nicht einmal vom gleichen Typ sein, sondern es kommt auf die Implementierung der "equals" Methode an, ob das Ergebnis true oder false ist. Im Normalfall wird man immter mit equals() vergleichen, da ich im Normalfall wissen will, ob es sich um ein logisch gleiches Objekt handelt und nicht um das selbe Objekt. Wenn alles so klar ist, warum funktioniert dann folgender Code:


String test1="Test";
String test2="Test";
System.out.println(test1==test2); //Bitte auf keinen Fall so machen
System.out.println(test1.equals(test2); //So vergleicht man richtig.
Im Normalfall würde man erwarten, da man zwei String Literale hat, dass der erste Vergleich false ergeben würde. Doch die JVM verwendet für Stringliterale einen Cache und so wird der zweite Literal wegoptimiert und beide Variablen verweisen auf das selbe Objekt im String Cache. Nur sollte man sich auf keinen Fall auf das verlassen, da eine andere JVM Implementierung auf diesen Cache eventuell verzichtet, oder der Cache bereits voll ist und dann hat man plötzlich zwei unterschiedliche Objekte und der erste Vergleich ergibt false.

---------------------
http://petterralf.blogspot.com/2012/12/equal-vs-in-java.html
Dec 14, 2012
51 hits



Recent Blog Posts
31


Dell U2713HM 68,6 cm (27 Zoll) LED-Monitor ein Traum für den Entwickler
Thu, Aug 21st 2014 12:12p   Ralf Petter
Lange habe ich überlegt, ob ich meinen alten 24" Samsung Monitor gegen einen neuen Monitor austauschen sollte. Jetzt habe ich mich endlich überwunden und mir einen neuen Dell U2713HM 27 Zoll LED Monitor geleistet. Wichtig war für mich eine hohe Pixeldichte für schärfere Schriftdarstellung und ein mattes Display um störende Spiegelungen zu vermeiden. Beides erfüllt der Dell U2713HM mit Bravour. Auch die Blickwinkelunabhänigkeit und die homgene Ausleuchtung sind um vieles besser als bei m [read] Keywords: eclipse
103


How to fix "Bootmgr is missing" error in Windows 7
Sun, Aug 10th 2014 6:12a   Ralf Petter
A friend of mine called me this morning that her Windows 7 does not start and that she got the error message "Bootmgr is missing press any key to restart" She was able to fix this by following the steps in this video tutorial i suggested to her. [read] Keywords:
63


AFP Workbench Viewer fails with "The program can't start because icuuc44.dll ismissing"
Fri, Aug 8th 2014 7:12a   Ralf Petter
After installing 7.1 service pack SI50567 the AFP Workbenchviewer which is used in the System i Navigator to view spool files fails on startup with the error "The program can't start because icuuc44.dll ismissing" It does not help to reinstall the program as the error message says. After some search i found APAR SE57569 which describes the problem and there is also an Hotfix which correct the error. So if you have installed 7.1 with service pack SI50567 i strongly recommend to install the h [read] Keywords: ibm system i
210


Die Cloud und der Browser sind für Enterpriseanwendungen vielleicht doch keine so gute Idee
Mon, Aug 4th 2014 11:26a   Ralf Petter
Alle großen Player sei es IBM, Microsoft oder Google hätten unsere Daten gerne in der Cloud und am Besten soll alles in Zukunft nur noch über den Browser gemacht werden. Sie versprechen uns eine strahlende Zukunft in der wir auf egal welchen Geräten und von wo auch immer aus mit unseren Daten arbeiten können. Ich für meinen Teil war aber schon bisher immer ziemlich skeptisch, gegenüber Cloud und browserbasierenden Lösungen eingestellt. Zu viele Dinge an der Cloud wie Backup and Restore u [read] Keywords: ibm inotes firefox google microsoft server
64


Network layer name resolution in Wireshark
Fri, Aug 1st 2014 6:17a   Ralf Petter
Normally Wireshark does not make a reverse lookup for network layer addresses, which makes it sometime hard to find out to which communication a IP packet belongs. Fortunately there is an option to enable the name resolution for the network layer. Just select the "View->Name Resolution->Enable for Network Layer" option. Now every IP Address which has a DNS name assigned, will be automatically resolved in your network trace. [read] Keywords: network
95


Easy packet filtering with Wireshark
Thu, Jul 31st 2014 10:12a   Ralf Petter
Wireshark the ultimate tool to solve network problems have so many filter possibilities, that it is often very difficult to find the correct one for your need in the Filter expression dialog. But fortunately there is an easy way to create a filter. Simply click on the field in the packet trace detail for which you want to create a filter with the right mouse button and choose the correct "Apply as Filter" context menu. If you have already set a filter and want to add the field as an addition [read] Keywords: network
106


Add your own Shortcuts to the Masthead without java or eclipse knowledge
Thu, Jul 31st 2014 5:57a   Ralf Petter
In one of my last posts (Add Custom Actions to the Masthead (Shortcut Buttonbar) in Notes 9) i have shown to you how to add your own Shortcuts to the Masthead with an eclipse extension. To do this you need basic java skills and an eclipse installation properly configured for Notes plugin development. I have got many replies that many Notes developers/admins do not have the prerequisites to follow my tutorial and so i have promised to provide a new tutorial without the need for java or eclipse s [read] Keywords: notes notes client database desktop development eclipse enterprise java server widget




194


Holiday Reading: Redbook Performance Optimization and Tuning Techniques for IBM Processors
Tue, Jul 22nd 2014 11:12a   Ralf Petter
I am on vacation and it is raining outside. So it works out well that in july IBM released a new redbook about Performance Optimization and Tuning Techniques for IBM Processores. The redbook contains chapters for all three operating systems which runs on Power Systems (IBM i, AIX and Linux). If you are a Developer or advanced Admin on Power Systems this redbook is my recommendation to get a good understanding what to do to get the most of your Power System. Table of contents Chapter 1. Optim [read] Keywords: admin ibm aix application db2 java linux server websphere
170


Die Hölle kann doch zufrieren
Wed, Jul 16th 2014 4:26a   Ralf Petter
Wie der Standard und Heise berichten gehen Apple und IBM eine Partnerschaft ein um Enterprise Anwendungen auf die iOS Geräte zu bringen. Das ist echt eine Kehrtwende in der Politik von Apple nach dem sie noch vor Kurzem ohne mit der Wimper zu zucken auf Macs IBM Notes kaputt gemacht haben, nur weil sie selber gerne eine App mit dem Namen Notes haben wollten. Ich denke IBM wird von dieser Partnerschaft wesentlich mehr profitieren als Apple, denn Apple wird Zugeständnisse machen müssen damit d [read] Keywords: ibm notes apple enterprise iphone
158


Updated Todo Activator widget adds Todo icon to the Masthead (ShortCutButtonBar)
Tue, Jul 15th 2014 4:37a   Ralf Petter
For all who do not have the skills to extend Notes by them self, i have updated my To do Activator widget with an To Do icon for the masthead. So if you have already installed the To do Activator widget upgrade it to the latest version and if not try it to get the most out of your Notes client. [read] Keywords: notes notes client widget




Created and Maintained by Yancy Lent - About - Blog Submission - Suggestions - Change Log - Blog Widget - Advertising - Mobile Edition