TJ练习

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

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");
    }
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值