随笔分类 - 后端-JAVA-ThinkJAVA学习
摘要:在运行时识别一个对象的类型:instanceof,其返回一个boolean值,表示对象是不是某个特定类型的实例。 用法:a instanceof B 表示:对象实例a是否属于类B,或者是否是B的派生类 instanceof的使用有严格的限制,只可将其与命名类型【即class类】进行比较,而不能与Cl
阅读全文
摘要:除了使用反射以外【Class.forName("类的全限定名")】,Java还提供了另一种方法来生成对Class对象的引用,即使用 类字面常量: 类.class; 使用这种方式确实比使用反射更简单,而且更安全,因为它在编译期就会受到检查【因此不需要至于try-catch块中】。 在类被使用前实际做了
阅读全文
摘要:由于在默认情况下Scanner根据空白字符对输入进行分词,为满足不同的分词要求,Scanner提供的使用正则表达式的方式去指定你所需的定界符: 1 package 字符串; 2 3 import java.io.BufferedReader; 4 import java.io.IOException
阅读全文
摘要:使用Scanner扫描器比使用io流更方便? 使用流读取/写入文件是我最常用的处理方式,今天又新学习了一种使用扫描【Scanner】输入的方法。 对于读取一行文本,对其进行分词【Scanner分词定界符了解更多】,下面这种方式比较麻烦: 1 package 字符串; 2 3 import java.
阅读全文
摘要:思考:为什么使用正则表达式之前都要经过编译? 思考:正则匹配又是怎么去匹配的? 从算法上分析,对一个字符串进行正则匹配,是拿正则表达式深度遍历整个字符串,也就是用正则表达式去匹配所有可能的子串【也不一定是所有,但肯定是绝大部分】,拿下面的这个例子来说 package 字符串; import java
阅读全文
摘要:finally语句什么时候用: 你没必要在finally语句里处理内存回收,因为内存回收会由垃圾回收器完成,finally语句通常用于内存回收之外的情况。当要把除内存之外的资源恢复到它们初始状态时,就要用到finally子句。这种需要清理的资源包括:已经打开的文件或网络连接,在屏幕上画的图形,甚至外
阅读全文
摘要:重新抛出异常: 如果你想把刚捕获的异常扔给上一级处理,尤其是在使用Exception捕获所有异常的时候,既然已经得到了对当前异常对象的引用,可以直接把它重新抛出。重新抛出会把异常抛给上一级环境中的异常处理程序,同一个try块的后续catch子句将被忽略,但finally块不会。此外,异常对象的所有信
阅读全文
摘要:异常处理是java中唯一正式的错误报告机制,并且通过编译器强制执行。使用异常的好处是,它往往降低了错误处理代码的复杂度,如果不使用异常,那就必须检查特定的错误,并在程序中许多地方去处理它。而使用了异常,那就不必在方法调用处进行检查,因为异常机制将保证能捕获这个错误(try)。并且,只需要在一个地方处
阅读全文
摘要:Foreach与迭代器 自学java以来,我用到最方便的遍历方式莫属foreach了,也仅仅会用它,知道它能遍历数组还能便利集合(除Map外)。 foreach能遍历集合是在Java SE5才出现的,Java SE5引入了新的被称为Iterable的接口(java.lang.Iterable),这个
阅读全文
摘要:打印容器无需任何帮助,直接打印容器对象即可获得容器内可视数据,但是对于数组,直接打印数组对象,最终是调用toString方法,打印出的只是: * @return a string representation of the object. */ public String toString() {
阅读全文
摘要:工厂方法模式动机: 模式动机:考虑这样一个系统,按钮工厂类可以返回一个具体的按钮实例,如圆形按钮、矩形按钮、菱形按钮等。在这个系统中,如果需要增加一种新类型的按钮,如椭圆形按钮,那么除了增加一个新的具体产品类之外,还需要修改工厂类的代码,这就使得整个设计在一定程度上违反了“开闭原则”。 简单工厂模式
阅读全文
摘要:说明:内部类和组合是完全不同的概念,内部类看起来更像是一种代码隐藏机制。内部类了解外围类,并能与之通信。要创建一个内部类是非常简单的,只要将一个类定义在另一个类的内部即可。 创建内部类对象的方式: 1.如果内部类为公有、静态内部类: package think.in.java.test; /** *
阅读全文

浙公网安备 33010602011771号