logo

CuriousTab

CuriousTab

Discussion


Home Java Programming Threads See What Others Are Saying!
  • Question
  • What will be the output of the program?
    public class SyncTest 
    {
        public static void main (String [] args) 
        {
            Thread t = new Thread() 
            {
                Foo f = new Foo();
                public void run() 
                {
                    f.increase(20);
                }
            };
        t.start();
        }
    }
    class Foo 
    {
        private int data = 23;
        public void increase(int amt) 
        {
            int x = data;
            data = x + amt;
        }
    }
    
    and assuming that data must be protected from corruption, what?if anything?can you add to the preceding code to ensure the integrity of data?


  • Options
  • A. Synchronize the run method.
  • B. Wrap a synchronize(this) around the call to f.increase().
  • C. The existing code will cause a runtime exception.
  • D. Synchronize the increase() method

  • Correct Answer
  • Synchronize the increase() method 

    Explanation
    Option D is correct because synchronizing the code that actually does the increase will protect the code from being accessed by more than one thread at a time.

    Option A is incorrect because synchronizing the run() method would stop other threads from running the run() method (a bad idea) but still would not prevent other threads with other runnables from accessing the increase() method.

    Option B is incorrect for virtually the same reason as A?synchronizing the code that calls the increase() method does not prevent other code from calling the increase() method.


    More questions

    • 1. Which statement is true?

    • Options
    • A. Assertions can be enabled or disabled on a class-by-class basis.
    • B. Conditional compilation is used to allow tested classes to run at full speed.
    • C. Assertions are appropriate for checking the validity of arguments in a method.
    • D. The programmer can choose to execute a return statement or to throw an exception if an assertion fails.
    • Discuss
    • 2. What will be the output of the program?
      class Two 
      {
          byte x;
      }
      
      class PassO 
      {
          public static void main(String [] args) 
          {
              PassO p = new PassO();
              p.start();
          }
      
          void start() 
          {
              Two t = new Two();
              System.out.print(t.x + " ");
              Two t2 = fix(t);
              System.out.println(t.x + " " + t2.x);
          }
      
          Two fix(Two tt) 
          {
              tt.x = 42;
              return tt;
          }
      }
      

    • Options
    • A. null null 42
    • B. 0 0 42
    • C. 0 42 42
    • D. 0 0 0
    • Discuss
    • 3. You want subclasses in any package to have access to members of a superclass. Which is the most restrictive access that accomplishes this objective?

    • Options
    • A. public
    • B. private
    • C. protected
    • D. transient
    • Discuss
    • 4. What will be the output of the program?
      public class RTExcept 
      {
          public static void throwit () 
          {
              System.out.print("throwit ");
              throw new RuntimeException();
          }
          public static void main(String [] args) 
          {
              try 
              {
                  System.out.print("hello ");
                  throwit();
              }
              catch (Exception re ) 
              {
                  System.out.print("caught ");
              }
              finally 
              {
                  System.out.print("finally ");
              }
              System.out.println("after ");
          }
      }
      

    • Options
    • A. hello throwit caught
    • B. Compilation fails
    • C. hello throwit RuntimeException caught after
    • D. hello throwit caught finally after
    • Discuss
    • 5. Which of the following statements is true?

    • Options
    • A. It is sometimes good practice to throw an AssertionError explicitly.
    • B. Private getter() and setter() methods should not use assertions to verify arguments.
    • C. If an AssertionError is thrown in a try-catch block, the finally block will be bypassed.
    • D. It is proper to handle assertion statement failures using a catch (AssertionException ae) block.
    • Discuss
    • 6. Which of the following will not directly cause a thread to stop?

    • Options
    • A. notify()
    • B. wait()
    • C. InputStream access
    • D. sleep()
    • Discuss
    • 7. Which one is a valid declaration of a boolean?

    • Options
    • A. boolean b1 = 0;
    • B. boolean b2 = 'false';
    • C. boolean b3 = false;
    • D. boolean b4 = Boolean.false();
    • E. boolean b5 = no;
    • Discuss
    • 8. What will be the output of the program?
      String a = "ABCD"; 
      String b = a.toLowerCase(); 
      b.replace('a','d'); 
      b.replace('b','c'); 
      System.out.println(b);
      

    • Options
    • A. abcd
    • B. ABCD
    • C. dccd
    • D. dcba
    • Discuss
    • 9. What will be the output of the program?
      class Q207 
      { 
          public static void main(String[] args) 
          {
              int i1 = 5; 
              int i2 = 6; 
              String s1 = "7"; 
              System.out.println(i1 + i2 + s1); /* Line 8 */
          } 
      }
      

    • Options
    • A. 18
    • B. 117
    • C. 567
    • D. Compiler error
    • Discuss
    • 10. In the given program, how many lines of output will be produced?
      public class Test 
      {
          public static void main(String [] args) 
          {
          int [] [] [] x = new int [3] [] [];
          int i, j;
          x[0] = new int[4][];
          x[1] = new int[2][];
          x[2] = new int[5][];
          for (i = 0; i < x.length; i++)
          {
              for (j = 0; j < x[i].length; j++) 
              {
                  x[i][j] = new int [i + j + 1];
                  System.out.println("size = " + x[i][j].length);
              }
          }
          }
      }
      

    • Options
    • A. 7
    • B. 9
    • C. 11
    • D. 13
    • E. Compilation fails
    • Discuss


    Comments

    There are no comments.

Enter a new Comment