hi everyone
i have a very a very basic question in mind .. i wanted to discuss ..

Difference Between these?

String s1= new String("java") ;
String s2="java" ;

and also

what for 2 different classes are there in garbage collection?

System.gc and runtime.gc ( both are doing the same job)
what is their individual role?

please anyone explain me....

peter_budo commented: Interesting question +6

hi everyone
i have a very a very basic question in mind .. i wanted to discuss ..

Difference Between these?

String s1= new String("java") ;
String s2="java" ;

Strings are immutable in Java and the String class maintains a pool of String objects that have been created. Using a String literal, as with s2 above, the String class will return the reference of the existing String, so all references to equivalent String literals will point to the same String object. When you create the String with the new String("java") constructor, you will actually get a new copy of the String "java", not the reference from the String pool. The following fragment of code will demonstrate this

String a = "java";
         String b = new String("java");
         String c = "java";
         System.out.println("a==b : "+(a==b));   // false
         System.out.println("a.equals(b) : "+(a.equals(b)));   // true
         System.out.println("a==c : "+(a==c));   //true

what for 2 different classes are there in garbage collection?

System.gc and runtime.gc ( both are doing the same job)
what is their individual role?

please anyone explain me....

They are effectively the same. This is stated in the API documentation for the two methods.

The call System.gc() is effectively equivalent to the call:
Runtime.getRuntime().gc()

The method System.gc() is the conventional and convenient means of invoking this method.

thanks

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.