当前位置: 首页 > news >正文

苏州吴江建设局招标网站哪里可以免费设计装修房子

苏州吴江建设局招标网站,哪里可以免费设计装修房子,网课培训机构排名前十,做h5单页的网站文章目录 前言1.Redis数据结构及其使用场景2.Redis缓存穿透、击穿、雪崩如何发生及解决方案3.SpringBoot启动类注解的底层实现原理4.docker常用命令5.Linux常用命令6.Java线程实现的几种方式7.Mybatis框架中#{}和${}的区别8.MySQL常见索引和区别9.乐观锁怎么实现10.SpringCloud… 文章目录 前言1.Redis数据结构及其使用场景2.Redis缓存穿透、击穿、雪崩如何发生及解决方案3.SpringBoot启动类注解的底层实现原理4.docker常用命令5.Linux常用命令6.Java线程实现的几种方式7.Mybatis框架中#{}和${}的区别8.MySQL常见索引和区别9.乐观锁怎么实现10.SpringCloud组件11.负载均衡的作用12.并行和并发的区别13.HashMap和Hashtable的区别14.Runnable和Callable的区别15.Spring自动注入16.Autowired和Resource的区别17.SpringMVC执行流程18.Java中的异常处理19.Spring异常处理20.Spring框架中的常用类 前言 本文为朋友2024年一次实习面试试题记录很多都是基础八股文。 1.Redis数据结构及其使用场景 Redis支持5种数据类型作为其valueRedis的key都是字符串类型的。 stringRedis中字符串value最大可为512M。可以用来做一些计数功能的缓存也是实际工作中最常见的。list简单的字符串列表按照插入顺序排序可以添加一个元素到列表的头部左边或者尾部右边其底层实现是一个链表。可以实现一个简单消息队列功能做基于Redis的分页功能等。set是一个字符串类型的无序集合可以用来进行全局去重等。sorted set是一个字符串类型的有序集合给每一个元素一个固定的分数score来保持排序。可以用来做排行榜应用或者进行范围查找等。hash键值对集合是一个字符串类型的key和value的映射表也就是说其存储的value是一个键值对key-value可以用来存放一些具有特定结构的信息。 其实Redis还支持三种特殊的数据类型分别是BitMap、Geo和HyperLogLog。一般情况下可以认为Redis的支持的数据类型有上述5种。其底层数据结构包括简单动态字符串、链表、字典、跳表、整数集合以及压缩列表。 2.Redis缓存穿透、击穿、雪崩如何发生及解决方案 缓存雪崩在高并发下大量的缓存key在同一时间失效导致大量请求落到数据库上如活动系统里面同时进行这非常多的活动但在某个时间点所有的活动缓存全部过期。 解决方案 ①缓存数据的过期时间设置随机防止同一时间大量数据过期现象的发生。 ②如果缓存数据库是分布式部署将热点数据均匀分布在不同高的缓存数据库中。 ③设置热点数据永远不过期。缓存穿透访问一个不存在的key缓存不起作用请求会穿透到DB流量大时DB会挂掉。 解决方案 ①接口增加校验如用户鉴权校验id做基础校验id0的直接拦截。 ②从缓存取不到的数据在数据库中也没有取到这时可以将key-value对写为key-null缓存有效时间可以设置短点如30s。这样可以防止攻击用户反复用同一个id暴力攻击。缓存击穿一个存在的key在缓存过期的那一刻同时有大量的请求这些请求都会击穿到DB造成瞬时DB请求量大、压力骤增。 解决方案 ①设置热点数据永远不过期。 ②加互斥锁简单来说就是在缓存失效的时候判断拿出来的值是否为空不是立即去加载数据库而是先使用缓存工具的某些带成功操作返回值的操作比如Redis 的 SETNX去set一个mutex key当操作返回成功时再进行加载数据库的操作并回设缓存否则就重试整个get缓存方法。 3.SpringBoot启动类注解的底层实现原理 来源Spring Boot 原理解析 4.docker常用命令 来源docker常用命令大全 基础命令 启动dockersystemctl start docker 关闭dockersystemctl stop docker 重启dockersystemctl restart docker docker设置随服务启动而自启动systemctl enable docker 查看docker 运行状态如果是在运行中 输入命令后 会看到绿色的activesystemctl status docker 查看docker 版本号信息docker version和docker info 帮助命令docker --help 镜像命令 查看自己服务器中docker 镜像列表docker images 搜索镜像docker search 镜像名如docker search --filterSTARS9000 mysql 搜索 STARS 9000的 mysql 镜像 拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本docker pull 镜像名 和docker pull 镜像名:tag 运行镜像docker run 镜像名和docker run 镜像名:Tag 删除镜像 #删除一个 docker rmi -f 镜像名/镜像ID#删除多个 其镜像ID或镜像用用空格隔开即可docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID#删除全部镜像 -a 意思为显示全部, -q 意思为只显示IDdocker rmi -f $(docker images -aq) 强制删除镜像docker image rm 镜像名称/镜像ID 保存镜像docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字 加载镜像docker load -i 镜像保存文件位置 容器命令 查看正在运行容器列表docker ps 查看所有容器docker ps -a 运行一个容器# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 守护式运行 --name 给要运行的容器 起的名字 /bin/bash 交互路径docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash 查看容器日志docker logs -f --tail要查看末尾多少行 默认all 容器ID 运维命令 查看docker工作目录sudo docker info | grep Docker Root Dir 查看docker磁盘占用总体情况du -hs /var/lib/docker/ 5.Linux常用命令 grepGlobal Regular Expression Print可以使用正则表达式搜索文本并把匹配的行打印出来。 示例查找文件file.log中“password”字段并且统计出现的次数 grep password file.log|wc -| 或者 grep password file.log -c awk将一行分为多个字段做处理。 示例1去掉第一列 awk -F , {print $2, $3} test.txt 示例2对第一列求和 awk {a$1}END{print a} test.txt 示例3去掉列数不为3的列 awk -F , {if(NF 3){print $0}} test.txt ps默认只会显示运行在当前控制台下的属于当前用户的进程。 显示所有进程 ps -A和ps -e 显示完整格式的所有进程 ps -ef 指定进程名找出进程名中包括java的所有进程 ps -ef | grep java top实时监测进程输出的第一部分显示系统的概括。 ps和top命令的区别 ps看到的是命令执行瞬间的进程信息而top可以持续监视ps只是查看进程而top还可以监视系统性能如平均负载、CPU和内存的消耗top可以操作进程如改变优先级命令r和关闭进程命令kps主要是查看进程的关注点在于查看需要查看的进程top主要看CPU内存使用情况即占用资源最多的进程由高到低排序关注点在于资源占用情况。 sed利用脚本处理文本文件。可以依照脚本的指令来处理、编辑文本文件。sed主要用来自动编辑一个或者多个文件、简化对文件的反复操作、编写转换程序等。 可以将文件的第二行和第三行裁剪出来 sed -n 2,3p test.txt sort对文本文件进行排序 正序排序 sort -n test.txt 反序排序 sort -nr test.txt tail和head命令 查看文件的最后2行 tail -n 2 file.log 实时查看文件的后边追加的部分 tail -f file.log 查看文件的开始2行 head -n 2 file.log 6.Java线程实现的几种方式 我这边列举了三种更详细的介绍请参考【Java】详细介绍Java实现线程的四种方式 继承自 Thread类通过继承 Thread 类可以创建⼀个新的线程。为了实现线程的执⾏逻辑需要重写 run() 方法。实现 Runnable接口使用 Executor 框架Executor 框架是 Java 并发编程中的高级工具它提供了⼀种更为灵活的方式来管理和执⾏线程。通过 Executor 可以将任务提交给线程池由线程池来管理线程的⽣命周期和执行。 7.Mybatis框架中#{}和${}的区别 MyBatis中能用#就尽量不要使用$符号它们的区别主要体现在以下几点 #将传入的数据都当做一个字符串会对自动传入的数据加一个双引号$符号将传入的数据直接显示在生成的SQL语句中#存在预编译的过程对问号赋值防止SQL注入$符号是直译的方式一般用在order by ${列名} 语句中 8.MySQL常见索引和区别 来源MySQL常见索引和区别 MySQL索引常见的分类包括普通索引、唯一索引、主键索引、全文索引等。 普通索引普通索引是最基本的索引类型不包含任何约束和限制条件。仅仅是为了提高查询速度而建立的索引。当我们使用 WHERE 字句进行搜索时MySQL 会使用普通索引来定位符合条件的行。如果查询条件使用到了索引字段那么 MySQL 可以更快速地定位所需的数据。普通索引可以在字符型、数字型、日期型等各种基本数据类型上创建。唯一索引唯一索引与普通索引相同也是为了提高查询速度而建立的索引。唯一索引不允许其字段中出现重复的值因此唯一索引可以用于任何必须具有唯一性的字段上。MySQL 在执行 INSERT 和 UPDATE 操作时会对唯一索引进行检测以确保其值的唯一性。主键索引主键索引是一种特殊的唯一索引它具有唯一性约束但是主键索引要求所有索引列都不为空即设置了 NOT NULL 约束。主键索引也是最常用的索引类型主键索引可以单独一列或多列组成。全文索引全文索引是 MySQL 中针对文本类型数据如文本、字符型、甚至二进制类型数据的特殊索引。它可以帮助我们更快地查询到数据主要用于诸如文章、博客、评论、产品描述等等文本信息的快速匹配。全文索引支持中文分词并且可以确定文本中关键词合适的位置从而快速定位相关文本。 9.乐观锁怎么实现 乐观锁就是对数据冲突保持乐观点态度认为不会有其他线程同时修改数据。因此乐观锁不会上锁只是在更新数据都时候判断是否有其他线程更新如果没有其他线程修改则更新数据有其他线程修改则放弃数据重新读取数据处理。Java中的乐观锁主要有两种实现方式CASCompare and Swap和版本号控制。乐观态度数据更新 CAS: CAS是实现乐观锁的核心算法它通过比较内存中的值是否和预期的值相等来判断是否存在冲突。如果存在则返回失败如果不存在则执行更新操作。CAS 它包含了 3 个参数V需要更新的变量、E预期值和 N最新值。只有当需要更新的变量等于预期值时需要更新的变量才会被设置为最新值如果更新值和预期值不同则说明已经有其它线程更新了需要更新的变量此时当前线程不做操作返回 V 的真实值。版本号控制版本号控制是乐观锁的另一种实现方式。每当一个线程要修改数据时都会先读取当前的版本号或时间戳并将其保存下来。线程完成修改后会再次读取当前的版本号或时间戳如果发现已经变化则说明有其他线程对数据进行了修改此时需要回滚并重试。 10.SpringCloud组件 服务发现——Netflix Eureka客服端负载均衡——Netflix Ribbon断路器——Netflix Hystrix服务网关——Netflix Zuul分布式配置——Spring Cloud Config 11.负载均衡的作用 当集群里的1台或者多台服务器down的时候剩余的没有down的服务器可以保证服务的继续使用使⽤了更多的机器保证了机器的良性使用不会由于某一高峰时刻导致系统cpu急剧上升 12.并行和并发的区别 并行是指两个或者多个事件在同一时刻发生而并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件并发是在同一实体上的多个事件。并行是在一台处理器上“同时”处理多个任务并发是在多台处理器上同时处理多个任务并发编程的目标是充分的利用处理器的每一个核以达到最高的处理性能。 13.HashMap和Hashtable的区别 HashMap没有考虑同步是线程不安全的Hashtable使用了synchronized关键字是线程安全的HashMap允许null作为keyHashtable不允许null作为keyHashtable的value也不允许为null 14.Runnable和Callable的区别 来源runnable 和 callable 有什么区别 方法不同 Runnable接口只有一个run()方法该方法不返回任何值因此无法抛出任何checked Exception。 Callable接口则有一个call()方法它可以返回一个值并且可以抛出一个checked Exception。返回值不同 Runnable的run()方法没有返回值只是一个void类型的方法。 Callable的call()方法却必须有一个返回值并且返回值的类型可以通过泛型进行指定。异常处理不同 在Runnable中我们无法对run()方法抛出的异常进行任何处理。 但在Callable中自定义的call()方法可以抛出一个checked Exception并由其执行者Handler进行捕获并处理。使用场景不同 Runnable适用于那些不需要返回值且不会抛出checked Exception的情况比如简单的打印输出或者修改一些共享的变量。 Callable适用于那些需要返回值或者需要抛出checked Exception的情况比如对某个任务的计算结果进行处理或者需要进行网络或IO操作等。在Java中常常使用Callable来实现异步任务的处理以提高系统的吞吐量和响应速度。 15.Spring自动注入 详情查看Spring自动注入 在 Spring 配置文件中对象名和 ref”id”id 名相同使用自动注入,可以不配置两种配置办法 ① 在中通过 autowire”” 配置,只对这个生效 ②在中通过 default-autowire””配置,表当当前文件中所有都是全局配置内容 ③autowire”” 可取值   no: 不自动注入   byName: 通过名称自动注入.在 Spring 容器中找类的 Id   byType: 根据类型注入 注意这里如果有两个相同的注入类型会报错    constructor: 根据构造方法注入 16.Autowired和Resource的区别 来源【最详细】Autowired 和 Resource 的区别 Autowired 是spring提供的注解Resource 是JDK提供的注解Autowired 默认的注入方式是ByType根据类型进行匹配Resource 默认的注入方式是 ByName (根据名称进行匹配)当一个接口存在多个实现类的情况下Autowired 和 Resource都需要通过名称才能匹配到对应Bean。Autowired可以通过Qualifier来显示指定的名称Resource 可以通过name来显示指定名称 17.SpringMVC执行流程 来源SpringMVC执行流程 SpringMVC执行流程: 用户发送请求至前端控制器DispatcherServletDispatcherServlet收到请求调用处理器映射器HandlerMapping处理器映射器根据请求url找到具体的处理器生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServletDispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作如参数封装数据格式转换数据验证等操作执行处理器Handler(Controller也叫页面控制器)Handler执行完成返回ModelAndViewHandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServletDispatcherServlet将ModelAndView传给ViewReslover视图解析器ViewReslover解析后返回具体ViewDispatcherServlet对View进行渲染视图即将模型数据model填充至视图中DispatcherServlet响应用户。 18.Java中的异常处理 主要是try-catch-finally和throw、throws关键字。 异常都是派生于Throwable类的一个实例这个实例可以由JVM产生也可以再程序中手动创建用throw手动抛出。throw的对象必须是派生于Throwable类的实例其他类型无法通过编译。受检异常只有两种选择要么被捕获处理要么抛出让调用者处理。而非受检异常没有此强制要求。 throws是用来声明异常只要是派生于Throwable类的都可以被声明。try-catch-finally用来捕获异常。 所有派生于Throwable类都可以通过 catch 捕获try 中放可能存在异常的方法如果在 try语句块中的任何代码抛出了⼀个在 catch 子句中说明的异常类那么程序将跳过 try 语句块的其余代码并且执行 catch 子句中的处理器代码。如果在 try 语句块中的代码没有拋出任何异常那么程序将跳过 catch 子句如果方法中的任何代码拋出了⼀个在 catch 子句中没有声明的异常类型那么这个方法就会立刻退出。在⼀个 try 语句块中可以捕获多个异常类型并对不同类型的异常做出不同的处理。可以为每个异常类型使用一个单独的 catch 子句。需要注意如果多个catch中的异常非继承关系那么catch顺序不影响结果如果catch异常存在类继承关系那么⼦类的catch应该放在前面父类的在后面。finally⼀般⽤来关闭所占用的资源。如果代码抛出异常就会终止剩余代码的处理并且退出这个方法。这样可能会导致⼀些程序占用的系统并不能被正确的释放。而不管是否有异常被捕获finally中子句的代码都会被执行可以在这里正确的释放资源。 19.Spring异常处理 来源Spring 异常处理 简单的可以通过抛出特定异常Spring 会自动转换为对应的 HTTP 状态码或者自定义异常添加对应状态码注解在同一个文件中编写异常处理器单独写一个方法添加 ExceptionHandler(XXXException.class) 注解单独编写一个统一异常处理类对于 Rest 等方式中的异常可以在异常处理方法上面添加 ResponseStatus、ResponseBody 注解更复杂的情况可以通过返回 ResponseEntity 解决 20.Spring框架中的常用类 来源spring框架常用的类有哪些 ApplicationContext: 用来管理bean的配置文件并创建bean BeanFactory: 为创建和管理bean提供基本服务 Configuration: 使用Java配置类来配置bean Autowired: 用来自动装配bean Component: 用来标记组件类 Service: 用来标记业务层组件 Repository: 用来标记数据访问层组件 Controller: 用来标记控制层组件 RestController: 用来标记RESTful风格的控制层组件 RequestMapping: 用来处理请求映射 RequestBody: 用来处理请求体 ResponseBody: 用来处理响应体 AOP:用来提供面向切面编程(AOP)的功能
http://www.pierceye.com/news/338785/

相关文章:

  • 一个网站的建设需要哪些流程图eclipse的开发网站开发
  • 网站链接跳转怎么做建立数据库连接时出错wordpress
  • 漳州网站建设选博大不错江苏省建设工程注册中心网站
  • 文件下载网站源码免费做网站空间
  • 怎样给公司做一个网站做推广新网域名管理平台
  • 新蔡县做网站收多少钱二级分销利润分配模式
  • 鞍山百度网站怎么制作python培训视频教程
  • 湛江网站建设与网页网站建设需要什么证件
  • 东莞建站公司案例全网天下案例wordpress入门教程知乎
  • 网站策划书包含的内容化工设计网站
  • 做网站推广电话网站建设制作免费推广
  • 如何发布网站响应式商城网站
  • 网站建设应用程序开发网站建设的意义以及重要性
  • 网站建设进度说明嘉兴公司制作网站的
  • 山东省建设注册管理网站手机免费网站制作
  • 台州网站制作套餐如何查询网站的主机
  • 毕业设计代做哪个网站好房产中介如何找客源
  • 怎么下载自己做的网站杭州互联网公司排名
  • 做曖視頻网站网站开发设计流程论文
  • 北京移动官网网站建设凡科做的网站好吗
  • 申请网站域名怎么做wordpress金融主题
  • 中国建设银行移动门户网站wordpress 生成html代码
  • dw网站建设框架大小设定广州分销商城开发
  • 网站一年的 运营费用一般企业网站建设合同
  • 九龙坡集团网站建设贵阳网站建设推广
  • 架设网站 自己购买服务器无锡seo网站推广费用
  • 网站关键词长度开平 做一网站
  • 青海制作网站可以网站可以做免费的文案广告
  • 深圳维特网站建设有彩虹代刷源码怎么做网站
  • 有了自己的网站怎样做后台食品建设网站前的市场分析