大二学习java的一些干货总结

HashMap
HashSet
HashCode
List
重写和重载
什么是多态?
什么是抽象方法?什么是抽象类?什么是接口?什么是实现类
接口和抽象类的区别是什么?
Session、Cookie概念
Session、Cookie过期
运行机制

JavaSE

HashCode

若只重写了equals方法,那么两个值相同的对象的equals相同,由于两个对象地址不同,就与HashCode的规定冲突了。
Java对象的eqauls方法和hashCode方法是这样规定的:
➀相等(相同)的对象必须具有相等的哈希码(或者散列码)。
➁如果两个对象的hashCode相同,它们并不一定相同。
两个对象的HashCode相同,并不一定表示两个对象就相同,只能说明这两个对象在一个散列存储结构中。
String类重写了equals()方法

什么时候用list、set、map

list集合的特点是元素有序且可重复,set是元素无序不能重复,map<key,vlaue>集合以键值对来存储元素;当你需要元素唯一时,使用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);

JavaEE

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、Cookie过期

Session过期

  1. session超时 默认时间20min
  2. 服务器关闭
  3. session.invalidate()方法

Cookie过期

  1. 会话Cookie(SessionCookie)。会话Cookie存储在客户端的内存(浏览器占用的内存)中,决不会写入磁盘。当浏览器关闭时,Cookie将从此永久丢失。
  2. 持久性Cookie,存储在客户端的磁盘中。在指定的到期日期,Cookie将从磁盘中删除。

换种说法与session过期一致:

  1. cookie超时(持久性Cookie)
  2. 浏览器关闭(会话Cookie)

Session运行机制

第一次发送请求,请求头部无sessionID,Web服务器为客户端创建新session,生成sessionID,开始计时,将sessionID随本次响应返回客户端,
第二次发送请求,更新计时,服务器通过sessionID找session,本次sessionID不会再随着响应返回客户端;
如果session超时(找不到session)被服务器删除,再次访问会创建另一个新的session

当(存放着SessionId的)Cookie和Session中两者有任一过期,即宣告会话过期。

先更这么点…

Ajax

ajax的data的类型支持字符串和json对象。
可以使用 ( ′ f o r m ′ ) . s e r i a l i z e ( ) 来 获 取 表 单 里 面 的 非 文 件 数 据 转 化 为 字 符 串 。 相 当 于 问 号 传 参 ( 有 待 验 证 ) F o r m D a t a 对 象 来 传 输 文 件 建 议 使 用 j q u e r y 里 面 的 ('form').serialize()来获取表单里面的非文件数据转化为字符串。相当于问号传参(有待验证) FormData对象来传输文件 建议使用jquery里面的 (form).serialize()FormData使jquery(‘form’).submit()、$.ajax({})的组合来完成异步提交

JDBC

rowMapper行映射使代码可读性强,resultSet->rowMapper.list,然后可以request.setAttribute(“list”, rowMapper.list)等操作
在这里插入图片描述
问号传参更妙,利用多态,形参为共同父类
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧农业是一种结合了现代信息技术,包括物联网、大数据、云计算等,对农业生产过程进行智能化管理和监控的新模式。它通过各种传感器和设备采集农业生产中的关键数据,如大气、土壤和水质参数,以及生物生长状态等,实现远程诊断和精准调控。智慧农业的核心价值在于提高农业生产效率,保障食品安全,实现资源的可持续利用,并为农业产业的转型升级提供支持。 智慧农业的实现依赖于多个子系统,包括但不限于设施蔬菜精细化种植管理系统、农业技术资料库、数据采集系统、防伪防串货系统、食品安全与质量追溯系统、应急追溯系统、灾情疫情防控系统、农业工作管理系统、远程诊断系统、监控中心、环境监测系统、智能环境控制系统等。这些系统共同构成了一个综合的信息管理和服务平台,使得农业生产者能够基于数据做出更加科学的决策。 数据采集是智慧农业的基础。通过手工录入、传感器自动采集、移动端录入、条码/RFID扫描录入、拍照录入以及GPS和遥感技术等多种方式,智慧农业系统能够全面收集农业生产过程中的各种数据。这些数据不仅包括环境参数,还涵盖了生长状态、加工保存、检验检疫等环节,为农业生产提供了全面的数据支持。 智慧农业的应用前景广阔,它不仅能够提升农业生产的管理水平,还能够通过各种应用系统,如库房管理、无公害监控、物资管理、成本控制等,为农业生产者提供全面的服务。此外,智慧农业还能够支持政府监管,通过发病报告、投入品报告、死亡报告等,加强农业产品的安全管理和质量控制。 面对智慧农业的建设和发展,存在一些挑战,如投资成本高、生产过程标准化难度大、数据采集和监测的技术难题等。为了克服这些挑战,需要政府、企业和相关机构的共同努力,通过政策支持、技术创新和教育培训等手段,推动智慧农业的健康发展。智慧农业的建设需要明确建设目的,选择合适的系统模块,并制定合理的设备布署方案,以实现农业生产的智能化、精准化和高效化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值