thinking in java test
歪歪许
这个作者很懒,什么都没留下…
展开
-
thingking in java test2.11练习(6)
题目:编写一个程序,让它含有本章所定义的storage()方法的代码段,并调用之。含有storage()方法的代码段在P27面。 int storage(String s) { return s.lenght()*2; } 该方法参数类型是string,返回类型是int 程序非常简单,代码如下:public class test2_6 { public static void原创 2016-07-24 10:16:05 · 449 阅读 · 0 评论 -
thinking in java test3.17练习(14)
题目:编写一个接受两个字符串参数的方法,用各种布尔值的比较关系来比较这两个字符串,然后把结果打印出来。做==和!=比较的同时,用equals()作测试。在main()里用几个不同的字符串对象调用这个方法。在3.17小节里,在代码里展示了各种基本类型支持的运算,不支持的都注释掉了。我们按照书上的形式来测试一下boolean能用哪些运算。 代码如下:public class Test3_17 {原创 2016-08-07 09:54:13 · 631 阅读 · 0 评论 -
thinking in java test5.3练习(3)(4)(5)(6)(7)
练习(3):创建一个带默认构造器(即无参构造器)的类,在构造器中打印一条消息。为这个类创建一个对象。 代码如下:public class test5_3_3 { public static void main(String[] args){ wucan wucan = new wucan(); }}class wucan{ public wucan(){原创 2016-08-30 10:38:30 · 1038 阅读 · 0 评论 -
thinking in java test chapter8多态(1)~(12)
练习(1):创建一个Cycle类,它具有子类Unicycle,Bycycle,Tricycle.演示每一个类型的实例都可以经由ride()方法向上转型为Cycle. 向上转型就是允许将多种从同一基类的导出类看成同一类型。 多态方法调用就是允许一种类型表现出与其他相似类型之间的区别,只要他们是从同一基类导出而来的。这种区别由各个导出类型方法的具体不同实现而表现出来的,虽然这些方法都是由基类调用原创 2016-09-10 16:20:46 · 4438 阅读 · 1 评论 -
thinking in java test chapter8(13)~(17)
练习(13):在ReferenceCounting.java中添加一个finalize()方法,用来检校终止条件。 finalize()方法是垃圾回收器在清理对象是会优先调用的方法,用以清理一些垃圾回收器不知道如何释放的特殊内存。 此处shared就是Composing中一个难以判断是否回收的特殊内存。public class Test13 { public static void ma原创 2016-09-11 13:14:02 · 1287 阅读 · 0 评论 -
thinking in java test4.3练习(1)(2)(3)(4)(5)用三元操作符和按位操作来显示二进制
题目(1):写一个程序,打印从1到100的值。 代码如下:public class Test4_3_1 { public static void main(String[] args){ for (int i = 0; i 100; i++) { System.out.println(i); } }}这是简单的原创 2016-08-09 20:47:03 · 2048 阅读 · 3 评论 -
thinking in java test chapter9接口(1)~(10)
抽象方法是没有方法体的方法,java提供的一种机制,仅有声明而没有方法体。语法:abstract void f(); 包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的。 抽象类无法创建对象,创建抽象类的对象是不安全的。 从抽象类继承产生一个新类,必须为基类中所有抽象方法提供方法定义。如果不这样做,那么意味着新类中还有至少一个抽象方法,根据抽象类的定义,这个新原创 2016-09-12 15:15:38 · 1406 阅读 · 0 评论 -
thinking in java test练习(8)(9)this关键字
练习(8):编写具有两个方法的类,在第一个方法内调用第二个方法两次:第一次调用时不使用this关键字,第二次使用时使用this关键字——这里只是为了验证它是起作用的,你不应该在实践中使用这种方法。 代码如下:public class test5_4_8 { public static void main(String[] args){ testThis tt = new t原创 2016-09-01 09:45:38 · 554 阅读 · 0 评论 -
thinking in java test4.5练习(6)(7)
题目:修改前两个程序中的两个test()方法,让它们接受两个额外的参数begin和end,这样在测试testval时将判断它是否在begin和end(包括begin和end)的范围内。代码如下:public class Test4_6 { private static final int OUT_OF_BOUNDARY = -10; public static void main(S原创 2016-08-10 20:09:02 · 548 阅读 · 0 评论 -
thinking in java test chapter9接口(11)~(19)适配器模式,工厂模式
练习(11):创建一个类,它有一个方法用于接受一个String类型的参数,生成的结果是将该参数中每一个字符进行互换。对该类进行适配,使得它可以用于interfaceprocessor.Apply.process()。 适配器设计模式,就是接受你所拥有的接口,并产生你所需要的接口。 这里我们可以写一个adapter类,它继承了interfaceprocessor里的processor接口,并且有一原创 2016-09-13 12:31:16 · 2234 阅读 · 1 评论 -
thinking in java test5.5练习(10)(11)(12)finalize()方法
练习(10):编写具有finalize()方法的类,并在方法中打印消息。在main()中为该类创建一个对象。试解释这个程序的行为。 我们知道java有垃圾回收机制,垃圾回收机制会在必要的时刻回收内存。但是要注意的是,垃圾回收器只知道释放那些由new分配的内存。程序有时候会存在某些特殊的内存,不是由new获得的,此时垃圾回收器就无法对其清理。这时候finalize()方法就起作用了。 如果一个类中原创 2016-09-02 10:13:35 · 1629 阅读 · 4 评论 -
thinking in java test4.8练习(8)(9)(10)吸血鬼数字
练习(8)题目:写一个switch开关语句,为每一个case打印一个消息。然后把这个switch放进for循环来测试每一个case。先让每一个case后面都有break,测试一下会怎样,然后把break删了,看看会怎样。 这个题目很简单,代码如下:public static void main(String[] args){ for (int i = 0; i < 5; i++)原创 2016-08-11 22:13:48 · 612 阅读 · 0 评论 -
thinking in java test练习(13)(14)
练习(13):验证前面段落中的语句。public class test5_7_13 { public static void main(String[] args){ System.out.println("inside main()");// Cups.cup1.f(99); } static Cups cups1 = new Cups();原创 2016-09-03 10:45:22 · 521 阅读 · 0 评论 -
thinking in java test chapter10(1)~(21)
练习(1):编写一个名为Outer的类,它包含一个名为Inner的类。在Outer中添加一个方法,它返回一个Inner类型的对象。在main()中,创建并初始化一个指向某个Inner对象的引用。public class Test1 { class Inner{} public Inner getInner(){ return new Inner();原创 2016-09-14 21:24:31 · 2022 阅读 · 1 评论 -
thinking in java test5.8练习(16)(17)(18)
练习(16):创建一个String对象数据,并为每一个元素都复制一个String。用for循环来打印该数组。public static void main(String[] args){ String[] str = new String[5]; str[0] = "杭州"; str[1] = "举办"; str[2] = "G20";原创 2016-09-04 10:34:59 · 489 阅读 · 0 评论 -
thingking in java test5.9练习(19)(20)(21)(22)
练习(19):写一个类,它接受一个可变参数的String数组。验证你可以向该方法传递一个用逗号分割的String列表,或是一个String[].public class test5_8_19 { public static void main(String[] args){ String[] strs = new String[]{"1","2","3","4","5"};原创 2016-09-05 11:29:58 · 825 阅读 · 0 评论 -
thinking in java test chapter6练习(1)~(9)以及翻译问题
练习(1):在某个包中创建一个类,在这个类所处的包外部创建该类的实例。 代码如下:public class testTest6_1 { public static void main(String[] args){ test6_1 example = new test6_1("num1"); System.out.println(example.getN原创 2016-09-07 15:04:13 · 2147 阅读 · 0 评论 -
thingKing in Java test3.8练习(7)扔硬币
题目:编写一个程序,模拟扔硬币的结果。 代码如下public class test3_7 { public static void main(String[] args){ int front = 0;//记录出现正面的次数 int back = 0;//记录出现反面的次数 for (int i = 0; i < 1000000; i++)原创 2016-08-03 09:02:05 · 294 阅读 · 0 评论 -
thinking in java test3.11练习(11)(12)(13)
练习(11)题目:以一个最高有效位为1的二进制数字开始(提示:使用十六进制常量),用有符号右移操作符对其进行右移,直至所有的二进制位都被移除为止,每移一位都要使用Integer.toBinaryString()显示结果。我们知道在Java中,int类型的数是32位(这里不选用其它类型的数是因为它们在进行移位操作时会被转换成int类型,所以为了方便起见直接使用int),最高位为1,按照十六机制计数,最原创 2016-08-06 09:37:55 · 783 阅读 · 0 评论 -
thingking in java test2.11练习(8)
题目:编写一个程序,展示无论你创建了某个特定类的多少个对象,这个类中的某个特定的static域只有一个实例。题目考察我们对static的理解和应用。 代码如下:public class test2_8 { public static void main(String[] args) { num n1 = new num(); num n2 = new num原创 2016-07-25 09:53:35 · 356 阅读 · 0 评论 -
thinking in java test2.11练习(9)之java装箱拆箱
题目:编写一个程序,展示自动包装功能对所有的基本类型和包装类型都起作用。基本类型指九大基本数据类型boolean,char,byte,short,int,long,float,double,void 与之对应的包装器类型分别为 Boolean,Character,Byte,Short,Integer,Long,Float,Double,Void我们知道,基本数据类型是需要特殊对待的类型,声明一个原创 2016-07-27 09:23:19 · 775 阅读 · 0 评论 -
thingking in java test2.11练习(10)以及IDE中args的提前输入
题目:编写一个程序,打印出从命令行获得的三个参数。为此,需要确定命令行数组中String的下标。在练习(1)中我们提到过,main的参数args是用来存储命令行参数的,args是一个String数组,所以我们用数组下标从args里面就可以获取到命令行参数。 源代码如下:public class test2_10 { public static void main(String[] args原创 2016-07-28 09:11:20 · 1134 阅读 · 0 评论 -
thingking in java test2.11(11)
题目:将AllTheColorsOfTheRainbow这个示例改写成一个程序,然后编译,运行。示例在P36.public class AllTheColorsOfTheRainbow { int anIntegerRepresentingColors; void changeTheHueOfTheColor(int newHue) {}}好吧,这个就是这样,没什么运行结果。原创 2016-07-29 08:55:19 · 343 阅读 · 0 评论 -
thinking in java test练习(12)(13)javadoc的生成
练习(11)找出HelloDate.java的第二个版本,也就是那个简单注释文档的示例。对该文件执行javadoc,然后通过web浏览器观看运行结果。HelloDate.java的第二个版本就是P35面有注释那个版本 代码:import java.util.Date;/** * Created by lenovo on 2016/7/30. * The first Thinking in ja原创 2016-07-30 09:14:39 · 475 阅读 · 0 评论 -
thinking in Java test3.1练习(1)print,println,printf
题目:使用“简短的”和正常的打印语句来编写一个程序这里使用“简短的”打印语句需要导thinking in Java作者个人写的包。笔者没有找到资源,就忽略这一步。public class test3_1 { public static void main(String[] args){ System.out.print("输出内容"); System.out.原创 2016-07-31 09:02:35 · 387 阅读 · 0 评论 -
thingking in java test3.8练习(8)(9)
题目:展示用十六进制和八进制计数法来操作Long值,用long.toBinaryString()来显示结果。Java中十六进制八进制的表示方法同c语言相同,十六进制以0x开头,八进制以0开头,注意这里都是——零。public class test3_8 { public static void main(String[] args){ long sixteen1 = 0x4f原创 2016-08-04 09:31:49 · 569 阅读 · 0 评论 -
thingking in java 2.11练习(2)(先有static还是先有main?)
题目:参照本章的HelloDate.java这个例子,创建一个“hello,word”程序,该程序只要输出这句话即可。你所编写的类里只需一个方法(即main方法,在程序启动时被执行)。记住要把它设置为static形式,并指定参数列表即使根本不会用到这个列表。用javac进行编译,再用java运行它。如果你使用的是不同于jdk的开发环境,请了解如何在你的环境中进行编译和运行。这道题对于稍原创 2016-07-21 08:31:13 · 438 阅读 · 0 评论 -
thinking in java test3.4练习(2)(3)别名机制
题目:创建一个包含float域的类,并用这个类来展示别名机制。 别名机制是指多个引用指向同一个对象。 我们知道Java里操作对象一般是通过引用来完成的,而引用的指一般是所指向的对象的内存地址。比如有两个引用a1,a2,分别指向两个对象。此时进行a1 = a2操作,这个操作的结果是把a2的值赋给了a1,也就是a1之后也指向了a2。a1之前引用的对象将会在某个时刻被垃圾回收器自动清理。 这就是别名对原创 2016-08-01 08:53:38 · 487 阅读 · 0 评论 -
thinking in java test3.10练习(10)按位运算
题目:编写一个具有两个常量值的程序,一个具有交替的二进制位1和0,其中最低有效位为0,另一个也具有交替的二进制位1和0,但是其最低有效位为1(提示:使用十六进制常量来表示是最简单的方法)。取这两个个值,按位操作符以所有可能的方式结合运算它们,然后用Integer.toBinaryString()显示。按题目要求,第一个数的二进制为这样:…01010101010,最后一位必须是0,第二个数的二进制是这原创 2016-08-05 09:31:13 · 779 阅读 · 0 评论 -
thinking in java test5.1练习(1)(2)
练习(1)题目:创建一个类,它包含一个未初始化的String引用。验证该引用被Java初始化成了null。 代码如下:public class Test5_1_1 { public static void main(String[] args){ Test t = new Test(); System.out.println(t.str); }}原创 2016-08-16 20:57:42 · 717 阅读 · 0 评论 -
thingking in java2.11练习(3)
题目:找出含有ATypeName的代码段,将起改写成完整的程序,然后编译,运行。含有ATypeName的代码段在书本25面,是以下两句代码: class ATypeName {/* Class body goes here */} ATypeName a = new ATypeName();根据昨天所学,一个java程序想要运行,必须有一个main。 代码如下:public class ATy原创 2016-07-22 09:24:16 · 1087 阅读 · 0 评论 -
thingking in java 2.11练习(1)
题目:创建一个类,它包含一个int域和一个char域,它们都没有被初始化,将它们的值打印出来,以验证java执行了默认初始化。 这个题目的第一个难点,就是对int域和char域的理解,开始还以为自己前面看书不仔细,漏了什么概念,但讲作用域那节翻烂了也没看出跟这个有什么关系的。 问题解决不了找度娘,万能的度娘告诉我们,这是翻译的问题,域对应英文filed ,也可译原创 2016-07-20 10:29:20 · 520 阅读 · 0 评论 -
thingking in java2.11练习(4)(5)
题目:将DataOnly代码段改写成一个程序,然后编译运行。DataOnly代码段在P26,代码如下: class DataOnly { int i; double d; boolean b; } DataOnly dataOnly = new DataOnly(); dataOnly.i = 47; dataOnly原创 2016-07-22 10:04:30 · 498 阅读 · 0 评论 -
thingking in Java test3.7练习(5)(6)
题目(5):创建一个名为dog的类,它包含两个string域:name和says。在main()方法中,创建两个Dogs对象,一个名为spot(它的叫声为”Ruff!”),另一个名为scruffy(它的叫声为”Wuff!”)。然后显示它们的名字和叫声。 代码如下:public class Dog { public String name; public String says;原创 2016-08-02 09:08:11 · 919 阅读 · 0 评论 -
thinking in java test 2.11练习(7)以及修饰符能区分同名方法吗?
题目:将Incrementable的代码段改写成一个完整的可运行程序。代码段在P29到P30 class StaticTest { static int i = 47; } class Incrementable { static void increment() { StaticTest.i++ } } public class test42 {原创 2016-07-25 09:42:12 · 518 阅读 · 0 评论 -
thinking in java test chapter7练习(1)~(10)组合与继承
练习(1):创建一个简单的类。在第二个类中,将一个引用定义为第一个类的对象。运用惰性初始化来实例化这个对象。 编译器不会给每个引用默认创建对象,因为这样会造成资源的浪费。想要初始化引用,必须按这种格式:类型 类名 = new 类型; 初始化引用可以在一下4种位置上进行: 1,在定义对象的地方。就是我们在新创建一个引用时直接在后面创建对象。我们知道编译器加载java文件时先加载各种静态成员,再原创 2016-09-08 13:12:17 · 1313 阅读 · 0 评论