Java
hi__study
这个作者很懒,什么都没留下…
展开
-
String中indexOf()方法的解析
在使用String中indexOf()方法的时候,我们知道如果要是传入一个子字符串作为参数的话类似"from",则这个方法就返回此"from"子字符串第一次在此字符串中出现的位置,即返回此字符串中第一个"from"子字符串中字符"f"的位置。 对于此方法忽然有点兴趣,因此我决定查看一下我当前使用的JDK1.7中的源码,其核心代码如下: static int indexOf(char原创 2016-06-24 09:20:27 · 9071 阅读 · 0 评论 -
Java编程思想第十一章"持有对象"的11.5~11.9小节的笔记和练习题
11.5 List 有两种类型的List: ①、ArrayList:擅长随机访问元素,但在List中间插入和移除元素较慢。 ②、LinkedList:在List中间进行插入和删除操作的代价较低,优化的顺序访问,随机访问较慢,特性集比ArrayList大。 书中的代码就不贴在这里了,然后书中介绍了常用的API,需要的话可以自行去查帮助文档。 有几个方法...原创 2019-05-19 20:33:13 · 429 阅读 · 0 评论 -
Java编程思想第十章"内部类"的10.7至10.8小节的笔记和练习题
最近,我的工作很忙,而且10.8小节内容很多、很复杂,即使断断续续的抽时间看了三遍,依然感觉写不好这个小节的笔记。因此,此文中包含10.8小节的部分就当作摘抄,以备后续经常翻看。10.7 嵌套类 将内部类声明为static,它通常被称为嵌套类。普通的内部类对象隐式地保存了一个指向创建它的外围类对象的引用,而嵌套类则不是这样: ①、要创建嵌套类的对象,不需要外围类的对象。...原创 2019-04-23 23:54:19 · 505 阅读 · 0 评论 -
Java编程思想第十章"内部类"的10.3至10.6小节的练习题
10.3 使用.this与.new 在内部类中如果需要生成对外部类对象的引用,可以使用外部类的名字后面紧跟.this。 练习题4:在Sequence.SequenceSelector类中增加一个方法,它可以生成对外部类Sequence的引用。 代码如下:public Sequence getSequence() {return Sequence.this;}...原创 2019-04-16 23:32:09 · 644 阅读 · 0 评论 -
Java编程思想第十章"内部类"的10.1和10.2小节的练习题
10.1小节只是讲如何创建一个类的内部类,因而只记录一下练习题。练习题1:编写一个名为Outer的类,它包含一个名为Inner的类。在Outer中添加一个方法,它返回一个Inner类型的对象。在main()中,创建并初始化一个指向某个Inner对象的引用。代码实现如下:public class Outer { Outer() { System.out.prin...原创 2019-04-11 22:42:38 · 940 阅读 · 0 评论 -
Java编程思想第九章"抽象类和抽象方法"的部分练习题
练习3:创建一个基类,让它包含抽象方法print(),并在导出类中覆盖该方法。覆盖后的方法版本可以打印导出类中定义的某个整型变量的值。在定义该变量之处,赋予它非零值。在基类的构造器中调用这个方法。现在,在main()方法中,创建一个导出类对象,然后调用它的print()方法。请解释发生的情形。代码如下:public class TestAbstract { public stat...原创 2019-04-02 15:18:52 · 849 阅读 · 0 评论 -
Java编程思想第九章"接口与工厂"的部分练习题
因为练习题18和练习题19差不多,所以这里我决定实现练习题19。练习题19:使用工厂方法来创建一个框架,它可以执行抛硬币和掷骰子功能。实现如下:游戏抽象接口及实现类如下:public interface Game { void play();}public class TossACoin implements Game { private Random r...原创 2019-04-10 22:21:57 · 336 阅读 · 0 评论 -
Java编程思想第九章"完全解耦"的练习题
练习11:创建一个类,它有一个方法用于接受一个String类型的参数,生成的结果是将该参数中每一对字符进行互换。对该类进行适配,使得它可以用于interface processor.Apply.process()。首先,我理解的"每一对字符进行互换",类似于"abcd":将"ab"互换为"ba","cd"互换为"dc",则结果为"badc"。然后,代码实现如下:字符互换的处理类:cla...原创 2019-04-05 21:57:30 · 646 阅读 · 5 评论 -
Java中的条件编译
我最近在看《Java编程思想》,看到第六章的6.1.4小节【用import改变行为】时稍微有点迷惑。唉,英文不好看中文版就是这样,翻译后的有些文字很难看明白(╯﹏╰)。书中提到"通过修改被导入的package"来实现条件编译,于是,我就试了试,大概是下面这样:首先,在debug包和realease包下分别有一个Cookie类,如下:debug包内的Cookie:package com....原创 2019-03-27 09:58:42 · 480 阅读 · 0 评论 -
Java类中成员初始化顺序
先说结论,实例化一个类时,先初始化静态成员变量,再初始化成员变量,最后初始化构造器。其中,静态成员变量仅初始化一次,而成员变量的初始化顺序与类中定义的顺序有关(定义靠前的先初始化)。代码如下:class Dog { Eye twoEyes = new Eye(); public static Nose nose = new Nose(); Dog() { ...原创 2019-03-25 15:58:45 · 259 阅读 · 0 评论 -
Java编程思想第四章练习题10:找出4位数的所有吸血鬼数
习题:吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得来,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下面的数字都是"吸血鬼"数字:1395 = 15 * 931260 = 21 * 601530 = 30 * 51写一个程序,找出4位数的所有吸血鬼数字。方法1:从1000到9999的数字中,将...原创 2019-03-25 15:01:04 · 390 阅读 · 0 评论 -
Java编程思想第四章练习题9:斐波那契数列
习题:一个斐波那契数列是由数字1、1、2、3、5、8、13、21、34等等组成的,从第3个数字起每个数字都是前两个数字的和,创建一个方法,接受一个整数参数,并显示从第1个元素开始总共由该参数指定的个数所构成的所有斐波那契数字。解答: /** * 斐波那契数列的前n项 * * @param n */ public void fibona...原创 2019-03-25 09:08:18 · 337 阅读 · 0 评论 -
Java——int型移位操作时,只有右操作数的低5位才有用
本文转载自:https://blog.csdn.net/lim_dev/article/details/68953269 在读Thinking in Java 4th的过程中,遇到一个令人疑惑的地方。 If you shift a char, byte, or short, it ...转载 2019-03-21 10:45:03 · 490 阅读 · 2 评论 -
Java逻辑运算符的"短路"现象
最近再次阅读《Java编程思想》此书,发现逻辑运算符这里讲解"短路"现象的示例很好,特此记录下来,以供之后经常阅读。代码如下:public class TestJava { public static void main(String[] args) { System.out.println("----------&&的短路测试----------"...原创 2019-03-20 10:13:59 · 1635 阅读 · 0 评论 -
Java编程思想第十一章"持有对象"的11.1~11.4小节的笔记和练习题
11.1 泛型和类型安全的容器 在JavaSE5之前的容器,编译器允许我们向容器中放入不正确的类型。诸如,有一个Apple对象的容器,它是一个ArrayList,而我们也可以往它里面放入一个Orange对象(这里的Apple和Orange除了继承Object之外,没有其他共性)。因为ArrayList保存的是Object,所以添加Apple、Orange在编译期和运行期都没...原创 2019-05-10 11:55:21 · 546 阅读 · 0 评论