*本文章仅供参考,习题的答案可以从www.mindviewinc.com处购买名为“The Thinking in Java Annotated Solution Guide”的电子文档中查找。
- 练习1:使用“简短的”和正常的打印语句来编写一个程序。
import static net.mindview.util.Print.*;
import java.util.Date;
public class TestSimplePrint {
public static void main(String[] args) {
print("Hello , it`s ");
print(new Date());
System.out.println("Hello , it`s " + new Date());
}
}
class Tank {
float val;
}
public class Alias1 {
public static void main(String[] args) {
Tank tank1 = new Tank();
Tank tank2 = new Tank();
tank1.val = 0.9f;
tank2.val = 4.5f;
System.out.println("1: tank1.val=" + tank1.val + ", tank2.val=" + tank2.val);
tank2 = tank1;
System.out.println("2: tank1.val=" + tank1.val + ", tank2.val=" + tank2.val);
tank1.val = 40.95f;
System.out.println("3: tank1.val=" + tank1.val + ", tank2.val=" + tank2.val);
}
}
class Letter {
float f;
}
public class Alias2 {
static void f(Letter letter) {
letter.f = 0.9f;
}
public static void main(String[] args) {
Letter letter = new Letter();
letter.f = 4.5f;
System.out.println("1: letter.f=" + letter.f);
f(letter);
System.out.println("2: letter.f=" + letter.f);
}
}
public class Velocity {
public static void main(String[] args) {
Random random = new Random(47);
double distance, time, velocity;
distance = random.nextDouble();
System.out.println("distance: " + String.format("%.2f", distance));
time = random.nextInt(10) + 1;
System.out.println("time: " + String.format("%.2f", time));
velocity = distance / time;
System.out.println("velocity: " + String.format("%.2f", velocity));
}
}
class Dog {
private String name;
private String says;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSays() {
return says;
}
public void setSays(String says) {
this.says = says;
}
}
public class Dogs {
public static void main(String[] args) {
Dog dog1 = new Dog();
Dog dog2 = new Dog();
dog1.setName("spot");
dog1.setSays("Ruff!");
dog2.setName("scruffy");
dog2.setSays("Wurf!");
System.out.println("Dog:" + dog1.getName() + ", sound:" + dog1.getSays());
System.out.println("Dog:" + dog2.getName() + ", sound:" + dog2.getSays());
}
}
class Dog {
private String name;
private String says;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSays() {
return says;
}
public void setSays(String says) {
this.says = says;
}
}
public class NewDogs {
public static void main(String[] args) {
Dog dog1 = new Dog();
Dog dog2 = new Dog();
Dog dog3 = new Dog();
dog1.setName("spot");
dog1.setSays("Ruff!");
dog2.setName("scruffy");
dog2.setSays("Wurf!");
dog3.setName("spot");
System.out.println("dog1 == dog3 : " + (dog1 == dog3));
System.out.println("dog1 (equals) dog3 : " + dog1.equals(dog3));
System.out.println("dog1.name == dog3.name : " + (dog1.getName() == dog3.getName()));
System.out.println("dog1.name (equals) dog3.name : " + dog1.getName().equals(dog3.getName()));
}
}
import java.util.Random;
public class Toss {
//下一个伪随机数,从这个随机数发生器的序列中均匀分布 boolean值。true和false以(大概)相等的概率产生。
public static void main(String[] args) {
Random random = new Random(47);
System.out.println(random.nextBoolean() ? "Head" : "TAIL");
}
}
public class LongToBinaryString {
public static void main(String[] args) {
Long longNum1 = 017L; //八进制
Long longNum2 = 0xFFL; //十六进制
System.out.println("017 = " + Long.toBinaryString(longNum1));
System.out.println("0xFF = " + Long.toBinaryString(longNum2));
}
}
public class MaxMin {
public static void main(String[] args) {
System.out.println("Float Min_value : " + Float.MIN_VALUE);
System.out.println("Float Max_value : " + Float.MAX_VALUE);
System.out.println("Double Min_value : " + Double.MIN_VALUE);
System.out.println("Double Max_value : " + Double.MAX_VALUE);
}
}
public class EucalyptusOperators {
public static void main(String[] args) {
final int constant1 = 0x2A;
final int constant2 = 0x15;
int i = 0;
System.out.println("~constant1 = " + ~constant1);
System.out.println("~constant2 = " + ~constant2);
System.out.println("constant1 & constant2 = " + Integer.toBinaryString(constant1 & constant2));
System.out.println("constant1 | constant2 = " + Integer.toBinaryString(constant1 | constant2));
System.out.println("constant1 ^ constant2 = " + Integer.toBinaryString(constant1 ^ constant2));
i = constant1;
i &= constant2;
System.out.println("i &= constant2 : " + Integer.toBinaryString(i));
i = constant1;
i |= constant2;
System.out.println("i |= constant2 : " + Integer.toBinaryString(i));
i = constant1;
i ^= constant2;
System.out.println("i ^= constant2 : " + Integer.toBinaryString(i));
}
}
public class RightShift {
public static void main(String[] args) {
final int constant1 = 0x2A;
final int constant2 = -0x2A;
int i;
i = constant1;
System.out.println("+0 >> : " + Integer.toBinaryString(i));
System.out.println("+1 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("+2 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("+3 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("+4 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("+5 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("+6 >> : " + Integer.toBinaryString(i >>= 1));
i = constant1;
System.out.println("+0 >>> : " + Integer.toBinaryString(i));
System.out.println("+1 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("+2 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("+3 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("+4 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("+5 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("+6 >>> : " + Integer.toBinaryString(i >>>= 1));
i = constant2;
System.out.println("-0 >> : " + Integer.toBinaryString(i));
System.out.println("-1 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("-2 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("-3 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("-4 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("-5 >> : " + Integer.toBinaryString(i >>= 1));
System.out.println("-6 >> : " + Integer.toBinaryString(i >>= 1));
i = constant2;
System.out.println("-0 >>> : " + Integer.toBinaryString(i));
System.out.println("-1 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("-2 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("-3 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("-4 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("-5 >>> : " + Integer.toBinaryString(i >>>= 1));
System.out.println("-6 >>> : " + Integer.toBinaryString(i >>>= 1));
}
}
public class LeftRightShift {
public static void main(String[] args) {
final int constant1 = 0xF;
int i = constant1;
System.out.println("left shift : " + Integer.toBinaryString(i <<= 1));
System.out.println("right shift : " + Integer.toBinaryString(i >>>= 1));
System.out.println("right shift : " + Integer.toBinaryString(i >>>= 1));
System.out.println("right shift : " + Integer.toBinaryString(i >>>= 1));
System.out.println("right shift : " + Integer.toBinaryString(i >>>= 1));
System.out.println("right shift : " + Integer.toBinaryString(i >>>= 1));
}
}
public class CharBinary {
public String toBinary(char c) {
String cString = Integer.toBinaryString(c);
return cString;
}
public static void main(String[] args) {
CharBinary charBinary = new CharBinary();
System.out.println("Q : " + charBinary.toBinary('Q'));
System.out.println("q : " + charBinary.toBinary('q'));
System.out.println("~ : " + charBinary.toBinary('~'));
System.out.println("1 : " + charBinary.toBinary('1'));
}
}
public class CompareString {
public static void Compare(String str1 , String str2) {
System.out.println(str1 + " & " + str2);
System.out.println("str1 == str2 : " + (str1 == str2));
System.out.println("str1 != str2 : " + (str1 != str2));
System.out.println("str1.equals(str2) : " + (str1.equals(str2)));
}
public static void main(String[] args) {
Compare("Hello", "Hello");
String string = new String("Hello");
Compare("Hello", string);
Compare("Hello", "HELLO");
}
}