j2se补充

抽象 是一种研究方法 即把一个事物所具有的特征抽象出来
继承 是子类和父类之间的关系 即把各个子类的公共属性提取出来作为父类
这里写图片描述

程序执行过程

这里写图片描述

return

返回的值 会临时保存在栈内存中 方法结束后该内存才消失

super.f()

指的是调用父类的f方法
子类的构造必须先调用父类的构造方法super() 通过参数列表的不同指明调用父类的哪个构造方法
因为子类需要用到父类的属性和方法 所以必须先把父类构造出来才能用
如果没写 系统默认使用父类空的构造方法

equals方法默认比较的是首地址 必须重写

String类 已经重写了equals方法 所以用String 比较时 不用自己重写equals方法
配置java环境的原因
这里写图片描述

局部变量系统不会自动初始化 成员变量才会

动态绑定(迟邦定) 多态

在编译时指向的是父类的内存 而运行时 方法实际传入的是哪个子类便更改指向父类的指针为指向子类的内存 把子类当做父类使用 即向上转型

当子类不想实现父类抽象方法时 ,则可以在写一个同名的抽象方法即可不用实现

只要实现了接口的任何类都能 创建接口类型的实现类对象 但该对象只能使用实现了该接口的方法而不能使用实现类的其他方法

new String(c,4,3);

从c 的第4个字符串开始截取3个字符

s.indexof(“java”)

首次出现java 的第一个位置

String[] _split= s.split(“,”);

把s 按逗号分离并分别保存到数组中_split

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
区别 :前者是动态绑定 即编译期间 d指向的是Object 的toString 方法
运行时d 指向的是传入的子类对象 的toString方法
而后者直接调用d的toString方法

判断c是否小写

这里写图片描述
s.charAt(i) 取得s 第i-1个字符
s.subString(1,2);表示截取 第2到第3个字符
s.subString(2);表示截取第3个字符至结尾所有字符
s1+=s2 指的是 s1 s2 的内存都复制保存到第三个内存空间中(因为String是不可变的 所以只能把2个String复制到共同的内存空间) 再把s1的首地址指向第三个内存空间
效率较低 改进 用StringBuffer
枚举类型 规定只能选择使用的参数时哪几个 使用类名.属性来获取 比如游戏中定义方向只能上下左右四个方向
这里写图片描述
用容器的原因
数组的长度不能增加 要扩展必须开辟另一空间 再把原来的数组复制过来
这里写图片描述
使用多态的原因 因为c只能使用Collection接口中的方法 而不会使用子类ArrayList自己的方法
当更换子类LinkList时 不需要修改子类的自己方法 直接替换即可
这里的Name类没有重写equals方法 所以其equals方法比较的是首地址是否相同
很明显2个Name对象都是各自new 出来的 首地址不同 所以 remove时并不会把之前的Name对象移除

这里写图片描述

这里写图片描述

这里写图片描述
utf8比较省空间

join 即把线程归并回主线程 当做方法使用 只有该线程执行完后才继续执行它下面的代码
yield 当前线程让其他线程执行一会

这里写图片描述
网关 一边连着子网 替子网转发 一边连着公网上网
TCP必须有回复才发
UDP 发了不管

猜你喜欢

转载自blog.csdn.net/v2020877/article/details/82228000