摘要: 反射:将类的各个组成部分封装为其他对象,这就是反射机制 * 好处: 1. 可以在程序运行过程中,操作这些对象。 2. 可以解耦,提高程序的可扩展性。 获取Class对象的方式: 1. Class.forName("全类名"):将字节码文件加载进内存,返回Class对象 * 多用于配置文件,将类名定义 阅读全文
posted @ 2019-07-28 15:50 路还很长 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 网络编程三要素: A:IP地址 B:端口 C:协议IP地址: 网络中计算机的唯一标识。 计算机只能识别二进制的数据,所以我们的IP地址应该是一个二进制的数据。 但是呢,我们配置的IP地址确不是二进制的,为什么呢? IP:192.168.1.100 换算:11000000 10101000 00000 阅读全文
posted @ 2019-07-28 10:50 路还很长 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 进程: 正在运行的程序,是系统进行资源分配和调用的独立单位。 每一个进程都有它自己的内存空间和系统资源。 线程: 是进程中的单个顺序控制流,是一条执行路径 一个进程如果只有一条执行路径,则称为单线程程序。 一个进程如果有多条执行路径,则称为多线程程序。 举例: 扫雷程序,迅雷下载 注意两个词汇的区别 阅读全文
posted @ 2019-07-28 10:19 路还很长 阅读(118) 评论(0) 推荐(0) 编辑
摘要: final:最终的意思,可以修饰类,成员变量,成员方法 修饰类,类不能被继承 修饰变量,变量是常量 修饰方法,方法不能被重写 finally:是异常处理的一部分,用于释放资源。 一般来说,代码肯定会执行,特殊情况:在执行到finally之前jvm退出了 finalize:是Object类的一个方法, 阅读全文
posted @ 2019-07-26 18:52 路还很长 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 集合的由来: 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储。 而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识里面,有哪些是容器类型的呢? 数组和StringBuffer 阅读全文
posted @ 2019-07-26 16:54 路还很长 阅读(164) 评论(0) 推荐(0) 编辑
摘要: StringBuffer和String的区别? 前者长度和内容可变,后者不可变。 如果使用前者做字符串的拼接,不会浪费太多的资源。 StringBuffer的构造方法: public StringBuffer():无参构造方法 public StringBuffer(int capacity):指定 阅读全文
posted @ 2019-07-24 22:08 路还很长 阅读(1794) 评论(0) 推荐(0) 编辑
摘要: 首先数据的表示有基本类型和引用类型。 == 基本类型比较值是否相同 引用类型比较的是地址是否相同 equals() 只能比较引用类型,默认情况下比较的是地址值是否相同。 但在一些类中重写了这个方法,如包装类,String,Date等,equals()比较的是两个变量的值。 阅读全文
posted @ 2019-07-22 21:20 路还很长 阅读(901) 评论(0) 推荐(0) 编辑
摘要: 优点: 提高了代码的维护性(继承保证) 提高了代码的扩展性(多态保证) 缺点: 不能使用子类的特有功能 运行结果: show zimethod zi 如果想使用子类的特有功能 就把父类的引用强转为子类的引用。 向上转型: Fu f = new Zi(); 向下转型: Zi z = (Zi)f; // 阅读全文
posted @ 2019-07-21 19:58 路还很长 阅读(1623) 评论(0) 推荐(0) 编辑
摘要: 多态中的成员访问特点: A:成员变量 编译看左边,运行看左边。 B:构造方法 创建子类对象的时候,访问父类的构造方法,对父类的数据进行初始化。 C:成员方法 编译看左边,运行看右边。 D:静态方法 编译看左边,运行看左边。 (静态和类相关,算不上重写,所以,访问还是左边的) 由于成员方法存在方法重写 阅读全文
posted @ 2019-07-21 19:33 路还很长 阅读(771) 评论(0) 推荐(0) 编辑