来源:考而思在线
Java是一种通用的计算机编程语言,它是并发的,基于类的,面向对象的,并且专门设计用于尽可能少的实现依赖关系。旨在让应用程序开发人员“编写一次,随处运行”可以看出Java的受众面积是非常广的,因此也有不少前往海外就读的同学们选择学习该课程。不过课程难度也是有目共睹的,近期就有一位在爱尔兰就读大二的同学咨询过老师相关的问题,本次考而思在线的老师就来为同学们梳理一下爱尔兰大二留学生Java课程辅导与知识点的相关内容。
爱尔兰大二留学生Java课程辅导与知识点包括:
HashCode:
若只重写了equals方法,那么两个值相同的对象的equals相同,由于两个对象地址不同,就与HashCode的规定冲突了。
Java对象的eqauls方法和hashCode方法是这样规定的:
➀相等(相同)的对象必须具有相等的哈希码(或者散列码)。
➁如果两个对象的hashCode相同,它们并不一定相同。
两个对象的HashCode相同,并不一定表示两个对象就相同,只能说明这两个对象在一个散列存储结构中。
String类重写了equals()方法
什么时候用list、set、map:
list集合的特点是元素有序且可重复,set是元素无序不能重复,map集合以键值对来存储元素;当你需要元素唯一时,使用set,否则使用list,当需要具备键值对特性时,使用map。
HashMap:
HashMap允许一个key为NULL,key不允许重复,若key相同则覆盖之前的key,
非同步,线程不安全
底层是哈希表,元素无序
发生哈希冲突时将元素存储到链表中
HashSet:
采用 Hash 算法决定集合元素的存储位置
1、HashSet具有以下特点:元素无序且不能重复,元素值可以是null,非同步
2、HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。底层数据结构是哈希表。
3、哈希表:一个元素为链表的数组,综合了数组与链表的优点。
容量:hash表中桶的数量;
初始化容量:创建hash表时桶的数量;
尺寸:当前hash表中记录的数量;
负载因子:负载因子等于0表示空的hash表,0.5表示半满的hash表,轻负载的hash表具有冲突少、适宜插入与查询等特点。
负载极限:负载极限是一个0~1之间的数值,决定了hash表的最大填满程度。当hash表的负载因子达到指定负载极限时,hash表会自动成倍地增加容量,并将原有的对象重新分配,放入新的桶中。HashSet、HashMap、Hashtable默认的负载极限是0.75。
4、内部存储机制:
当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode方法来得到该对象的hashCode值,然后根据该hashCode值决定该对象在HashSet中的存储位置,以此与桶中各元素比较equals结果是否为true
动态数组(ArrayList)和链表(LinkedList)的比较:
1、数组是随机访问,查询效率高,链表是顺序访问,查询效率低;
2、数组插入删除操作需要移动大量元素,链表只需要修改几个指针;
3、数组的大小不好确定,定义的小,可能需要多次扩容,浪费时间,定义的大,可能浪费内存,而且对内存空间要求高,需要足够的连续内存空间
重写和重载:
什么是重载?对不同类型的参数实现相同的功能,重载发生在一个类中,要求重载的多个方法同名不同参数列表
什么是重写?重写发生在子类与父类之间,有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这时要求子类重写父类的方法与父类方法有相同的返回类型,方法名和参数列表,子类方法的访问权限和抛出的异常要比父类更宽泛而不能更严格。
多态:
什么是多态?所谓多态就是引用变量指向的具体类型和通过该引用变量调用的方法在编译时并不确定,而是在程序运行期间才确定。具体体现是父类引用指向子类对象,或者是接口引用指向了接口实现类的对象
多态的存在有3个条件:1)要有继承 2)要有重写3)父类引用指向子类对象
什么是抽象方法?什么是抽象类?什么是接口?什么是实现类
没有了方法体的方法称为抽象方法,有抽象方法的类称为抽象类,类中的方法都是抽象方法的抽象类就是接口,一个实现了接口中抽象方法的类就是实现类
接口和抽象类的区别是什么?
1、关键字 抽象类abstract extends 接口interface implements 接口一般以I开头
2、多继承 一个类可以实现多个接口,但只能继承一个抽象类。
3、成员变量 抽象类中的成员变量的访问类型可以任意,接口中定义的成员变量默认由public static final修饰;
4、抽象方法 抽象类中的抽象方法的访问类型可以是public,protected和默认类型,接口中的抽象方法默认由public abstract修饰;
5、非抽象方法 抽象类中可以有非抽象的方法,接口中的所有方法必须都是抽象的;
6、构造方法 抽象类可以有构造方法,接口中不能有构造方法;
7、静态方法 抽象类中可以包含静态方法,接口中不能包含静态方法,在JDK8及其后,接口可定义静态方法(static)与默认方法(default);
Session、Cookie概念:
用户登录后,我们把用户的信息保存在服务端 session 中,并且给用户一个 cookie 值,记录对应的 session,然后下次请求,用户携带 cookie 值来(这一步有浏览器自动完成),我们就能识别到对应 session,从而找到用户的信息。
cookie概念:客户端会话技术,将数据保存到客户端
cookie生存期是从服务器响应得到到浏览器关闭或超时
作用:
1. cookie一般用于存出少量的不太敏感的数据
2. 在不登录的情况下,完成服务器对客户端的身份识别
session概念:服务器端会话技术,将数据保存在服务器端的对象中。
session生存期是从浏览器向服务器发出请求到客户端浏览器或服务器关闭
作用:
在一次会话的多次请求和响应间共享数据
session与Cookie的区别:
1. session存储数据在服务器端,Cookie在客户端
2. session没有数据大小限制,Cookie有
3. session数据安全,Cookie相对于不安全
Session过期:
session超时 默认时间20min
服务器关闭
session.invalidate()方法
Cookie过期:
会话Cookie(SessionCookie)。会话Cookie存储在客户端的内存(浏览器占用的内存)中,决不会写入磁盘。当浏览器关闭时,Cookie将从此永久丢失。
持久性Cookie,存储在客户端的磁盘中。在指定的到期日期,Cookie将从磁盘中删除。
换种说法与session过期一致:
cookie超时(持久性Cookie)
浏览器关闭(会话Cookie)
Session运行机制:
第一次发送请求,请求头部无sessionID,Web服务器为客户端创建新session,生成sessionID,开始计时,将sessionID随本次响应返回客户端,
第二次发送请求,更新计时,服务器通过sessionID找session,本次sessionID不会再随着响应返回客户端;
如果session超时(找不到session)被服务器删除,再次访问会创建另一个新的session
当(存放着SessionId的)Cookie和Session中两者有任一过期,即宣告会话过期。
上述就是爱尔兰大二留学生Java课程辅导与知识点梳理的相关内容了,希望能够为有需要的同学提供到一些相关的帮助,当然了,若是有在课程辅导上需求的话,考而思在线的老师也是可以满足的,联系方式就是我们右侧的微信哦。
当前文章链接:
凡来源标注“考而思”均为考而思原创文章,版权均属考而思教育所有,任何媒体、网站或个人不得转载,否则追究法律责任
免费获得学习规划方案
已有 2563 位留学生获得学习规划方案
马上领取规划
*已对您的信息加密,保障信息安全。