目录
- 成员变量和类变量
- 单例设计模式
- ResultSet
- 数组和数组集合的区别:
- webapp
- 流
- @RequestMapping
- val()
- 省市二级联动:
- 类型=容器
- 分页查询
- scope
- Vue中的export default 和带返回值的data()以及@符号的作用
- rows:行数据
- redis
- queryCount queryData
- 打开页面 -> 钩子函数触发获取数据 -> 带分页参数发送axios请求从后端拿数据
- span和div功能区别
- data:vue的属性 return data:自定义模板的函数
- BaseQuery
- PageList & total
- { } @pathvariable:
- 打开springboot启动的专属窗口:
- OSS
- idea提交撤销
- 视图
- entity、bo、vo、po、dto、pojo如何理解和区分?
- Git
- 如何查看IP
- StylusStudioXML
- XSLT ,XQuery
- Java中invoke()方法清晰说明
- 引用数据类型
- 字符串类型
- lambda表达式:
- Java库和外部库
- this:
- 内网穿透
- java中为什么要有基本数据类型
- Java中new和不new的区别
- 常量池知识点
- TomCat 启动
- maven
- 阅读源码
成员变量和类变量
类变量
在java中,类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”,用来修饰成员变量和成员方法,或静态代码块(静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行))。
成员变量
就是类中的属性。当new对象的时候,每个bai对象都有一份属性。一个对象中的属性就是成员变量。在类内部,任何地方都可以访问成员变量。类变量是被static修饰的属性。作用范围在类变量定义之后。
成员变量和类变量的区别:
1、两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
2、调用方式不同
成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
3、数据存储位置不同
成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
单例设计模式
核心就是将类的构造方法私有化,之后在类的内部产生实例化对象,并通过类名引用类的静态方法(static)返回实例化对象的引用。
ResultSet
表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集。
数组和数组集合的区别:
数组是数据类型,数组集合是工具类
集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性调用即可实现各种复杂操作,大大提高软件的开发效率。
webapp
webapp一般会被设置为JavaWeb的根目录, 存放html,CSS,JS等页面文件调用很方便, 放其他位置需要加路径
流
eg: 读 input 从硬盘读到内存 写 output 从内存写进硬盘
InputStream(字节输入流), 但是此类是抽象类 子类FileInputStream 读流 读取文件内容到内存中 输入
OutputStream(字节输出流),但是此类是抽象类 子类FileOutputStream 写流 内存中内容写进文件里 输出
@RequestMapping
@RequestMapping(“/user”): 浏览器URL路径或表单action路径 --> 控制器处理器方法
val()
val()
设置和获取有value属性的标签的value属性值
有value属性值的元素【大多数单标签都有】:input【按钮,文本框等】、option等
没有value属性值的元素【大多数双标签没有】:div、hn、span、a、p等
省市二级联动:
data= 传入参数
类型=容器
分页查询
controller直接接收前端传来的currentPage和pageSize参数(规范要求),结合分页sql完成分页
DepartmentQuery存在的意义就是为了后面的分页SQL
//查询类DepartmentQuery
private Integer currentPage = 1; /*当前页*/
private Integer pageSize = 10; /*每页大小*/
public Integer getStart() { /*计算limit 第一个参数*/
return (this.currentPage-1) * this.pageSize;
}
//controller
@PostMapping // http://localhost:8080/department post
public PageList<Department> queryPage(@RequestBody DepartmentQuery departmentQuery){
return departmentService.queryPage(departmentQuery);
}
//service接口
PageList<Department> queryPage(DepartmentQuery departmentQuery);
//service实现类
public PageList<Department> queryPage(DepartmentQuery departmentQuery) {
Integer total = departmentMapper.queryCount(departmentQuery); //查询总条数
List<Department> rows = departmentMapper.queryData(departmentQuery);//查询分页数据
return new PageList<>(total,rows);
}
//mapper接口
List<Department> queryData(DepartmentQuery departmentQuery);
//mapper.xml里的sql
<select id="queryData" resultType="Department" parameterType="DepartmentQuery">
SELECT * FROM t_department limit #{start},#{pageSize}
</select>
scope
scope:拿到当前行的元素
Vue中的export default 和带返回值的data()以及@符号的作用
为什么vue组件有的写成export default,有什么用?
1.声明一个vue,相当于 new Vue({})
2.达到可复用的目的,也就是说,export default 相当于导出当前vue组件,在其它引入当前组件时可以使用当前组件中的方法和变量
data()是什么意思?
起到局部变量的作用。也就是说,这个data()中return的变量和方法只限于当前声明此data()的组件使用。如果全局vue有个变量叫 user,当前组件也有个变量叫user,那vue里面的到底用哪个?所以data()就起到了变量隔离的一种效果。
在引入组件时路径上加上@符作用是什么?
import model from “@/common/model”;
@ 等价于 /src 这个目录,避免写麻烦又易错的相对路径
rows:行数据
redis
存放对象,需要序列化 Serializable
下载安装启动,配置依赖,生产者连接通道队列,消费者监听执行
五种常用发布订阅模式
queryCount queryData
queryCount 高级查询总条数 whereSql
queryData 高级查询当前页数数据 resultMap whereSql
打开页面 -> 钩子函数触发获取数据 -> 带分页参数发送axios请求从后端拿数据
span和div功能区别
div是一个块级元素,它包含的元素会自动换行。而span是行内元素,在它的前后不会换行
data:vue的属性 return data:自定义模板的函数
BaseQuery
BaseQuery 接收前台分页参数 (当前页 页面长度 高级查询关键字)
PageList & total
PageList 返回分页查询后的结果数据
total : 查询后的数据总条数 rows:分页查询当前页数据 加wheresql即加入高级查询条件
{ } @pathvariable:
打开springboot启动的专属窗口:
view--->tool window -->services --->选择springboot类型
OSS
OSS(Open Storage Service) 开放存储服务(OSS)
引入依赖 支持 配置参数 注解启动 代码实现 测试
工具类: 造对象 利用此对象来调用此类方法完成功能
开发人员
测试人员(至少1个)
---- 测试:
1.开发先自测
2.自测没问题后,会将代码提交----项目经理会审核代码----同意代码合并----进入git中央仓库
BUG管理的系统---给测试人员使用
3.测试人员会通过 jenkins 重新构建测试环境的代码
4.在测试的环境,针对开发提交的功能,进行测试
5.如果测试出现了问题,会将问题提交到 BUG管理系统
6.提交后,开发人员登录BUG系统,就可查看自己名下的所有BUG
7.开发人员修复BUG,BUG修复后,在BUG上提交修复后的BUG工单
8.测试人员会进行回测,回测无误,测试人员关闭当前工单,发现新的问题,他会再提交一个新的BUG工单
-------
项目上线之前,测试人员会进行一次全量测试,测试整个系统所有功能
有的还会进行 压力测试----测试系统并发承载量
es 一年一台服务器几千块 一般走几百万条数据
idea提交撤销
git show history idea reset current branch to here
视图
视图就是展示给用户看的结果。可以是很多形式,例如:html、JSP、excel表单、Word文档、PDF文档、JSON数据、freemarker模板视图等等。
https://www.cnblogs.com/lichangyun/p/8524862.html
SpringMVC 的 Controller 可以返回各种各样的视图。比如 JSP, JSON, Velocity, FreeMarker, XML, PDF, Excel, 还有Html字符流 等等
https://www.cnblogs.com/cmfwm/p/7660563.html
entity、bo、vo、po、dto、pojo如何理解和区分?
分层领域模型规约
DO(Data Object):与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
DTO(Data Transfer Object):数据传输对象, Service 或 Manager 向外传输的对象。
BO(Business Object) :业务对象。由 Service 层输出的封装业务逻辑的对象。
AO(Application Object) :应用对象。在 Web 层与 Service 层之间抽象的复用对象模型,极为贴近展示层,复用度不高。
VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
Query :数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map类来传输。”
手册上面没有提到的Pojo,我的理解是Entity、Vo、Dto、Query,这样一系列 对象的总称。
领域模型命名规约
1) 数据对象:xxxDO,xxx 即为数据表名。
2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。
3) 展示对象:xxxVO,xxx 一般为网页名称。
4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。
main方法主要是测试方法,其他静态方法为了好调用才加static,
静态的方法可以被对象和类调用,
构造函数在一个类实例化时,就会自动被调用
增删改查,数据流转
数据由前台传入,框架接收,数据库或者业务层返回
Git
Git:客户端 TortoiseGit:图形化界面 先装git,再装TortoiseGit,最后重启
git gui here 直译过来的意思就是 (GUI配置) 克隆git库,git bash here 直译过来就是 用BASH设置克隆git库操作
Git GUI here是Git软件的图形化操作入口,Git Bash here是Git软件的命令行操作入口。
如何查看IP
1.win+R输入cmd
2.在屏幕输入ipconfig 或ipconfig/all
StylusStudioXML
StylusStudioXML中文版是一款非常专业的XML编辑器,新版本提供了多个新功能,可以帮助用户更好的完成基于XML文档和XML模式的设计报告
XSLT ,XQuery
XSLT 指 XSL 转换。T的含义代表英语中的“转换”
在此教程中,你将学习如何使用 XSLT 将 XML 文档转换为其他文档,比如 XHTML。
XSLT 可扩展样式表转换语言(Extensible Stylesheet Language Transformations)是一种样式转换标记语言,可以将XML数据档转换为另外的XML或其它格式,如HTML网页,纯文字。XSLT最末的T字母表示英语中的“转换”(transformation)。它是XSL规范中的一部分,目前最新的建议版本为XSL 3.0。
以XSLT进行格式转换并不会变动原始的数据文件;而会以现有数据产生新的内容格式。作为输入的通常是XML数据档,或者由支持XQuery和XPath的数据模型处理器,其它来源的数据也能被转换,例如关系数据库表格或地理信息系统。
XSL规范的另外一部分是XSLF(Formatting Objects,代表格式化对象),又称XSL-FO或XSLFO,目前已逐渐被CSS 3.0所取代。XSLT是一种图灵完备的语言,它可以指定计算机能运行的任何计算。
XQuery = XML Query,是W3C所制定的一套标准,用来从类XML(标准通用标记语言的子集)文档中提取信息,类XML文档可以理解成一切符合XML数据模型和接口的实体,他们可能是文件或RDBMS。
XQuery 相对于 XML 的关系,等同于 SQL 相对于数据库表的关系。
XQuery 被设计用来查询 XML 数据 - 不仅仅限于 XML 文件,还包括任何可以 XML 形态呈现的数据,包括数据库。
Java中invoke()方法清晰说明
1、invoke就是调用类中的方法,最简单的用法是可以把方法参数化invoke(class, method)。
2、比如你Test类里有一系列名字相似的方法setValue1、setValue2等等。可以把方法名存进数组v[],然后循环里invoke(test,v[i]),就顺序调用了全部setValue。
简单来说,Method的invoke()方法和正常调用方法再虚拟机的实现中最终是调用的同一个实现
animalMethod.invoke(cat)中,由于Cat是Animal的子类,按照多态的特性,子类调用父类的的方法,方法执行时会动态链接到子类的实现方法上。——可以理解为通过父类方法指针调用,如果指向子类对象最终会执行子类对象的重写方法
代码中,Cat类覆盖了父类Animal的print()方法, 然后通过反射分别获取print()的Method对象。最后分别用Cat和Animal的实例对象去执行print()方法。其中animalMethod.invoke(animal)和catMethod.invoke(cat),示例对象的真实类型和Method的声明Classs是相同的,按照预期打印结果;animalMethod.invoke(cat)中,由于Cat是Animal的子类,按照多态的特性,子类调用父类的的方法,方法执行时会动态链接到子类的实现方法上。因此,这里会调用Cat.print()方法;而catMethod.invoke(animal)中,传入的参数类型Animal是父类,却期望调用子类Cat的方法
引用数据类型
https://zhidao.baidu.com/question/500894341119310364.html?qbl=relate_question_1&word=%D2%FD%D3%C3%CA%FD%BE%DD%C0%E0%D0%CD%B0%FC%BA%AC%C4%C4%D0%A9
https://zhidao.baidu.com/question/1181962812142111139.html?qbl=relate_question_3&word=%D2%FD%D3%C3%CA%FD%BE%DD%C0%E0%D0%CD%B0%FC%BA%AC%C4%C4%D0%A9
https://blog.csdn.net/baidu_31657889/article/details/51939332
字符串类型
https://blog.csdn.net/u013759354/article/details/88849815
https://zhidao.baidu.com/question/1824019793370022348.html
https://www.cnblogs.com/woftlcj/p/9987682.html
lambda表达式:
绕过实现类,快速且简便地运用函数式接口
Java库和外部库
java 库是 java 运行环境自带的库, 类似你自己会的技能, 例如走路,唱歌等. 随时随地可以发动技能
外部库是别人为 java 写的库, java 可以调用. 一般是 jar 文件或单个 class 文件. 类似别人的技能. 你会的再多也不可能把所有技能学会. 这样当你需要时可以找一个会这个技能的人来帮你完成.
this:
1.解决局部变量和成员变量的二义性,->防止就近原则影响赋值给成员变量
2.本类中构造方法之间的相互调用,但是必须是构造方法内的第一句
3.作为返回值返回 : this持有对象地址,表示该类的一个对象即是一个数据
4.作为参数传递
内网穿透
开发阶段让我们应用能够被外网访问。
https://blog.csdn.net/weixin_42063820/article/details/124563983
java中为什么要有基本数据类型
https://blog.csdn.net/Elsa15/article/details/107369710
Java中new和不new的区别
基本数据类型不需要new而直接定义,而引用数据类型在定义实例时需要new实例对象。
不用new开辟新的内存,这样就不占内存。程序的运行效率提高了。用new和不用new实现的功能是一样的。
java的八种基本类型不用new的,也不能new,因为基本类型是直接在栈内存生成的,直接赋值。
常量池知识点
https://blog.csdn.net/qq_45684867/article/details/121314607?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-121314607-blog-123150212.pc_relevant_3mothn_strategy_and_data_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=2
TomCat 启动
maven
Maven主目录:填写maven软件地址
用户设置文件:填写setting.xml地址,可自定义放的位置,文件里指定本地仓库地址
本地存储库:本地仓库地址,不用手动填写,用户设置文件填好后会自动解析得出
https://blog.csdn.net/ck00888/article/details/120169090
阅读源码
builder,factory,s 下面的子类 simple等