0

In java it is said that "Remotely loaded code cannot access arbitrary addresses in memory." So what are these arbitrary addresses?

2
  • I think here arbitrary means any random address. So arbitrary in your sentence is not a technical word with any specific meaning but just an english language word with generic meaning. Commented Apr 7, 2014 at 5:56
  • @sakura - So then can u describe more on 'random addresses'? Commented Apr 7, 2014 at 6:51

1 Answer 1

1

These "arbitrary addresses" refer to the memory of the local system. When you have a native application (compiled as an EXE file) that is downloaded and exectued on one PC, then this executable can do anything - particularly, it can read (and at least theoretically write) the whole memory of the system it is running on. In contrast to that, a Java application is restricted to the Java Virtual Machine (JVM). It can not access memory on the system it is running on, except for the memory that is explicitly provided for by the JVM. This is a security layer that is imposed by Java and the JVM itself, and not by other mechanisms like SecurityManager.

Sign up to request clarification or add additional context in comments.

2 Comments

Can u please express more on "arbitrary addresses"? Are they the temporary addresses created in the RAM(Memory) while some programs run? Give some examples for it. And do u mean that the java exe programs cannot anyway access the memory or the hard disk addresses? Anyhow in my case the 'remotely loaded code' refers to java applets.
The "arbitrary addresses" are places in the main memory. An EXE file can access memory that is actually intended for another program. The hard disk is only remotely related to that. Java Applets can access the hard disk, but there are some constraints (the Applet has to be signed etc).

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.