What Are Static Initialization Blocks
Apr 2, 2015What static initialization blocks do in java?
View RepliesWhat static initialization blocks do in java?
View Replies I come from a C++ background and I recently started learning Java from "Thinking in Java" 4th Edition by Bruce Eckel.What's the difference between:
// explicit in class initialization
// saw this on page 126
class A {
}
public class B {
A obj1 = new A();
A obj2 = new A();
}
and
// non static instance initialization
// saw this on page 132
class A {
}
public class B {
A obj1;
A obj2;
{
obj1 = new A();
obj2 = new A();
}
}
when do they get called?
from my code
class MyJava{
static { System.out.println("initializing..."); }
public static void main(String[] args)
{
}
}
i did get the "initializing..." string output, even though i didn't create any MyJava objects.
from this fact, i inferred that initializing blocks get called once when the program compiles.
am i right?
import java.io.*;
import java.util.List;
import java.util.ArrayList;
public class ListOfNumbers {
try
[code]....
i tried this code in BlueJ IDE.it told me i had an illegal beginning for "try".am i not supposed to use try for main methods?
I am trying to make a pyramid from blocks . I know that for example to make a bigger block from small blocks you write something like :
for(int i = 10 ;i <=1 ; i--){
for (int j= 10 ;j <= 1 ; j--) {
< statement to create block where you use both i and j to define the location of each block>
}
}
but i cant seem go grasp how to make a pyramid , so far my best effort is :
int i =10 ;
while (i >=1 ) {
for( ; i>=1 ; i-- ){
< statement to create block > }
}
At the moment visually i don't get a pyramid but it might be because of other issues and not because of the while and then a for inside it approach .
My approach is correct and if now what would be the correct one to create a pyramid from smaller blocks ?
I'm reading the following section of the Oracle docs:
Guarded Blocks (The Java Tutorials > Essential Classes > Concurrency)
We have multiple threads. One of them sets the joy flag to true. The other waits until joy flag is set to true in order to print to the output stream. Rather than squander processer resources with a while loop, we choose to use the wait method of Object which suspends execution of thread. When the other thread throws an exception, we check the loop condition again.
Java Code:
public synchronized void guardedJoy() {
// This guard only loops once for each special event, which may not
// be the event we're waiting for.
while(!joy) {
try {
wait();
} catch (InterruptedException e) {}
}
System.out.println("Joy and efficiency have been achieved!");
} mh_sh_highlight_all('java');
The documentation goes on to state the following:
When a thread invokes d.wait, it must own the intrinsic lock for d - otherwise an error is thrown. Invoking wait inside a synchronized method is a simple way to acquire the intrinsic lock. When wait is invoked, the thread releases the lock and suspends execution.
The statement seems somewhat contradictory. When we invoke wait inside a synchronized method, is the intrinsic lock acquired or released? I thought it was the synchronized keyword itself that acquired the intrinsic lock.
When I run this (entering 12 for both questions) I get this error:
java.lang.ArrayIndexOutOfBoundsException: 12
at MathTablesTwo.main(MathTablesTwo.java:22)
Also, what would be the proper way to organize my code into blocks?
import java.util.Scanner;
public class MathTablesTwo {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
[code]....
This is my code inside the method:
@Post
public static String getDetails(Representation entity) throws Exception {
String customerId = getQuery().getValues("cus_id");
}
I use this code in Restlet Representation. I try to get the value from the Request API. But I am facing the problem as "Cannot make a static reference to the non-static method getQuery() from the type Resource".
From what i understand static methods should be called without creating an instance of the same class . If so why would they return an instance of the same class like in the following : public static Location locateLargest(double[][] a) , the Location class being the same class where the method is defined . I don't understand this , does it mean that every field and every method in the class must be static ? Meaning that you cannot have instances of the class because everything is static . Or it's just a mistake and the class Location cannot have a static method: public static Location locateLargest(double[][] a) ?
View Replies View RelatedI can't figure out what this error message "Cannot make a static reference to the non-static method getEndUserCharge(long, long, long, long) from the type UpdateUserWS" actually means.
The error is coming from:
public void updateDetailsPackage() {
some unrelated code
long zero=0;
double endUserCharge=0;
endUserCharge = UpdateUserWS.getEndUserCharge(long zero, long zero, long zero, long zero); <-------- error is here
[Code] ....
Alright, I have two classes, this one
public class Player {
private String player;
public String getPlayer() {
return player;
}
private int strength;
private int defense;
[Code] .....
However, it says that under Player.getPlayer() that it 'Cannot make a static reference to the non-static method'.
Why I can create an Instance of a class that contains non static variables within the static main method ?
This program runs fine
import java.util.*;
public class Test{
public int j;
public static void main(String[] args) {
Test test1=new Test();
System.out.println(test1.j);
[Code] .....
I am trying to call an actionListener which is shown below in my PSVM :
class testMenuItemListener implements ActionListener {
public void actionPerformed(ActionEvent arg0) {
getContentPane().removeAll();
createPanel();
getContentPane().add(panel1); //Adding to content pane, not to Frame
repaint();
printAll(getGraphics()); //Extort print all content
[Code] .....
I get the following error :
Frame.java:409: error: non-static variable this cannot be referenced from a static context
menuItem1.addActionListener(new testMenuItemListener());
I am trying to add a field (called special) to a hibernate table. I am copying existing code (related to the NAME field) so I don't have to figure this out from scratch. I am getting the error
"[ERROR] C:VOXvoxware-1.1.13voxwarevoxware-implsrcmainjavacomvoxwareimplflowVoxFlowConfiguration.java:[213,38] error: non-static variable special cannot be referenced from a static context".
Line 213 is in public void mergeFrom, the actual line is "special = VoxFlowConfiguration.special;" I don't understand why Java thinks special is a "non-static" variable but it doesn't have a problem with the other variables (such as name, orderShow)
package com.voxware.impl.flow;
import com.voxware.asset.LiabilityType;
import com.voxware.flow.FlowConfiguration;
import com.voxware.flow.OrderFlow;
import com.voxware.flow.Step;
import com.voxware.i18n.LanguageCodes;
import com.voxware.impl.i18n.UTF8Control;
import com.voxware.impl.persistence.BaseEntity;
import com.voxware.impl.portal.VoxPortal;
[code]....
I'm working on a banking program that is supposed to use 3 classes (Account-base class, CheckingAccount, and SavingsAccount) and several methods to display the banking information (ID, balance after a withdrawal and deposit, and the annual interest rate). This should be a pretty simple program, but I'm getting hung up on one portion of it. I'm getting some compiler errors, all of which deal with non-static variables being called from a static context (I'll also post these errors following the code). Up until the middle of last week, we just declared everything as static, but that's changed and I'm having trouble figuring out when to and when not to use static when declaring my methods, hence the compiler errors.
import java.util.Date;
public class Account {
private int id = 0;
private double balance = 0;
private double annualInterestRate = 0;
private Date dateCreated = new Date();
[Code] ....
Here are the compiler errors I am receiving:
Compilation completed. The following files were not compiled:
6 errors found:
File: C:UsersHiTechRedneckDesktopSummer II 2014Computer Programming PrincipleProgram 5CheckingAccount.java [line: 7]
Error: non-static method getId() cannot be referenced from a static context
[Code] .....
I am trying to call an actionListener which is shown below in my PSVM :
class testMenuItemListener implements ActionListener
{
public void actionPerformed(ActionEvent arg0) {
getContentPane().removeAll();
createPanel();
getContentPane().add(panel1); //Adding to content pane, not to Frame
repaint();
[Code] .....
I get the following error :
Frame.java:409: error: non-static variable this cannot be referenced from a static context
menuItem1.addActionListener(new testMenuItemListener());
I am writing the following program in Java SE 7. It throwing "Cannot make a static reference to the non-static type String" . However if I write parameterised String inside main method as java.lang.String[] args, it compiles fine.
class MainClass<String> {
<T> MainClass(T t) {
System.out.println(t.getClass().getName());
}
public static void main(String[] args) {
System.out.println("asdasd");
new MainClass<>("");
}
}
I mean following programs compile fine in Java SE 7 :
class MainClass<String> {
<T> MainClass(T t) {
System.out.println(t.getClass().getName());
}
public static void main(java.lang.String[] args) {
System.out.println("asdasd");
new MainClass<>("");
}
}
I've already seen large code blocks inside JSP's, in a way it is very hard to maintain the web application. Is there a way to avoid that?
View Replies View RelatedI have to divide a text file into blocks of 128 bits. I think i must use the ByteArrayInputStream and ByteArrayOutputStream classes. is there any website showing how to user these two ByteArrayInputStream and ByteArrayOutputStream classes in detail. or it would be much better if you could show me a portion of the code.
View Replies View RelatedI have a program where I have to open a file and then run a piece of code to do something with it. However since there are different files I want to run different pieces of code depending on the file. I have a JFileChooser setup and it works but I would like to have a something like an if else depending on the file extension.
View Replies View Relatedi am trying to make something, and i want to request input from user and it shoud look like this
1. xxx -> press 1 to choose this
2. xxx -> press 2 to choose this
So if they enter 3 or string or whatever i want to restart method and show again
1. xxx -> press 1 to choose this
2. xxx -> press 2 to choose this
So here is method that i am trying to restart
public static void askUser(){
System.out.println("xxx");
System.out.println("1. xxx");
System.out.println("2. xxx");
System.out.println("3. xxx");
[code]....
If i try to make it public void than it say can't call non-static methods inside static(main).if i try to put it into new class and then call it after i fail input it goes into infinite loop.
The error said : Non Static Variable TAShaReport Cannot referenced from a static context
I just want to put the output in the TextArea
Here is the code :
public static String DeduplicateFiles(String myFolderLocation) {
try {
HashSet<String> newset = new HashSet<>();
File folder = new File(myFolderLocation); //Directory where the files are located
File[] listOfFiles = folder.listFiles();
[Code] .....
I had a TestColor class which contained methods to change hue, saturation, brightness, red, green, blue of TestColor's instances but also had static methods which take in an additional parameter for an instance of TestColor and returns the affected instance of TestColor. Now instead of having one method for every possible color effect to be applied to an image, how can I have one method that takes in an Image parameter, a static or non-static method reference from TestColor parameter and lastly an intensnity value parameter. This is so that I can make an affectedImage object instance inside the method and a Graphics2D object for drawing to each pixel of the new image, now I have one for loop and one nested for loop for the x and y pixels of width and height of the old image and inside the nested for loop I'd create a TestColor by calling getRGB on the image's pixel. Then I would apply the static or non-static method reference somehow to change the color with the intensnity value and after applying it draw to the new Image with Graphics2D. How to would I parametize a method reference and be able to use it in such way?
View Replies View RelatedThis is a someway special question, because I am using jmonkeyEngine.
But the topic is simple:
I have 2 classes:
public class Spielbrett extends SimpleApplication {
public static void main(String[] args) {
Spielbrett app = new Spielbrett();
app.start();
}
@Override
public void simpleInitApp() {
[Code]...
as the main class and a second class for the chips:
public class Spielstein {
public Spatial stone;
public int player;
public int team;
private AssetManager assetManager = Spielstein.getAM(); //THIS IS THE PROBLEM
public Spielstein(int t_player, int t_team){
[Code]...
My problem is: I can't access getAM() from the first in the second class. If you know why I would be glad for an answer.
This is the overall code:
public class Bank {
/**
* Customer class.
*/
public class Customer {
private String firstName, lastName, street, city, state, zip;
[Code] .....
The error occurs when I attempt to create the new object Account within the main arguments here:
Account munozAccount = new Account(250, "Maria", "Munoz", "110 Glades Road", "Mytown", "FL", "33445");
I'm not sure how to access the generator method, so i'm completely stumped.
One of my friend asked me that which will load first static variable or static block ? My answer was to static variable.. So he gave me two program and said to differentiate between them
1st program
public class Test {
public static void main(String args[])
{
System.out.println(Test.x);
}
static {
System.out.println(Test.x);
[Code] ....
Output of this :
90
90
I tried to decompile the byte code and found it's same for both the above equation. How to differentiate between them. I am confused when the static variable will initialised.