I am little confused about String creation in java.
Doubt 1: How String objects assigned to Pool area:
1. String s="in pool";
2. String s1= new String("not in pool");
How many objects created in statement 1 and 2. According to recent discussion with my colleague, one object created in String pool in case 1. And in case 2, two objects are created, one as literal goes to String pool and other with new() opr goes to Heap.
If above is correct, Ain't we wasting double memory for same object ? Really need clear understanding on this
Doubt 2: How does intern() work: Please see if my below explanation is correct
1. If String literal is already present in String pool , and i create a same string with new operator, reference to object is changed to pool area.
2. If String object is created using new operator and intern is called on it. If same string object is not present in the String Pool, Its moved to String pool and reference to this in Pool is returned.
Which is the best way to keep track of the number of the objects I've created?Is is a good practice to have a static variable, which will be incremented everytime I call a contructor?
Is it possible to have the value of an entered String to be set as the name of the String to be created whilst running.For example: String username= Keyboard.readString() & the user entered for example the word: "Hello".Is there a way how I can make the Java Program create another String named Hello (Inputted value of String username).
If this is allowed, what do I have to use and if possible show me exactly what I have to do with the example mentioned above?
I am working on an independent project it is a simple little text based rpg that will run in a counsel window. I have an object for Character that is creating during a CreateCharacter method. I want the play to be able to enter a character that will open up a menu that displays things like the name and health and stuff of the character from the object created in CreateCharacter, but because I have it in a different class I don't know how to reference the object made in CreateCharacter.
I have it in 6 files
Character --- Object with getters/setters for things like name, age, race, class, ect MainMenu --- Displays title and promts for new game and quit CreateCharacter --- Walks through and sets all values in Character Stats --- Keeps the players stats (health, attack, ect) in an array Intro --- Beginning demo thing (not really important for this question) Menu --- Displays all current user stats (Having issues with this one)
how String objects are different from other objects
part 1:
// creating two objects Dog mydog1 = new Dog(); Dog mydog2 = new Dog(); // comparing the reference variables if( mydog1 == mydog2){ System.out.println(" The reference variables refer the same object "); } else { System.out.println(" They refer to different objects "); }
The above code works as I understand objects , it prints "They refer to different objects " to the screen.
Part - 2
// creating two objects ( I beleive, pls correct me if i am wrong ) String a = "haai"; String b = "haai";
if( a == b){ System.out.println(" Reference variables refer to same object");
When i run the above code it prints that a and b refer same object , I don't understand how they refer to same object when i didn't assign " String b = a; ". My question is did java just create one object and stored the same reference values to a and b .
I have to create a class that has two fields. One called length and the other width. I have to make a method that returns the tract area. Similarly, I also have to make a method that indicates whether two objects have the same fields. Here is the code that I have assembled...so far
// create private fields to hold width and length private double width; private double length;
[Code].....
My problem is encountered when writing that equals method
I get an error saying HTML Code: cannot invoke equals(double) on the primitive type double. Meanwhile, I do see, to realize that when I change my fields to capital "Double." The problem disappears; however, in my class I have never dealt with a situation where I have to use capital d in double. In fact, I don't even know what's the difference between Double and double. I do know what double is but not the other one..
How can I write a method that takes a string with duplicates letters and returns the same string which does not contain duplicates. For example, if you pass it radar, it will return rad. Also i would like to know how can I Write a method that takes as parameters the secret word and the good guesses and returns a string that is the secretword but has dashes in the places where the player has not yet guessed that letter. For example, if the secret word is radar and the player has already guessed the good guesses letters r and d, the method will return r-d-r.
I am currently trying to make a calculator in Java. I want to use the String split method to tokenize the string of characters inputted. I thought I was using the String split method wrongly, because I had surrounded the characters I wanted to delimit with square brackets. However, when I removed the square brackets, the code threw an exception when I pressed the equal button. The exception was a PatternSyntaxException exception. Am I using the String split method wrongly? And why is the exception thrown? Here is my code:
import javax.swing.*;//import the packages needed for gui import java.awt.*; import java.awt.event.*; import java.util.Arrays; import java.util.List; import static java.lang.Math.*; public class CalculatorCopy { public static void main(String[] args) {
i am trying to write a class method which will take in a string and returns a string which is the reversed version of that string. it compiles fine but when i try to run it it states Main method not found in class StringReverse,please define the main method as public static void main(String[]args). I am new to java and cannot figure out
import javax.swing.JOptionPane; public class StringReverse { public String reverseString(String str){ JOptionPane.showInputDialog(null,"Please enter word"); char c = str.charAt(str.length()-1); if(str.length() == 1) return Character.toString(c); return c + reverseString(str.substring(0,str.length()-1));}}
I have application written in rest with Jersey-Jackson for JSON processing. All the resources produce and consume JSON. Now, the problem is, it is a server intensive application and large number of request will be hitting the server with large JSON request object. Now, because of this reason, when the JSON object gets converted in to Java object with String fields in it mapping to JSON request values large number of string objects are getting created which is resulting in frequent GC.
if some of you worked with Unity Game engine (C#) the idea is that game has main loop and once per cycle it call for example Update() method in all objects which implement certain interface.
I would like to repeat such pattern in Java for another another program, not even game related, but I would still need a main loop and event driven behaviour with async call backsSo question is how to implement the fallowing scenario:
Imagine i have interface which implement some methods and one of them is Execute()
I have the main controller class which implement main loop, also multiple other classes which implement the same interface with method Execute(). How can i call this Execute() method on all objects which implement that interface each loop cycle?
Should i keep and track reference of each object which was implemented with this interface and go through inner "for" loop trough each reference and call manually Execute() method in each of them?what if each object implementing interface have to run Execute() method simultaneously? in parallel independent from each other?
Referring back to Unity engine and their Update() method - there is exactly the same situation:you can have multiple objects with script attached, thats script implement interface which has multiple methods and one of them is Update() and once per cycle all objects with that Update() method will be executed in parallel independently
I want to clarify it whether this below code, when running this loop, will it create separate string objects as strings are immutable or else, will it keep the same reference(as each time inside loop, we use the same name 'rslt') and assign new string value for this?
This is what I have to create : Write a method that returns the largest object in an array of objects. The method signature is:
public static Object max(java.lang.Comparable[] a)
All the objects are instances of the java.lang.Comparable interface. The order of the objects in the array is determined using the compareTo method.
Write a test program in the main method that creates an array of ten Strings, an array of ten Integers, and an array of ten java.util.Dates, and finds the largest string (i.e. in the alphabetical order), Integer, and Date in the arrays.
Name your java class Max and your java file Max.java.
I am struggling a bit with this code as I am sure you can see, and am at loss. I have never used the compareTo method. Am I doing this right, or on the right track with my code?
public class Max implements Comparable { public static Object max(java.lang.Comparable[] a) { java.lang.Comparable tempObj = null; for (int i = 0; i < a.length; i++) { if (a[i].compareTo(tempObj) > 0)
Say I have two classes, Author and Book, and I have 2 author objects and 10 book objects. I would like to know how to do two things:
1) Make some sort of connection that makes clear that author X wrote books A, B and F. 2) Call a method from a book object that is connected to an author.
Seeing as I don't know which books will be connected to an author, is there some way to call a method of an object bases on a variable object name? Something like call the getFirstPage() method for every book that is linked to author X?
I have a school assignment that involves me sorting an array of objects based on one of the class String variables. I am using as the title says a simple selection sort method. The problem I'm having is that when I run the program in debug mode, it never seems to enter the if statement in the inner loop. I would like to say I've tried a number of things to figure it out, but honestly I'm just stumped as to why it's not working.
Here is the code:
public static void sortTransactions(Transaction[] oTransaction){// This is the sorting method, obviously it's not done so it currently just prints to screen. System.out.println("Successful call to sortTransaction()"); String min = ""; int curInd = 0; Transaction[] temp = new Transaction[1];
[Code] ....
The output when I check to see if the array is sorted verifies that the array never does get sorted.
Code a Java method that accepts a String array and a String. The method should return true if the string can be found as an element of the array and false otherwise. Test your method by calling it from the main method which supplies its two parameters (no user input required). Use an array initialiser list to initialise the array you pass. Test thoroughly.
public class test { public static void main(String[] args) { Printhelloworld(); String[] verbs = {"go", "do", "some", "homework"}; printArrays(verbs);
So I'm creating a class which when given three inputs uses them as sides of a triangle and tells ther user what type of triangle it is, or if the input is invalid, tells them why it is invalid. I'm readin the input as a string and then trying to split it into a string array, from there checking to see if it has 3 elements.. in which the data is good at that point, and then converting them to ints and checking to see if they're negative ansd finally checking to see if they can work as sides of a triangle ie a+b >c, a+c >b , b+c >a.
I'm trying to split it into an array of strings but am getting an error, and can't seem to figure out why as this should be working from what I've read of the string.split method online.
import java.util.*; public class TriangleTest{ private int sideA; private int sideB; private int sideC; public static void main(String[] args){ TriangleTest triangle = new TriangleTest("3 4 5");
I'm doubted regarding the implementation of Collections.binarySearch() method on an ArrayList of objects of a custom class Movie.
Here is the movie class :
public class Movie implements Comparable<Movie> { String movieName; String rating; String director; String theme;
[Code] .....
The sort/binarySearch in searchByMovieName function is done with natural sorting (and Comparable Interface in Movie class). I mean no comparators involved here. And the comparator that I used for sorting/binarySearching on Movies Director attribute in searchByMovieDirector function is :
public class MovieDirectorComparator implements Comparator<Movie> { public int compare(Movie movie1, Movie movie2) { return movie1.getDirector().compareToIgnoreCase(movie2.getDirector()); } }
But I was not able to implement binarySearch ?? How to implement the binarySearch here. I have google to see only binarySearch working on Arrays or probably ArrayList of String only, but not on ArrayList of custom objects.
I am getting incombatable types, I do not know why I am getting them..why I am getting the error?
The Error I am getting: stringSort.java:26: error: incompatible types if(myArray[j].compareToIgnoreCase(myArray[i].toString())){ ^ required: boolean found: int */
I need to get the string encodedString from the method encode able to be used in the decode method.
Java Code:
public String encode(String plainText) { int prepareString; int shiftChar; String preparedString2 = prepareString(plainText); String encodedString = ""; for(int c = 0 ; c < preparedString2.length();c++)