Fundamental classes in the java.lang package
Write code using the following methods of the java.lang.Math class: abs() , ceil() ,
floor() , max() , min() , random() , round() , sin() ,
cos() , tan() , sqrt() . |
See the JavaDocs for more detail.
abs()
- Returns the absolute value of the argument. Overloaded for ints
, longs
,
floats
and doubles
.
ceil(double)
- Returns the smallest (closest to negative infinity) double
value that is not
less than the argument and is equal to a mathematical integer.
floor(double)
- Returns the largest (closest to positive infinity) double
value that is not
greater than the argument and is equal to a mathematical integer.
max(value1,value2)
- Returns the greater of two values.
min(value1,value2)
- Returns the smaller of two values.
random()
- Returns a random number between 0.0
and 1.0
.
round(double)
- Returns the closest long
to the argument.
sin(double)
- Returns the trigonometric sine of an angle. The angle is in radians.
cos(double)
- Returns the trigonometric cosine of an angle. The angle is in radians.
tan(double)
- Returns the trigonometric tangent of an angle. The angle is in radians.
sqrt(double)
- Returns the square root of a double value.
Describe the significance of the immutability of String objects. |
String objects cannot be changed. They are assigned a sequence of characters when they are constructed. Look at the following code:
String message = "Good"; message= message + " morning";
When the first line executes, a string object containing "Good" is assigned to message.
A new String object is constructed, unless the literal "Good" was used somewhere else, in which
case the existing String is re-used.
A consequence of this is the behaviour of the ==
operator which was describe under Language Fundamentals above, here is that information again:
[Note that if you construct two Strings with the same String literal, without using
the new keyword
, e.g.
String a = "Hello" String b = "Hello"
, then Java creates only one String object, so a==b
evaluates as true
.]
On the second line, " morning" is appended. But the String object containing "Good" cannot be changed, so a new String, containing "Good morning" is created and assigned to message.
There are two fundamental types of variables in Java: primitives and objects. Sometimes a method or a constructor takes objects,
but what
what you have is a primitive. To cope with this situation, Java has a set of 'wrapper' classes which exist to hold the value
of a primitive.
For example, you might want to use a float
as a key in a Map e.g. keying some business objects representing a loan by their
respective interest rates. Using the Float class will allow you to do this. You would create a Float object for each value,
and place that
object into the Map.
Primitive Type | Corresponding Wrapper class |
boolean | Boolean |
byte | Byte |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
The names are entirely obvious, except for the two that have been highlighted. Take a look at these classes in the JavaDocs. The pattern tends to be pretty similar: For a primitive type x, there is one constructor taking x and another that takes a String, which is parsed to get the value. There is a static parseX() method, which parses a string and returns the primitive type x. An xValue() method returns the underlying primitive value held by wrapped object. The toString() method from Object is overridden appropriately.
toHexString()
is a static method on Integer and Long which creates a hexadecimal string representation of the
argument as an unsigned integer in base 16.
©1999, 2000, 2002 Dylan Walsh.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with the Invariant Sections being the disclaimer,
no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".