自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

丑恐龙的博客

完美博客哈哈哈

  • 博客(72)
  • 问答 (1)
  • 收藏
  • 关注

原创 MySQL-INNODB-事务隔离级别-MVCC

mysql的四种隔离机制-mvcc共享锁s: 加上之后, 其他线程读取只能加s锁, 不能加x锁,只能读不能修改, 直到释放s锁排它锁x:加上之后, 其他线程就不以在加锁进行读取控制, 默认写都是会加排它锁, 但对不加锁s的读就没办法限制四种隔离级别未提交读默认写会加上排它锁, 读取不会加任何锁, 所以会造成脏读已提交读默认写会加上排它锁, 读不会加锁, 但用MVCC(多版本并发工具)来控制多线程造成的脏读问题MVCC 在每次select时候都会生成一个当前最新数据的快照, 然后在此基础上读取

2020-07-07 12:45:35 239

原创 Thread Local, 内存泄漏

每个线程访问都会, 执行threadlocal.set()方法时候, 在线程自己的ThreadLocalMap中存储一份拷贝, 所以说是线程私有但可能会造成内存泄漏问题map的key是一个weakreference, 垃圾回收会自动清理, 变为null但value 是强引用, 所以会造成内存泄漏,但threadlocal,的remove()等方法会检测并且清除key为null此类entry, 消除内存泄漏...

2020-07-06 23:57:53 509

原创 CMS ---- G1

CMS整体使用标记清除算法, 所以很容易产生内存碎片, 从而引起FULL GC, 又因为FULL GC 是Serial Old 是单线程, 全部堆STW所以哼慢很卡大体步骤:1. 初始标记 标记直接能与根之间关联的对象2. 并发标记3. 重新标记 在并发标记区间可能会出现漏标等现象, 处理通过写屏障完成(就是会将写操作记录下来)4. 并发清除 由于是并发清除, 所以垃圾回收和用户线程同时产生, 所以可能会产生浮动垃圾mark 算法采用三数扫描算法1. 自己被标记, 子对象被标

2020-07-06 23:51:04 225

原创 复习~Java的内存模型

Java的JVM的内存模型大概分为下面几部分线程私有:1. 程序计数器, 相当于程序执行的行号指示器2. Java虚拟机栈, 也叫方法内存模型, 每一个方法都会创建一个栈针用来存储出口信息, 局部变量表, 操作数栈等信息3. Java本地方法栈, 为native方法服务线程共享:1. 堆, 用来存储创建的对象实体等2. 方法区 存储类的元信息, 常量池, 静态变量, -> 是一种规范, 只有在Hotspot中&java1.7之前实现体是永久区, 1.8之后是元...

2020-07-06 23:17:57 122

原创 简单总结哈,LRU+双向链表实现缓存, 和Redis的

1. Least Recently Used 最近最少使用淘汰机制, 访问一个key在map中,也就是 在内存中, 就将此页放到建表头部, , 不在内存中, (假如规定链表只能有三个节点, 当访问第四个时, 如果值不在内存中, 那就释放链表最尾部的节点, 然后将此值包装成节点, 放入头部) 就先去磁盘取. 2. 为什么不使用双向链表 使用双向链表, 每个节点会增加两个指针的空间消耗3. redis不使用链表, 那用什么结构或者属性实现LRU淘汰策略redis采用设置 ...

2020-07-02 14:28:30 310

原创 极速选课项目

极速选课项目的大概整体思路, ~

2020-06-16 18:46:22 162

原创 SSO问题

单点登录问题登录全家桶软件或者服务中的一个, 其他的就免于登录可以直接访问, 就像你登录了淘宝然后跳转天猫跳转咸鱼都不会有登录吧, 这是因为服务器隐式的验证了你的身份.说白了就是不在一个域中, 怎么实现登录一次呢, 其实就像身份证一样, 你出身之后访问派出所, 他会记录你的身份, 并生成唯一的识别ID, 派出所就是你的证人,就可以识别你的身份, 那么你去其他政府机构, 他们不确定你身份时...

2020-03-08 23:09:35 202

原创 Ajax跨域问题, 和redis缓存问题记录

首先了解域名: 域名是以英文符号“."来隔开,顶级域名是固定的,如.com/.cn/.net等等。在购买域名的时候选择自己想要的顶级域名,然后再从顶级域名左边输入自己想要注册的二级域名,组成一个完整的域名。跨域问题来自于javaScript的同源测略,只有相同主机+端口+协议的资源,才能够互相访问但为什么JavaScript会有这样的策略呢,: 因为JavaScript...

2020-03-08 22:42:15 307

原创 百度实习

首先非常感谢百度的HR小姐姐, 声音也太好听了吧, 咳咳咳, 本人是学Java开发方面, 但无奈简历是在测开部门的平台开发职位, 语言应该也是Java面面试官打电话过来, 首先做了个自我介绍第一问, 就是项目, 说介绍下你写过的两个项目. (但介绍完, 也没详细问, 应该是没啥吸引他的技术点 (因为里面包含的一些技术点, 我都在项目介绍时, 说的比较细), 应该是怕后面时间不够)然后就...

2019-12-09 18:43:11 204

原创 RabbitMQ 五种队列大纲

1. 简单队列一个生产者对应一个消费者, 有消息即取走缺点: 耦合性高, 一个消费者一 一对应一个生产者2. 工作队列改进之后, 当然是一个生产者对应多个消费者有轮询分发机制, 就是无论消费者处理业务逻辑快慢, 分发一样的消息给消费者公平分发机制, 根据消费者处理业务逻辑的代码快慢分发, 根据手动返回ACK值, 关闭自动发送问题: 返回机制防止了消息队列挂掉导致数据丢失,但服务器...

2019-11-24 15:19:20 526

原创 操作系统 - 1

什么是操作系统呢站在用户的角度就是一个控制软件, 管理用户软件, 为应用程序提供服务,对下, 就是管理资源, 管理外设, 分配资源操作系统的层次结构硬件之上应用程序之下Linux, Windows, Android的界面属于外壳shell, 而不是内核kernel并发共享虚拟异步是怎样将OS加载到内存中的呢OS是存放在DISK中的通电之后, BIOS: 检查...

2019-10-24 21:30:10 229

原创 springBoot底层自动配置原理

@SprigBootApplication十个组合注解 @SprigBootConfiguration: 配置类 @EnableAutoConfiguration: 开启自动配置 @Import(Auto....Registar.class) :spring底层导入组件的注解将主配置类所在包下面的所有自爆里面的所有组件扫描到spring容器中@EnableAuto...

2019-10-17 15:31:43 210

原创 面试 复习JVM

Java虚拟机Java编译器的输出是字节码(byteCode).字节码是一套设计用来在java运行时系统下执行的高度优化的指令集,该Java运行时系统称为Java虚拟机(Java Virtual Machine, JVM). 在其标准形式下,JVM就是一个字节码解释器.运行时数据区1 程序计数器可以看做是线程执行的字节码行号指示器2 Java虚拟机栈虚拟机描述的是Java方法执行的内存...

2019-10-11 21:12:12 119

原创 Redis 的常用数据结构

NOSQL 处理海量数据, 而不需要关系查询和完整性Redis是单线程应用程序, 占用较少的内存MongoDB需要在数据装载到实际存储之前转换为JSON文档数据格式Redis作为Web缓存用户请求Web资源 -> Web应用程序检测该资源是否存在于缓存中, 如果不存在就产生请求结果, 发回给用户, 同时缓存起来供下次请求使用三种流行方式1 出色的Web缓存层, 通过利用Redis...

2019-10-01 09:48:07 208

原创 MD5算法,运行结果与MySQL的md5()函数相同

/**写一个MD5算法,运行结果与MySQL的md5()函数相同将明文密码转成MD5密码123456->e10adc3949ba59abbe56e057f20f883e*/public final class Md5Util { private Md5Util(){} /** * 将明文密码转成MD5密码 */ public static S...

2019-09-30 19:00:05 682

原创 JavaWeb/Spring之注解/web.xml配置过滤器 Filter

过滤器实际上就是对web资源进行拦截, 做一些处理后再交给下一个过滤器或servlet处理通常都是用来拦截request进行处理的, 也可以对返回的response进行拦截处理有两种方式配置一种是web.xml 方式配置Archetype Created Web ApplicationfilterDemocom.cn.filter.FilterServlet //过滤类全限定名...

2019-09-30 18:34:52 1756

翻译 jQuery ajax - serialize() 方法

jQuery ajax - serialize() 方法http://www.w3school.com.cn/jquery/ajax_serialize.asp定义和用法serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。序列化的值可在生成 AJAX 请求时用于 URL 查...

2019-09-29 21:16:07 132

原创 旅游线路的收藏功能

数据库表的对应关系

2019-09-29 20:42:01 240

原创 分类数据展示

category分类的数据在每一次页面加载后都会重新请求数据库来加载,对数据库的压力比较大,而且分类的数据不会经常产生变化,所有可以使用redis来缓存这个数据。@Override public List<Category> findAll() { //每一次加载首页,都有从数据库去读取分类的信息 //缺点:服务器压力大 ...

2019-09-29 18:54:31 460

原创 退出模块

什么叫做登录了?session中有user对象。实现步骤:1.访问servlet,将session销毁2.跳转到登录页面代码实现:Header.htmlServlet://1.销毁sessionrequest.getSession().invalidate();//2.跳转登录页面response.sendRedirect(request.getContextPath()+"/...

2019-09-29 16:57:36 263

原创 登陆模块

3登录3.1分析3.2代码实现3.2.1前台代码3.2.2后台代码LoginServlet//1.获取用户名和密码数据Map<String, String[]> map = request.getParameterMap();//2.封装User对象User user = new User();try { BeanUtils.populate(user,...

2019-09-29 16:39:35 154

原创 "去旅游"项目 路途笔记

先分享一下源码项目源代码Travel 项目注册模块登陆模块退出模块优化Servlet分类数据展示旅游线路分类展示旅游线路名称查询旅游线路的详情展示旅游线路收藏功能技术选型1.1 Web层a) Servlet: 前端控制器b) html: 视图c) Filter: 过滤器d) BeanUtils: 数据封装e) Jackson: json序列化工具1.2 Se...

2019-09-28 17:03:07 112

原创 注册模块

恶趣味

2019-09-28 17:02:00 942

原创 Json 简单记录

json 是一种与开发语言无关的数据格式 JavaScript Object Notation基本每种语言都有处理json的API优点 : 易于人的阅读和编写{“name” : “java”,“time” : {“asd” : “sda”,“dasd”: “dsa”,}}数据结构ObjectArray基本类型stringnumbertruefalsenu...

2019-09-27 20:39:15 146

原创 实现两个数的相加求和,实现过程中不能用+运算符号

二进制加法。发现一个特点。位的异或运算跟求’和’的结果一致:异或 1^1=0 1^0=1 0^0=0求和 1+1=0 1+0=1 0+0=0位的与运算跟求’进位‘的结果一致:位与 1&1=1 1&0=0 0&0=0进位 1+1=1 1+0=0 0+0=0于是可以用异或运算和与运算来表示加法12345678910public int add...

2019-09-20 21:46:23 533

原创 范式

范式 : 符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度第一范式 :1NF 每个属性都不可再分 1NF主要强调数据表的原子性第二范式 :2NF 消除了非主属性对于码的部分函数依赖x -> y y 函数依赖于x只有当函数依赖的决定方是组合属性时, 才会有部分函数依赖, 当函数决定方是单属性时,只能是完全依赖函数2NF指每个表必须有一个也只能...

2019-09-19 19:54:17 89

原创 简化版 QQ

GitHub:chat_room 项目代码连接准备工作:1.数据源 :Druid拽~阿里数据源优点:1.降低资源消耗 2.提高响应速率 3.方便管理1.加载数据源2.获取连接 Connection3.执行SQL4.关闭资源通过继承.有重复的封装在BasedDao查询类SQLselect : executeQueryPreparedSt...

2019-09-14 21:50:47 1789

原创 数据库 ACID 自动VS手动提交

A 原子性: 一个事务(transcation)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节, 事物在执行过程中发生错误, 会被回滚(Rollback)到事务, 开始前的状态,就像这个事务从来没有执行过一样.C 一致性: 在事务开始之前和事务结束以后, 数据库的完整性没有被破坏.I 隔离性: 数据库允许多个并发事务同时对其数据进行读写和修改和修改的能力,隔离性可...

2019-09-10 20:49:26 157

原创 ArrayList 和 LinkedList 集合的搜索删除效率优化比较

ArrayList<Integer> list = new ArrayList<>(); LinkedList<Integer> linkedList = new LinkedList<>(); int i = 0; while (i < list.size()){ if (list.get(i...

2019-09-04 14:46:52 669

原创 HashMap源码解读

public V put(K key, V value) {//注意此处的hash()方法,并不是直接传key.hashCode()return putVal(hash(key), key, value, false, true);}static final int hash(Object key) { int h; //高低十六位异或是为了使结果均匀化,减少哈希碰撞 r...

2019-09-02 17:00:01 86

原创 参数绑定:

参数绑定:1: 默认的参数绑定request,response,Session2, POJO javaBean如果是POJO类型,则表单的name值一定要和POJO的属性值完全一致才能够绑定成功,即使加了@RequestParam也没有用, @RequestParam只针对8种基本属性和对象类型起作用...

2019-08-29 18:26:34 63

原创 阿里巴巴的Druid

//依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.13</version> </...

2019-08-27 21:33:32 250

原创 使用Dbcp数据源和 db.properties文件

static Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; static DataSource dataSource = null; static { //获取properties文件内容...

2019-08-27 21:19:32 284

原创 <trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim> 标签用法

prefix:在trim标签内sql语句加上前缀。suffix:在trim标签内sql语句加上后缀。suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。prefixOverrides:指定去除多余的前缀内容...

2019-08-20 23:15:21 233

原创 Mybatis的批量删除语句

<update id="modAllItems" parameterType="com.arvin.po.ItemsCustom"> <foreach collection="list" item="items" separator=";"> UPDATE items <set> ...

2019-08-20 18:30:49 350

原创 org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。

XXXX.xml 文件开头不允许有空行,删掉所有xml文件开头的空行就好.

2019-08-20 12:44:36 2910

原创 git创建远程库

1.在GitHub创建了远程仓库之后,(选推送一个构建好的项目到GitHub)得到SSH.url2.在git的bash界面输入git clone SSH.url 分为两个分支此分支为初次使用,所以要得到SSH密匙,原因也很简单如果没有ssh验证,那么不管是谁拿到你的ssh.url都可以向你推送内容.1.在终端输入 ssh-keygen -t rsa -b 4096 -C “GitHu...

2019-08-19 10:45:30 131

原创 mybatis的逆向工程插件依赖

<plugins> <!-- mybatis-generator自动生成代码插件 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-gener...

2019-08-16 21:27:03 1306 1

原创 Mybatis的延迟加载

<setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/>

2019-08-16 18:30:14 86

原创 Mybatis的二级缓存特点 配置

在sqlMapConfig.xml文件中添加<settings> <!--哇哇哇 开启二级缓存--> <setting name="cacheEnable" value="true"/> </settings>在XXXMapper.xml文件中添加(此标签有好多属性,在最下面)<cache/&gt...

2019-08-16 17:41:31 356

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除