Java基础 - 含泪撰写

本文深入探讨了Java中的抽象类与接口的区别与联系、访问修饰符的作用范围、集合框架的使用方法、排序算法的基础知识以及跨平台实现原理等内容,并对JSP内置对象和动作进行了介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.抽象类与接口的异同

*都是上层抽象层,不能直接被实例化。都包含抽象方法,描述类具备的功能。

*抽象类可以包含普通的方法,子类直接继承就可以使用,提高代码复用。这抽象类的优势,接口只定义抽象方法。

*单继承,多实现。一个类只能继承一个父类,这个当然可以是抽象类,也可以是普通的类。但一个类可以实现多个接口。

 

*抽象类中的方法如果没被子类全部实现,那这个子类也必须是抽象类。接口中的方法如果没被子类实现,同样这个之类也必须是抽象类。

*抽象类和接口不能直接实例化,所以其中方法不能是static,或者private的

*接口是对动作的抽象,而抽象类是对根源的抽象对于抽象类,比如男人,女人这两个类,那我们可以为这两个类设计一个更高级别的抽象类--人。对于接口,我们可以坐着吃饭,可以站着吃饭,可以用筷子吃饭,可以用叉子吃饭,甚至可以学三哥一样用手抓着吃饭,那么可以把这些吃饭的动作抽象成一个接口--吃饭。所以在高级语言中(如Java,C#),一个类只能继承一个抽象类因为你不可能同时是生物又是非生物)。但是一个类可以同时实现多个接口,比如开车接口,滑冰接口,啪啪啪接口,踢足球接口,游泳接口。

 

2.访问修饰符

public 整个项目都可以访问

protect 本包及其子类(可能在包外)都可以访问

defalt 本包访问权限

private 私有的,本类访问权限

 

3.swith(expresion)

expresion可以是byte, Byte,short, Short, int, Integer, char, Character,  String, enum

 

4.String StringBuffer StringBulid

String 长度不可变,StringBuffer长度可变,线程不安全但速度快,StringBulid线程安全但速度慢

 

5.集合框架

                    有两大家族

coolection                                Map

|                                                     |

List(列表)    Set(集)     queue        |

|                       |               |            |

 

List有序可重复,List关注的是索引,查询速度快,增加删除会伴随着后面数据的移动,所以速度慢。

Set无序不可重复

Map键值对,先对key进行遍历得到一个Set集合,再对Set集合进行遍历得到相应的值

两种常用的迭代方式:

Iterator迭代输出

foreach,for迭代输出

 

所有的集合类都实现了Iterator接口,常用的三个方法:

hasNext()是否还有下一个元素

next()返回下一个元素

remove()删除当前的元素

 

6.排序

插入排序

选择排序

 

7.跨平台

不同平台有着不同的规范,Java如何跨平台。Java采用了JVM虚拟机来对接不同的平台。

代码首先会被编译成字节码,所有平台的字节码都相同。不同平台有对应的JVM,字节码会JVM翻译成对应平台的机器码,从而实现了跨平台。

 

java是一种强类型编程语言

 

jdk:

bin    二进制(binnary)一般存放可执行文件

compile    编译    javac.exe编译器    java.exe运行工具

include    因为jdk是用c , c++ 编写的,所以要包含一些头文件

lib    library , java类库

 

运算符:

&&    &    ||    |    ^

且运算,或运算,&&  ||    这样一般而言效率更高,如果右侧没必要运算的话后面就不运算了。

 

静态代码块,构造函数:

静态代码块是对所有对象进行初始化,而构造函数是对固定的对象进行初始化,也就是说静态代码块

比构造函数抽象度更高

 

==    equals:

==判断是不是一个东西(是不是指向同一个空间),equals判断是否长得一样(内存空间的值是否相同)

基本数据类型只有用==比较,引用数据类型用==比较的话是判断是不是同一个对象,用equals方法就要看具体equals了

如果用Object的equals方法,其实没什么区别,因为其中也是写的==,如果String用equals方法,就比较的是内容。

 

Jsp内置对象和动作:

request,封装客户端请求信息。也提供了几个获取cookie,session,header的方法。

response,客户端响应信息。

session,客户端与服务器的一次会话,从客户端连接到服务器的一个webapplication开始,到与服务器断开连接结束。

application,实现了不同用户间的数据共享,服务器的启动与关闭决定了application的生命周期。

out,向客户端输出内容的对象。

page,当前页面本身。

pageContext,提供了对JSP页面内所有对象及名字空间的访问,也就是说他可以访问本页面所在的session,也可以取本页面所在的application某一属性的值,它相当于页面中所有功能集大成者。

exception,当一个页面运行时发生了意外,就产生了这个对象。如果一个页面要用到此对象,要先把isErrorPage设为true.

config,当servlet初始化时用到的各种参数。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值