Java基础知识及操作原理

Java基础知识及原理
1.面向对象的四大特征
1.1:封装,继承,多态,抽象
(1) 继承:将共同点提取出来,即形成了父类/基类/超类。其他类自动成为子类/派生类子类继承父类的所有属性和方法,但不能直接访问private成员。(可以通过父类的方法去访问private成员)如果不写extends,java中默认继承java.lang.Object类。
单根继承原则:每个类只能继承一个类。
注意:每个子类的构造函数的第一句话,都会默认调用父类的无参数构造函数super()
(2)抽象类:抽象类也是类,完整的类:所有的方法都有实现(方法体)
注:只有一个完整的类才能被实例化,被new出来。
若一个类中有方法未被实现,则被定义为抽象类。
抽象类关键字是“abstract”,子类如果继承于抽象类,那么一定要实现父类所有的abstract的方法,否则子类也应该声明为抽象类。
(3)封装: 封装:使用了private修改类成员,使其外界无法直接访问。一般封装属性。
(4)接口: 接口: interface.里面的属性都是静态常量,方法都是抽象方法

1.2:类转型
(1):子类可以转换成父类(向上转型可以),而父类不能转换为子类(除非该父类对象本身就是一个子类对象

1.3:多态
(1):类型转换带来的作用就是多态。
子类继承父类的所有方法,但子类可以对父类的方法进行重写,即一个方法可以替换父类的一个方法。(注:子类方法的优先级是高于父类的)。
**作用:**作用:以统一的接口操作某一个类中不同对象的动态行为。对象之间的解耦。

2.static、final和常量设计
2.1:static
(1):静态变量,类共有成员,所有的对象实例只有一个静态变量的拷贝。static可以依赖于类存在,是类中的一个独立的存在。可以通过类直接访问。
(2):静态方法可以调用静态变量。
静态方法不能调用非静态变量。
静态方法不能调用非静态方法。
非静态方法可以调用静态方法。
非静态方法可以调用静态变量。
非静态方法可以调用非静态变量。
(3):static块/静态代码块
只在类第一次被加载时调用,即这段代码只执行一次。优先级顺序:static块>匿名块>构造函数

2.2:final 在 Java 中有什么作用?
》 final 修饰的类叫最终类,该类不能被继承。
》 final 修饰的方法不能被重写。
》 final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

3. Java 中操作字符串都有哪些类?它们之间有什么区别?
3.1:操作字符串的类有:String、StringBuffer、StringBuilder。
区别1:String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。
区别2:StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

4. Java中的IO流分为几种?
按功能来分:输入流(input)、输出流(output)。
按类型来分:字节流和字符流。
字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按
16 位传输以字符为单位输入输出数据。

5.Files 的常用方法都有哪些?
 Files. exists():检测文件路径是否存在。
 Files. createFile():创建文件。
 Files. createDirectory():创建文件夹。
 Files. delete():删除一个文件或目录。
 Files. copy():复制文件。
 Files. move():移动文件。
 Files. size():查看文件个数。
 Files. read():读取文件。
 Files. write():写入文件。

6.Java 容器都有哪些?
Java 容器分为 Collection 和 Map 两大类,其下又有很多子类,如下所示:
Collection,List,ArrayList,LinkedList,Vector,Stack,Set,ashSet
LinkedHashSet,TreeSet,Map,HashMap,LinkedHashMap,TreeMap,ConcurrentHashMap,Hashtable。

7.Collection 和 Collections 有什么区别?
Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List、Set 等。
Collections 是一个包装类,包含了很多静态方法,不能被实例化,就像一个工具类,比如提供的排序方法: Collections. sort(list)。
8.HashMap 和 Hashtable 有什么区别?
2.线程安全:Hashtable 是线程安全的,而 HashMap 是非线程安全的。
3.推荐使用:在 Hashtable 的类注释可以看到,Hashtable 是保留类不建议使
用 , 推 荐 在 单 线 程 环 境下 使 用 HashMap 替 代 , 如 果 需 要 多 线 程使 用 则 用ConcurrentHashMap 替代。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值