Java基础学习笔记_抽象abstract和接口interface
李刚老师《疯狂Java讲义》学习笔记
5.1假期的最后一天,下了点小雨,在图书馆呆了一天。 -------2019-05-04
一、接口interface
1、系统会自动为接口里定义的Field 增加static 和final 修饰符;
2、接口里的方法都是抽象的;
3、接口里定义的Field 只能是常量;
4、接口只能继承接口,不能继承类;
二、接口和抽象类的区别
1、接口作为系统与外界交互的窗口,体现的是一种规范;
2、抽象类作为系统中多个子类的共同父类,体现的是一种模板式设计;
3、接口体现的是一种规范和实现分离的设计哲学;
三、设计模式
设计模式是对经常出现的软件设计问题的成熟解决方案。
四、内部类
1、非静态内部类里可以直接访问外部类的private成员;
(在非静态内部类的对象里,保存了一个它寄存的外部类对象的引用)
2、内部类提供了更好的封装,不允许同一个包中的其它类访问;
3、匿名内部类适合用于那些仅需要一次使用的类;
五、枚举类
1、枚举类是实例有限而且固定的类;
public enum SeasonEnum{
SPRING,SUMMER,FALL,WINTER;
}
2、所以的枚举类都提供了一个values方法,该方法可以很方便的遍历所以的枚举值。
六、对象和垃圾回收
1、当程序创建对象、数组等引用类型实体时,系统都会在堆内存中为之分配了一块内存区;
2、垃圾回收机制只负责回收堆内存中的对象;
3、程序无法精确控制垃圾回收的运行,垃圾回收会在合适的时候进行;
4、在垃圾回收机制回收任何对象之前,总会先调用它的finalize()方法;
5、对象的3种状态: 可达状态、可恢复状态、不可达状态;
6、强制系统垃圾回收:
System.gcc();
Runtime.getRuntime().gcc();
七、对象的软、弱、虚引用
StrongReference
SoftReference
WeakReference: 对于只有弱引用的对象而言,当系统垃圾回收机制运行时,不管内存释放足够,总会回收该对象所占有的内存;
PhantomReference
八、一些类
1、Scanner类
Scanner sc = new Scanner(System.in);
2、System 类
System.getenv("JAVA_HOME");
System.getProperties();
System.getProperty("os.name");
System.identifyHashCode(Object);//返回指定对象的精确hashCode值
3、Runtime类
Runtime rt = Runtime.getRuntione();
rt.availProcessors();
rt.freeMemory();
rt.totalMemory();
rt.maxMemory();
4、String、StringBuffer、 StringBuilder类
StringBuffer是线性安全的,而StringBuilder则没有实现线性安全,所以安全性能更高.
5、Math类
6、Random、 ThreadLocalRandom类
ThreadLocalRandom rand = ThreadLocalRandom.current();
rand.nextInt(4,20);
7、BigDecimal类
BigDecimal f1 = new BigDecimal(0.05);//不推荐用法,会有精度缺失
BigDecimal f2 = new BigDecimal.valueof(0.05);//推荐用法
8、Data 、C alendar、TimeZone类
九、正则表达式
正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作;
十、Collection 和 Interator接口
1、Collection 接口是List、Set 和Queue接口的父接口;
2、Interator 主要用于遍历Collection集合中的元素,Interator对象也被称为迭代器;
3、使用Interator迭代访问Collection集合的元素时,Collection集合里的元素不能被改变;
4、使用foreach循环迭代访问集合元素时,该集合也不能被改变;
十一、泛型
所谓泛型,就是允许在定义类、接口、方法时使用类型形参。
十二、AWT 、Swing 编程 (这部分内容没有看)
十三、网络编程
1、OSI (Open System Interconnect)
TCP/IP : 应用层、传输层、网络层、物理+数据链路层
2、InetAddress
InetAddress ip = InetAddress.getByName("www.baidu.com");
3、URLDecoder 和 URLEnCoder 用于完成普通字符串和 application/x-www-form-urlencoded MIME 字符串之间的互相转换。
4、URL(Uniform Resource Locator) 统一资源定位器
5、基于TCP协议的网络编程
ServerSocket
Socket
6、基于UDP协议的网络编程
DatagramSocket