热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

一级缓存和二级缓存的区别

MyBatis中井号和美元符号的区别:        #{变量名}可以预编译类型匹配等操作,会转化成jdbc类型        

MyBatis中井号和美元符号的区别:

        #{变量名} 可以预编译 类型匹配等操作,会转化成jdbc类型

        #方式很大程度上防止sql注入

${变量名} 不进行数据类型的匹配 直接转换

$ 无法防止sql注入

$一般用于传入数据库对象 例如传入表明

尽量多用#方式  少用$方式

 

一级缓存和二级缓存的区别:

        一级缓存  sqlSession  二级缓存 mapper级别  多个sqlsession共享

   都是用hashmap存储数据   相比一级缓存 二级缓存范围更大 跨sqlsession

 

 

springboot的自动装配机制:

springboot框架是为了能够帮助使用spring框架的开发者快速高效的构建一个基于spirng框架以及spring生态体系的应用解决方案。它是对“约定优于配置”这个理念下的一个最佳实践。因此它是一个服务于框架的框架,服务的范围是简化配置文件。

 

     Spring Boot启动的时候会通过@EnableAutoConfiguration注解找到META-INF/spring.factories配置文件中的所有自动配置类,并对其进行加载,而这些自动配置类都是以AutoConfiguration结尾来命名的,它实际上就是一个JavaConfig形式的Spring容器配置类,它能通过以Properties结尾命名的类中取得在全局配置文件中配置的属性如:server.port,而XxxxProperties类是通过@ConfigurationProperties注解与全局配置文件中对应的属性进行绑定的。

 

Mysql的事务隔离级别   

低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。

读未提交       读取未提交的也叫脏读

读已提交       读取提交的   默认的

可重复读       幻读  多实例并发处理数据   一个再读取 另一个插入了新行

可串行化       它在每个读数据加上共享锁   超时 锁竞争

 

多版本并发控制 mvcc

是通过保存数据在某个时间点的快照来实现的。也就是说,不管需要执行多长时间,每个事务看到的数据都是一致的

 

 

保证线程安全的几种方式:

     1. Confinement  限制数据共享  将可变数据限制在单一线程的内部 避免竞争

      核心思想: 线程之间不可享可变数据类型



  1. immutable  将可变类型改为 immutable类型  避免多线程间的race condition

  2. Threadsafe data type 共享线程安全的可变数据

  3. Synchronization  通过锁机制共享不安全的数据

       

G1

特点 充分利用计算机资源  分代收集  空间整合   建立可预测的停顿

回收步骤:初始标记  并发标记   最终标记   筛选回收  在用户规定的时间里,回收最大价值得region的垃圾

 

 

内存分配与回收策略

     对象优先在eden分配          大对象直接进入老年代

     长期存活的对象将进入老年代   

动态对象年龄判判断 同年龄的对象的大小超过整个survivor区的一半,大小等于这个年龄对象都会放入老年代

 

堆溢出

      回收的对象没有回收造成的内存溢出

      解决:查看是否有没有回收的对象 如果没有扩大内存

栈溢出

      递归调用太多  

       扩大栈深度  从代码入手   改正错误调用

方法区溢出:java.lang.OutOfMemoryError: null

          直接调内存大小    -xxMaxDirectMemorySize=10

Gc日志分析

       设置参数:-xloggcDlogs/admin_client.log

       提前建立好目录  admin_client.log

 



推荐阅读
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 本文介绍了Java编程语言的基础知识,包括其历史背景、主要特性以及如何安装和配置JDK。此外,还详细讲解了如何编写和运行第一个Java程序,并简要介绍了Eclipse集成开发环境的安装和使用。 ... [详细]
  • 万事开头难,凡事都有套路,勇敢迈出第一步就成功一大半了。本节将带领初学者们迈出属于自己的一小步。本书的开发工具采用AndroidStudio࿰ ... [详细]
  • iOS 不定参数 详解 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 本文探讨了Go语言中iota关键字的具体含义及其在常量声明中的应用。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 使用Java开发简易文本编辑器
    作为一名初学者,虽然之前有使用VB.NET和C#开发文本编辑器的经验,但在尝试用Java实现相同功能时,感觉Java的图形界面组件不如微软的产品(如C#和VB.NET)那么友好。本文将分享我在Java中开发简易文本编辑器的过程,并探讨Java在图形界面方面的优缺点。 ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • 探讨CUDA代码中的内联汇编指令‘ld’和‘add’为何出现参数不匹配的编译错误,并提供解决方案。 ... [详细]
  • 本文总结了Java初学者需要掌握的六大核心知识点,帮助你更好地理解和应用Java编程。无论你是刚刚入门还是希望巩固基础,这些知识点都是必不可少的。 ... [详细]
  • 【妙】bug称它为数组越界的妙用
    1、聊一聊首先跟大家推荐一首非常温柔的歌曲,跑步的常听。本文主要把自己对C语言中柔性数组、零数组等等的理解分享给大家,并聊聊如何构建一种统一化的学习思想 ... [详细]
author-avatar
手机用户2602906645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有