Java基础:抽象类、接口、cookies、session

1.普通类和抽象类有哪些区别

  • 普通类不能包含抽象方法,抽象类可以包含抽象方法。
  • 抽象类不能直接实例化,普通类可以直接实例化。
  • 抽象类不一定非要有抽象方法
  • 抽象类不能用final修饰,因为抽象类要被其他类继承

 

3、什么是接口,它的特点是什么?


    interface 关键字用来声明一个接口,它可以产生一个完全抽象的类,并且不提供任何具体实现。 interface 的特性整理如下:

    1.接口中的方法可以有参数列表和返回类型,但不能有任何方法体。

    2.接口中可以包含字段,但是会被隐式的声明为 static 和 final 。

    3.接口中的字段只是被存储在该接口的静态存储区域内,而不属于该接口。

    4.接口中的方法可以被声明为 public 或不声明,但结果都会按照 public 类型处理。

    5.当实现一个接口时,需要将被定义的方法声明为 public 类型的,否则为默认访问类型, Java 编译器不允许这种情况。

    6.如果没有实现接口中所有方法,那么创建的仍然是一个接口。

    7.扩展一个接口来生成新的接口应使用关键字 extends ,实现一个接口使用 implements 。

    8.接口中的方法是抽象方法(abstract),不能是静态方法(static).接口的所有方法都是抽象的,而抽象方法是没有static,有stat

 

2. 接口和抽象类有什么区别

  • 实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
  • 构造函数:抽象类可以有构造函数;接口不能有。
  • main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有main 方法。
  • 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
  • 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。
  • 接口成员变量默认为public static final,必须赋初值,不能被修改;其所有的成员方法都是public、abstract的。抽象类中成员变量默认default,可在子类中被重新定义,也可被重新赋值;抽象方法被abstract修饰,不能被private、static、synchronized和native等修饰,必须以分号结尾,不带花括号。
     

3. java 中 IO 流分为几种

按功能来分:输入流(input)、输出流(output)

按类型来分:字节流和字符流。

字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。

4.Session和Cookies区别

cookie数据存放在客户的浏览器上,session数据放在服务器上。

cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

5.会话cookie和持久cookie的区别

如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。

6.session的工作原理

 

其实session是一个存在服务器上的类似于一个散列表格的文件。里面存有我们需要的信息,在我们需要用的时候可以从里面取出来。类似于一个大号的map吧,里面的键存储的是用户的sessionid,用户向服务器发送请求的时候会带上这个sessionid。这时就可以从中取出对应的值了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值