夯实基础系列一:Java 基础总结
内容提要
本文总结Java基础,涵盖基本概念、面向对象、关键字、基本类型与运算、字符串与数组、异常处理、Java平台与内存管理、分布式应用、多线程、IO十个方面。作者强调打好基础可降低学习新技术的时间成本,底层知识相对稳定,值得牢固掌握。
延伸解读
基础为何能降低学习成本
作者指出互联网技术迭代极快,刚掌握一门技术可能已面临淘汰,而学习新技术总要付出时间成本。打好基础能降低这种成本,因为底层知识相对稳定,技术革新时底层很少变动。牢固的基础有助于快速上手新技术,在变化中保持适应力。
后台开发的基础体系
作者选择后台开发方向,认为基础包括网络知识、各种协议、Web知识、数据库知识、Linux基本操作以及所选后台语言知识。这些是最基础最需要牢固掌握的。其他方向也有自己的体系,可以从低层到高层自行摸索。
Java基础总结的十个方面
作者将Java基础总结为十个方面:基本概念、面向对象、关键字、基本类型与运算、字符串与数组、异常处理、Java平台与内存管理、分布式Java应用、多线程、IO。这为读者提供了系统梳理Java基础知识的框架,便于查漏补缺。
系列博文的写作目的
作者计划推出后台基础相关系列博文,一是总结自己过去的学习,二是分享出来帮助需要的人。这种总结与分享结合的方式,既能巩固自身知识,也能为他人提供参考,体现了基础学习的长期价值。
Q&A
Java 程序初始化的顺序是怎样的?
初始化顺序为:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造器、子类非静态变量、子类非静态代码块、子类构造器。
抽象类和接口有什么区别?
相同点:都不能被实例化,只有实现了所有抽象方法或接口方法的子类才能实例化。不同点:接口只能定义方法不能实现,抽象类可以有定义和实现;接口需要被实现,抽象类需要被继承;接口强调特定功能,抽象类强调所属关系;接口成员变量默认 public static final,方法 public abstract,抽象类变量默认 default,方法不能用 private、static、synchronized、native 修饰。
Java 中 String、StringBuffer 和 StringBuilder 有什么区别?
String 不可变,执行效率最低;StringBuffer 可修改,线程安全,效率较高;StringBuilder 可修改,线程不安全,效率最高。
Java 中 finally 块一定会被执行吗?
不一定。如果程序在进入 try 之前出现异常,或者在 try 中调用了 System.exit(0),finally 块不会被执行。
Java 中 sleep() 和 wait() 方法有什么区别?
sleep 是 Thread 的静态方法,暂停一段时间执行,不释放锁,需要捕获异常;wait 是 Object 的方法,用于线程间通信,释放锁。
Java 中如何实现序列化?
实现 Serializable 接口,使用 FileOutputStream 构造 ObjectOutputStream 对象,调用 writeObject(obj) 方法将对象写出;恢复时使用对应的输入流。