摘要: StringBuffer是使用缓冲区的,本身也是操作字符串的,但与String类不同,String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。 对于StringBuffer而言本身就是一个操作类,不能像String那样直接通过赋值的方式 阅读全文
posted @ 2018-01-14 16:37 weller 阅读(3728) 评论(0) 推荐(0) 编辑
摘要: Thread和Runnable的联系 Thread类的定义: 联系:从Thread类的定义可以看到,Thread类实现了Runnable接口,即可以说Thread是Runnable的子类。 Thread和Runnable的区别 观察以下程序(程序1): 通过继承Thread类实现的多线程操作,两个售 阅读全文
posted @ 2018-01-14 16:32 weller 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 观察以下代码 由文档知parseInt()的定义格式为: public static int parseInt(String s) throws NumberFormatException 我们可以看到在此方法中明明使用了throws抛出异常,但我们在调用时为什么不用处理就可以编译通过呢? 我们可以 阅读全文
posted @ 2018-01-14 16:18 weller 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 假设有这样一种情景: l 张三借给李四5000000块钱 l 李四不换了,张三很生气 l 张三找到王五,王五是讨债公司的 l 王五准备了老虎闸和辣椒水 l 把李四欠张三的钱拿回来了 也就是说,张三委托王五找李四要钱,也就是说王五代理了张三。 代理设计是在Java中一种常用的设计模式,所谓代理设计就是 阅读全文
posted @ 2018-01-14 16:11 weller 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 这样的代码有没有问题呢?从程序的设计思路上,主方法应该就表示一个客户端,住房法中的代码应该越少越好。此时在主方法中直接指定了要操作的子类,就表示了客户端和特定的子类紧密的耦合在一起了,这时如果要更换子类,就需要改变客户端。 我们参考JVM的工作原理:程序->JVM->操作系统。这就是一个解耦合的范例 阅读全文
posted @ 2018-01-14 16:08 weller 阅读(96) 评论(0) 推荐(0) 编辑
摘要: Java中多态性主要表现在两个方面:方法的重载和覆写和对象的多态性。 对象的多态性主要表现在以下两种类型: l 向上转型:子类对象->父类对象 父类 父类对象 = 子类实例; l 向下转型:父类对象->子类对象 子类 子类对象 = (子类)父类对象; 1、向上转型:用子类对象转型到父类对象调用的还是 阅读全文
posted @ 2018-01-14 16:04 weller 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。 人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实 阅读全文
posted @ 2018-01-14 15:57 weller 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 方法重载(overload): 方法重载就是在一个类中可以创建多个方法,它们具有相同的名字,但是具有不同的参数和不同的定义,调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法,这就是多态性,重载的时候方法名一样,参数类型和个数不一样,返回值类型可以相同可以不同,可以有不同的访问修 阅读全文
posted @ 2018-01-14 15:40 weller 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 以下的代码对构造方法进行了私有化封装,但这样封装后我们在类外需要实例化对象是会出现错误,因为构造方法是私有的,所以无法实例化。 既然在外部不能实例化对象,我们可以在类的内部实例化对象。 也因为外部不能实例化对象,我们如果要使用instance属性,就应该把它定义为static类型,此时我们就可以在外 阅读全文
posted @ 2018-01-14 15:39 weller 阅读(155) 评论(0) 推荐(0) 编辑