试题小结3

news2024/11/25 2:30:24

项目和项目之间的通信

两个java项目,他们之间进行信息的通信

前提:必须知道要通信的java项目(接收请求方)的服务器的IP地址和访问路径

其实两个java项目之间的通信还是使用HTTP的请求。主要有两种方式:

①使用apache的HttpClient方式。

②使用JDK自带的java.net包下的HttpURLConnection方式。

HttpURLConnection方式:

HttpURLConnection传递请求常用的有两种方式:POST和GET方式。使用setRequestMethod()方法设置传递的方式。


反爬如何处理

1.通过user-agent进行反爬

2.通过referer进行反爬

3.通过cookie进行反爬

4.通过ip地址进行反爬

5.通过前端样式进行反爬

http://t.csdn.cn/A3Etk


乱码如何解决?

通过 DEBUG 或者打印日志来锁定导致乱码的原因,看看自己的乱码到底是属于哪一种,找到了乱码的原因,问题就解决的差不多了
1. 解决URL地址乱码
如果我们把请求参数放到了URL地址栏中,结果出现了乱码,这个问题在GET、DELETE 等请求中是比较常见的,而解决方案也很简单,我们只需要修改 Tomcat 的 conf/server.xml 配置文件,修改 URL编码格式

1、utf8解决JSP中文乱码问题

2、Tomcat 5.5 中文乱码(利用tomcat已经写好的字符集过滤器)

3、 get方式的解决办法(修改tomcat server.xml,但是不建议使用)

转载于:http://blog.itpub.net/800861/viewspace-969211/


集合的接口和构成有哪些?

 

1、List接口

List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。

ArrayList 可以将它理解成一个可增长的数组,它提供快速迭代和快速随机访问的能力。

LinkedList 中的元素之间是双链接的,当需要快速插入和删除时LinkedList成为List中的不二选择。

Vector 是ArrayList的线程安全版本,性能比ArrayList要低,现在已经很少使用

2、Set接口

Set关心唯一性,它不允许重复。

HashSet 当不希望集合中有重复值,并且不关心元素之间的顺序时可以使用此类。

LinkedHashset 当不希望集合中有重复值,并且希望按照元素的插入顺序进行迭代遍历时可采用此类。

TreeSet 当不希望集合中有重复值,并且希望按照元素的自然顺序进行排序时可以采用此类。(自然顺序意思是某种和插入顺序无关,而是和元素本身的内容和特质有关的排序方式,譬如“abc”排在“abd”前面。)

3、Queue接口

Queue用于保存将要执行的任务列表。

LinkedList 同样实现了Queue接口,可以实现先进先出的队列。

PriorityQueue 用来创建自然排序的优先级队列。

4、Map接口

Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。

HashMap 当需要键值对表示,又不关心顺序时可采用HashMap。

Hashtable 注意Hashtable中的t是小写的,它是HashMap的线程安全版本,现在已经很少使用。

LinkedHashMap 当需要键值对,并且关心插入顺序时可采用它。

TreeMap 当需要键值对,并关心元素的自然排序时可采用它。

什么是内存泄漏,常见引起引起内存泄漏的原因,及解决办法

http://t.csdn.cn/InFPt

什么是内存泄漏,常见引起引起内存泄漏的原因,及解决办法_内存泄露_Lonely池的博客-CSDN博客

内存泄漏也称作"存储渗漏",用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元。直到程序结束。(其实说白了就是该内存空间使用完毕之后未回收)即所谓内存泄漏。

事务及隔离级别

(2条消息) 【MySql】MySql事务及隔离级别_mysql设置隔离级别_爱穿背带裤的馫的博客-CSDN博客

设计模式

http://t.csdn.cn/Nre3c

23种设计模式概述

同步块和同步方法哪个是更好的选择

同步块是更好的选择,因为它不会锁住整个对象(当然你也可以让它锁住整个对象)。同步方法会锁住整个对象,哪怕这个类中有多个不相关联的同步块,这通常会导致他们停止执行并需要等待获得这个对象上的锁。

post和get的区别

在Web开发中,GET和POST是HTTP方法,用于向服务器发送请求的方式。它们有以下的区别:

  1. GET方法是用于获取资源的请求,而POST方法是用于提交数据至服务器的请求。
  2. GET请求的参数会附加在URL的末尾,可以被其他人看到,而POST请求的参数会被放在请求的body中,不会直接暴露在URL中,更安全。
  3. GET请求可以被缓存,可以被浏览器收藏夹保存,而POST请求不会被缓存。
  4. GET请求的参数长度受到限制,通常为2048个字符,而POST请求的参数长度没有限制。
  5. GET请求对数据的类型没有限制,可以发送任何类型的数据,而POST请求可以发送各种类型的数据,如图片、文件等。

总之,GET请求适用于获取数据,POST请求适用于提交数据,且POST请求更安全,可以发送更多类型的数据。

数据库性能调优

数据库优化的四大方法

  • 架构优化

  • 硬件优化

  • DB优化

  • SQL优化

此上而下,位置越靠前优化越明显,对数据库的性能提升越高。

1.架构优化

1.1分布式缓存

注意:引入分布式缓存后系统需要考虑如何应对缓存穿透、缓存击穿和缓存雪崩的问题。

1.2读写分离

一主多从,读写分离,主动同步,是一种常见的数据库架构优化手段。

适用于读多写少,通过增加从库数量可以线性提升系统读性能。

 主库,提供数据库写服务;从库,提供数据库读能力;主从之间,通过binlog同步数据。

当准备实施读写分离时,为了保证高可用,需要实现故障的自动转移,主从架构会有潜在主从不一致性问题。

1.3 水平切分

架构优化小结

  1. 分布式缓存架构可能比读写分离更适用于高并发、大数据量大场景。
  2. 读写分离主要是用于解决 “数据库读性能问题”
  3. 水平切分主要是用于解决“数据库数据量大的问题”

2.硬件优化

更换数据库的硬盘

3.DB优化

数据库实例参数优化遵循三句口诀:日志不能小、缓存足够大、连接要够用。

数据库在架构设计中都会采用如下两个优化手法:

  • 先将事务写到日志文件RedoLog(WAL),将随机写优化成顺序写

  • 加一层缓存结构Buffer,将单次写优化成顺序写

4.SQL优化

  • 合理使用索引

索引少了查询慢;索引多了占用空间大,执行增删改语句的时候需要动态维护索引,影响性能 选择率高(重复值少)且被where频繁引用需要建立B树索引;一般join列需要建立索引;复杂文档类型查询采用全文索引效率更好;索引的建立要在查询和DML性能之间取得平衡;复合索引创建时要注意基于非前导列查询的情况

  • 使用UNION ALL替代UNION

UNION ALL的执行效率比UNION高,因为UNION执行时需要排重;

  • 避免select * 写法

执行SQL时优化器需要将 * 转成具体的列;每次查询都要回表,不能走覆盖索引。

  • JOIN字段建议建立索引

一般JOIN字段都提前加上索引

  • 避免复杂SQL语句

提升可阅读性;避免慢查询的概率;可以转换成多个短查询,用业务端处理

  • 避免where 1=1写法
  • 避免order by rand()类似写法

RAND()导致数据列被多次扫描

执行计划
要想优化SQL必须要会看执行计划,执行计划会告诉你哪些地方效率低,哪里可以需要优化。通过explain sql 可以查看执行计划

SQL优化小结
这里给大家总结一下SQL优化的套路:

  1. 查看执行计划 explain sql
  2. 如果有告警信息,查看告警信息 show warnings;
  3. 查看SQL涉及的表结构和索引信息
  4. 根据执行计划,思考可能的优化点
  5. 按照可能的优化点执行表结构变更、增加索引、SQL改写等操作
  6. 查看优化后的执行时间和执行计划
  7. 如果优化效果不明显,重复第四步操作

http://t.csdn.cn/7iNWO

以下是Linux常用命令大全:

  1. cd:切换目录
  2. ls:列出目录内容
  3. pwd:显示当前目录
  4. mkdir:创建新目录
  5. touch:创建新文件
  6. rm:删除文件或目录
  7. cp:复制文件或目录
  8. mv:移动文件或目录
  9. cat:显示文件内容
  10. grep:在文件中查找指定内容
  11. find:在目录中查找文件
  12. tar:压缩和解压文件
  13. gzip:压缩文件
  14. unzip:解压缩文件
  15. chmod:修改文件权限
  16. chown:修改文件所有者
  17. chgrp:修改文件所属组
  18. ps:查看进程信息
  19. top:实时查看进程和系统状态
  20. kill:终止进程
  21. ifconfig:配置网络接口
  22. ping:检测网络连接
  23. netstat:显示网络状态
  24. scp:安全地远程复制文件
  25. ssh:通过SSH协议远程登录服务器
  26. su:切换用户
  27. sudo:以超级用户权限执行命令
  28. apt-get:Debian和Ubuntu下的包管理工具
  29. yum:CentOS和Fedora下的包管理工具
  30. man:查看命令的手册页

请注意,这只是一些常用命令的概述,Linux还有很多其他命令和功能。如果您需要更详细的帮助,您可以查阅Linux的官方文档或者使用“man”命令查看命令的详细用法。

JDK1.8新特性

http://t.csdn.cn/7RCBG

stream流

JAVA stream流详细教程_浩骞的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/746973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask+Echarts搭建全国疫情可视化大屏

FlaskEcharts搭建全国疫情可视化大屏 1、前言2、实现2.1 搭建flask应用2.2 编写html及其对应css代码2.3 可视化展示2.3.1 左上角板块2.3.2 中间上方板块2.3.3 右上角板块2.3.4 左下角板块2.3.5 中间下方板块2.3.6 右下角板块 2.4 完整代码&数据集获取 3、号外 1、前言 本项…

Git学习与使用

目录 版本控制、GIT以及SVN常见的版本控制方法本地版本控制集中式版本控制分布式版本控制 SVN与Git的区别 下载与安装Git安装: Git环境配置Git必要的配置 Git的基本理论(核心)Git项目搭建创建目录 git文件操作忽略文件 使用码云(gitee)辅助学…

CV常用注意力机制总结

本文总结了近几年CV领域常用的注意力机制,包括:SE(Squeeze and Excitation)、ECA(Efficient Channel Attention)、CBAM(Convolutional Block Attention Module)、CA(Coor…

DevOps基础服务2——Jenkins

文章目录 一、基本了解1.1 CI/CD介绍1.2 基于Docker的CI/CD 二、安装jenkins三、页面管理3.1 当前系统用户配置3.2 系统配置3.3 全局工具配置3.4 插件管理3.4.1 安装插件3.4.2 上传插件 3.5 用户设置3.6 查看日志3.7 汉化设置 一、基本了解 DEVOPS概念: DevOps是一种…

经典指针与数组笔试题——C语言

学习这片文章中的知识点,可以加深大家对指针应用的理解,让大家更能轻松知道指针在各种情况下指向那个内存地址。    文章开始之前 ,我们先来介绍一下一些必要的知识点 📢 : 以下代码都是在64位编译器下测试的 经典…

orcle报错:无监听程序,解决方法

orcle报错:无监听程序,解决方法 报错页面: 打开桌面侧边安装orcle的列表,找到Net Configuration Assistant,双击(这个可以重新配置监听) ![]](https://img-blog.csdnimg.cn/3ba6bd6bd0af413ca5…

nginx 开机自启

0x00 前言 简单的记录下 0x01 正文 cd /lib/systemd/system/ vim nginx.service [Unit] Descriptionnginx service Afternetwork.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/usr/lo…

pt18CSS

CSS 基础使用 CSS全称为: Cascading Style Sheets ,意为层叠样式表 ,与HTML相辅相成,实现网页的排版布局与样式美化 CSS使用方式 行内样式/内联样式 使用简单,但不推荐,大面积使用,很累 借…

ESP32(MicroPython) 网页显示温湿度+RGB点阵控制

本程序整合了RGB点阵可交互超声波云台网页显示温湿度程序和网页控制WS2812程序的功能,对一些参数进行了调整。去掉了图标以加快加载速度,去掉了超声波云台和按键控制以简化接线并实现RGB点阵更新周期可调,由于RGB点阵更新周期相对较长&#x…

vue3前端模拟https安全策略同局域网内测试方法-local-ssl-proxy

文章目录 前言建议全局安装运行安全策略模拟运行效果如果其他客户端不能访问 直接在cmd跑即可,不过我们应该先运行项目 前言 为什么要用https安全策略呢,因为http浏览器策略访问权限有限,不能使用navigator的激活“用户音频或视频”的方法&a…

windows上的mysql服务突然消失: 10061 Unkonwn error

问题描述 windows10 系统,今天早晨系统自己更新了下,也没啥问题,突然发现电脑上安装的mysql 服务没了… 原因分析: 我是安装的解压版的mysql 虽然服务没了,但是文件夹,包括数据啥的都在最重要的就是数据啦,还好都在 解决方案: 打开mysql 的bin所在目录…

Git撤销已合并提交的多种姿势

#Git撤销已合并提交的多种姿势 在Git中,合并分支是一个常见的操作,但有时候可能会意外地将错误的提交合并到了主分支。这时候需要撤销已合并的提交并恢复到正确的状态。本文将介绍的是如何在Git中撤销已合并的提交,无论这个提交记录是最新的还…

包管理工具:npm

安装Node的过程会自动安装npm工具 比如npm install dayjs后 const dayjsrequire("dayjs")console.log(dayjs()) 直接运行 生成package.json文件  方式一:手动从零创建项目,npm init –y  方式二:通过脚手架创建项目&#xf…

Sentinel服务器容错简介

spring gateway 详解 服务容错高并发带来的问题服务雪崩效应常见容错方案常见的容错思路1、隔离2、超时3、限流4、熔断5、降级 常见的容错组件 SentinelSentinel 具有以下特征:Sentinel概念和功能相关概念1、资源2、规则 重要功能 服务容错 高并发带来的问题 在微服务架构中&…

Vivado使用误区与进阶系列(七)用Tcl定制Vivado设计实现流程

01 基本的FPGA设计实现流程 FPGA 的设计流程简单来讲,就是从源代码到比特流文件的实现过程。大体上跟 IC 设计流程类似,可以分为前端设计和后端设计。其中前端设计是把源代码综合为对应的门级网表的过程,而后端设计则是把门级网表布局布线到…

orcle报错:TNS 监听程序无法为请求的服务器类型找到可用的处理程序

orcle报错:TNS 监听程序无法为请求的服务器类型找到可用的处理程序 方法一:配置文件修改 服务端的数据库是专用服务器,但是在客户端的tnsname.ora里配置中设置了连接方式为shared,这种情况下打开tnsnames.ora, 找到安装orcle的安装目录,点…

MSP430F5529,超声波,距离检测报警,倒车雷达,SR-04模块

文章目录 硬件连接功能实物效果代码 硬件连接 /* OLED----MSP430VCC-----3.3VGND-----GNDSCL------P3.1SDA------P3.0 */ /* 蜂鸣器----MSP430VCC-----3.3VGND-----GNDDAT------P2.4 */ /* 超声波----MSP430VCC-----3.3VGND-----GNDTRIG------P1.3ECHO------P1.2 */ /* …

模板学堂|数据关系和AntV、ECharts图表解析

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场(https://dataease.io/templates/)。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并…

PHP 音乐欣赏网站mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP音乐欣赏网站 是一套完善的web设计系统,对理解php编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 代码下载 https://download.csdn.net/download/qq_41221322/88041034https://download.…

Sentry 监控 Docker 方式部署

一、简介 根据主篇 Sentry 监控部署与使用 流程,使用 Docker 方式 方式进行部署。 docker 方式 部署操作比较简单,也是 Sentry 官方 比较推崇的方式,直接按 Sentry On-Premise 提供的方式按部就班部署就好了。或者可直接参考 Docker 部署 Se…