1.创建一个包含一个float域的类,并用这个类来展示方法调用时的别名机制。
class TestMethod{
float f;
}
/**
* TJpritice
*/
public class TJpritice {
public static void changeValue(TestMethod tm){
tm.f=2.1f;
}
public static void main(String[] args) {
TestMethod m=new TestMethod();
m.f=2.2f;
System.out.println("1. "+m.f);
changeValue(m);
System.out.println(("2. "+m.f));
}
2.创建一个名为Dog的类,它包含两个String域:name和says。在main()方法中,
创建两个Dog对象,一个名为spot(它的叫声为“Ruff!”),另一个名为scruffy(它的叫声为“Wurf!”), 然后显示它们的名字和叫声。
class Dog{
String name;
String says;
}
/**
* TJpritice
*/
public class TJpritice {
public static void main(String[] args) {
Dog dog1=new Dog();
Dog dog2=new Dog();
dog1.name="sport";
dog2.name="scruffy";
dog1.says="Ruff!";
dog2.says="Wurf";
System.out.println("dog1.name: "+dog1.name+" "+"dog1.says: "+dog1.says);
System.out.println("dog2.name: "+dog2.name+" "+"dog2.says: "+dog2.says);
}
}
3.在上一个练习的基础上,创建一个新的Dog索引,并对其赋值为spot对象,测试用==和equals()方法来比较所有的结果
class Dog{
String name;
String says;
}
/**
* TJpritice
*/
public class TJpritice {
public static void compareDog(Dog dog1,Dog dog2){
System.out.println(dog1==dog2);
System.out.println(dog1.equals(dog2));
System.out.println(dog1.name==dog2.name);
System.out.println(dog1.name.equals(dog2.name));
System.out.println(dog1.says==dog2.says);
System.out.println(dog1.says.equals(dog2.says));
}
public static void main(String[] args) {
Dog dog1=new Dog();
dog1.name="sport";
dog1.says="Ruff!";
Dog dog2=new Dog();
dog2.name="scruffy";
dog2.says="Wurf";
Dog dog3=dog1;
System.out.println("dog1Vsdog2");
compareDog(dog1, dog2);
System.out.println("dou2Vsdog3");
compareDog(dog2, dog3);
System.out.println("dog1Vsdog3");
compareDog(dog1, dog3);
}
}
3.模拟抛硬币
public class flag {
public static void main(String[] args) {
Random random=new Random();
boolean flag=random.nextBoolean();
System.out.println(flag?"正":"反");
}
}
4.展示用十六进制和八进制计数法来操作long值,用Long.toBinaryString()来显示结果。
public class TJ {
public static void main(String[] args) {
long l1=0x2f;
System.out.println("l1: "+Long.toBinaryString(l1));
long l2=0x2F;
System.out.println("l2: "+Long.toBinaryString(l2));
long l3=10;
System.out.println("l3: "+Long.toBinaryString(l3));
}
}
5.编写一个具有两个常量值的程序,一个具有交替的二进制位1和0,其中最低有效位为0,另一个也具有交替的二进制位1和0,但是其最低有效位为1(提示:使用十六进制常量来表示是最简单的方法)。取这两个值,用按位操作符以所有可能的方式结合运算它们,然后用Integer.toBinaryString()显示。
public class TJ {
public static void main(String[] args) {
int i1=0xaaaaaaaa;
int i2=0x55555555;
System.out.println("i1= "+Integer.toBinaryString(i1));
System.out.println("i2= "+Integer.toBinaryString(i2));
System.out.println("~i1: "+Integer.toBinaryString(~i1));
System.out.println("~i2: "+Integer.toBinaryString(~i2));
System.out.println("i1&i2: "+Integer.toBinaryString(i1&i2));
System.out.println("i1|i2: "+Integer.toBinaryString(i1|i2));
System.out.println("i1^i2: "+Integer.toBinaryString(i1^i2));
System.out.println("i1&i1: "+Integer.toBinaryString(i1&i1));
System.out.println("i1|i1: "+Integer.toBinaryString(i1|i1));
System.out.println("i1^i1: "+Integer.toBinaryString(i1^i1));
System.out.println("i2&i2: "+Integer.toBinaryString(i2&i2));
System.out.println("i2^i2: "+Integer.toBinaryString(i2^i2));
System.out.println("i2|i2 "+Integer.toBinaryString(i2|i2));
}
}
6.以一个最高有效位为1的二进制数字开始(提示:使用十六进制常量),用有符号右移操作符对其进行右移,直至所有的二进制位都被移出为止,每移一位都要使用Integer.toBinaryString()显示结果。
public class TJ {
public static void main(String[] args) {
int num=0x80000000;
System.out.println("num:"+Integer.toBinaryString(num));
for(int i=1;i<32;i++){
System.out.println(Integer.toBinaryString(num>>i));
}
}
}
7.以一个所有位都为1的二进制数字开始,先左移它,然后用无符号右移操作符对其进行右移,直至所有的二进制位都被移出为止,每移一位都要使用Integer.toBinaryString()显示结果。
public class TJ {
public static void main(String[] args) {
int num=-1;
System.out.println("num= " +Integer.toBinaryString(num));
System.out.println("num<<1 "+Integer.toBinaryString(num<<1));
num=num<<1;
System.out.println("num= " +Integer.toBinaryString(num));
for(int i=1;i<32;i++){
System.out.println("num>>i "+Integer.toBinaryString(num>>>i));
}
}
}

8.编写一个方法,它以二进制形式显示char类型的值。使用多个不同的字符来展示它。
public class TJ {
public static void charToBinary(char c){
System.out.println(c+": "+Integer.toBinaryString(c));
}
public static void main(String[] args) {
charToBinary('A');
charToBinary('b');
charToBinary('!');
charToBinary('5');
}
}
9.编写一个接收两个字符串参数的方法,用各种布尔值的比较关系来比较这两个字符串,然后把结果打印出来。
public class Comparestring {
public static void compareString(String s1,String s2){
System.out.println(s1+"=="+s2+": "+(s1==s2));
System.out.println(s1+"!="+s2+": "+(s1!=s2));
System.out.println(s1+".equal("+ s2 +")"+": "+s1.equals(s2));
}
public static void main(String[] args) {
// String s1="hello";
// String s2="hi";
// st
// compareString(s1, s2);
compareString("hello", "hi");
compareString("hello", "hello");
compareString("hello", "n");
}
}

这篇博客涵盖了多个Java编程基础练习,包括创建具有float域的类以理解方法别名,实现Dog类并创建对象展示属性,使用==和equals()比较对象,模拟抛硬币,进行十六进制、八进制和二进制的数值操作,以及编写方法展示不同字符的二进制表示和比较字符串。这些练习旨在加深对Java基础概念和运算的理解。
444





