自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xyh的博客

我是慧慧,这是我的学习笔记

原创 Spring源码2 Bean标签的解析

文章目录Bean的属性和子元素Bean常用属性Bean常用子元素 Bean的属性和子元素 属性: 可以和bean写在一个尖括号’<>'里面的,例如:下面bean标签中的class就是bean的属性。 <bean id="myTestBean" cla...

2019-11-24 17:57:08 54 0

原创 Spring源码1 配置文件的读取

本文的内容是读郝佳的《Spring源码深度解析》后结合自己的思路,摘抄整理的笔记。 文章目录入门实例配置文件的封装 入门实例 书中通过一个最简单入门实例,对配置文件的加载、配置文件中标签的解析、bean的加载部分的源码进行了剖析。书中的例子是基于XmlBeanFactory来创建BeanFacto...

2019-11-24 13:32:25 83 0

原创 logstash实现mysql数据库表实时同步

logstash使用最多的场景是收集日志、文件、或jdbc等常用的数据源,将数据同步到ElasticSearch中,其实logstash功能跟强大,可以在很多数据源之间进行同步,本文就是利用logstash实现mysql数据库表之间的数据。(实例:数据库DB1中的表A有添加或者修改,数据库DB2中...

2019-09-23 14:36:34 1061 9

原创 靠谱(顶尖咨询师教你工作的基本功)读书笔记

1. 沟通技巧 1.1 先讲结论 先讲结论,再讲原因,再讲事例,然后重新强调结论。 PREP法则:Point——>Reason——>Example——>Point 先说结论----结论意味着清晰,明确的观点指向行动。 再讲理由----分别陈述原因,数据与事实更...

2019-09-08 20:04:34 256 0

原创 Java并发偏向锁、轻量级锁、重量级锁、synchronized和volatile的实现原理

读Java并发编程的艺术学习整理。 1. 上下文切换 CPU通过给每个线程分配CPU时间片来实现这个机制。时间片是CPU分配给各个线程的时间,因为时间片非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几十毫秒(ms)。 CPU通过时间片分配算法来循环执行...

2018-11-28 11:47:03 663 1

原创 深入理解Java虚拟机(四)Eden、Survivor、老年代、GC日志

指发生在新生代的垃圾收集动作,Minor GC非常频繁,<b>新生代采用复制算法</b>,一般回收速度也比较快。因为采用复制算法,所以年轻代分为三部分:**1个Eden区和2个Survivor区(分别叫From和To)**,默认比例为8:1。GC的流程如下

2018-11-23 16:58:29 2930 0

原创 OpenGL中涉及到的矩阵变换

文章目录1、局部坐标系2、世界坐标系2.1 为什么要用矩阵?2.2 模型矩阵(Model Matrix)3、视图坐标系3.1 视图坐标系的定义3.2 视图矩阵4、投影坐标系5、屏幕坐标系 先看两个问题: 我们有什么?答:模型的初始位置坐标(三维坐标)。 我们要得到什么?答:我想要把模型展...

2018-11-04 20:56:33 4758 0

原创 OpenGL开发关于VAO和VBO的理解

先创建窗口: public class Demo01_open_window { public static void main(String[] args){ glfwInit();//初始化 glfwWindowHint(...

2018-10-24 23:14:42 2045 0

原创 正则表达式(一)彻底理解正则表达式的元字符

正则表达式分为元字符和文字。正则表达式的元字符拥有非常强大的描述能力。 行的起始和结束 脱字符号^(代表一行的开始) 美元符号$(代表一行的结束) ^cat //匹配以cat开头的行 cat$ //匹配以cat结尾的行...

2018-08-25 14:06:27 1137 3

原创 深入理解Java虚拟机(三)HotSpot算法和垃圾收集器

前面介绍了对象存活判定算法和垃圾收集算法,在HotSpot虚拟机上实现这些算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。 枚举根节点(可达性分析算法的实现) GC Roots根节点的选择:可作为GC Roots的节点主要在全局性的引用(例如常量或类静态属性)与执...

2018-07-30 10:59:59 180 0

原创 深入理解Java虚拟机(二)垃圾收集算法

JVM讨论的需要垃圾回收的区域主要是指堆内存和方法区。 因为:程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知。因此这几个区域的内存分配和回收都具备...

2018-07-28 13:53:21 178 0

原创 深入理解Java虚拟机(一)内存区域分布

Java虚拟机的内存分布

2018-07-07 23:48:01 221 1

原创 Java NIO(一)从操作系统角度对比IO与NIO的对比

传统IO 先来看一下FileInputStream调用read()方法后,底层都做了什么操作。 FileInputStream in = new FileInputStream(file); byte bytes[] = new byte[1024]; in.read(contentByte)...

2018-07-03 16:11:38 1682 0

原创 指针与数组(笔记)

指针 指针是一种保存变量地址的变量。 指针是能够存放一个地址的一组存储单元(通常是两个或者4个)。 通常的机器都有一些列连续编号或编址的存储单元,这些单元可以单个操纵,也可以以连续成组的方式操纵。char占一个字节,short占两个连续字节。 一元运算符&amp;用来取一个对...

2018-03-12 13:05:19 137 0

原创 c语言在内存中的分布

参考文章https://www.cnblogs.com/yif1991/p/5049638.html 存储时结构 首先写一个c语言版的Hello World #include &amp;lt;stdio.h&amp;gt; void main() { prin...

2018-03-12 13:05:05 5176 2

原创 Java中的hashCode方法以及对HashMap的影响

1.Map是否能用自定义对象来做key,如果能,有什么要求? 答:只要能保证key的唯一性就可以做key,首先看一下HashMap和TreeMap在添加元素时是如何保证key的唯一性的? HashMap HashMap底层的数据结构,是数组加单链表.jdk源码: ...

2017-07-07 16:57:53 345 0

原创 elasticsearch笔记_多字段搜索(六)

多字符串对应多字段 多字符串是最简单的一种,例如,搜索标题是 War and Peace ,作者是Leo Tolstoy ,直接用bool连接两个match查询即可.(这里面War and Peace和Leo Tolstoy就是多字符串,title和author是多字段) GET /_sear...

2017-05-15 17:20:48 4598 0

原创 单链表

链表 链表是一个可以把一组内存串联在一起的数据结构,每一块内存被叫做结点,每个结点不光存储数据本身,还需要存储下一个节点的引用。最后一个结点指向NULL。 代码实现 定义单链表时,通过头结点(链表的第一个结点)来定义,拿到了头结点的引用就相当于拿到了链表。 添加 如果头结点为NULL,将新...

2020-05-15 00:24:51 31 0

原创 Java自定义注解

注解可以作用在类、接口、属性、方法等,主要用于: 制定一些规范。 提取属性的值。 给属性、参数设置一些默认值。 设置描述信息。 1.自定义注解MyAnnotation的使用实例: MyAnnotation: @Documented @Target(ElementType.FIELD) @Ret...

2019-11-24 21:28:39 51 0

原创 提交项目到github(git命令+idea操作)

提交项目分为三步部分: 第一步:在本地创建git仓库。 第二步:在github官网上创建仓库(repository)。 第三步:将本地仓库与github上的仓库关联在一起。 第四步:提交。 下面对每一步进行说明: 第一步:在本地创建git仓库 项目结构如下,如果需要将springStudy目录下的...

2019-10-19 22:43:32 79 0

原创 springMVC配置Mybatis多数据源

jdbc.properties #mid数据源 mid.database.connecturl=jdbc:mysql://IP:3306/DB1?serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf8&u...

2019-09-24 21:52:07 35 0

原创 windows查看杀死指定端口

cmd打开终端 查看8080端口命令 netstat -aon|findstr "8080" //查看 找到对应的进程号,杀死 taskkill /pid 4136-t -f

2019-08-30 12:11:05 52 0

原创 linux Java环境变量配置

JAVA_HOME=/usr/local/jdk1.8.0_171 PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib export JAVA_HOME CLASSPATH...

2019-08-26 11:48:36 35 0

原创 Ibatis相关配置

举例:候选人,候选人包含若干个教育经历,候选人表和教育经历表示外键关联的关系。 候选人javaBean: public class EXCandidate { //邮箱 public String email; ///教育经历 public List<E...

2019-03-28 16:51:37 71 0

原创 idea配置tomcat控制台输出日志乱码

idea配置tomcat控制台输出日志乱码 检查tomcat配置: 第一步:在ideai右上角找到Edit Configuration 第二步:在VM options后面加上-Dfile.encoding=UTF-8 tomcat目录下的conf目录下的server.xml中是否写了...

2019-03-28 16:35:48 2849 0

原创 web开发中小错误整理

一、http请求返回错误码415 如果请求参数使用的是json对象参,就检查一下在请求头header中是否加了Content-Type=application/json 二、sql随机查询指定条数的记录 例如:在符合条件的查询结果中随机抽取两条记录。 SELECT * FROM stu w...

2019-03-27 22:31:34 63 0

原创 Java递归获取文件夹下全部文件

public static void getFiles(String path,ArrayList&lt;File&gt; list) throws Exception { //目标集合fileList File file = new File(pa...

2019-03-18 15:04:18 1184 1

原创 Js创建对象

文章目录1、Js创建对象常用的两种方式1.1 new + 构造函数1.2 字面量2、Js创建对象的其他方式 1、Js创建对象常用的两种方式 1.1 new + 构造函数 构造函数和普通函数的区别, var person = new Object(); person.name =...

2019-01-17 11:30:19 64 0

原创 Js对象原型链prototype

1.什么是原型链? 无论什么时候,只要创建了一个新函数,就会根据一组特定的规则为该函数创建一个 prototype属性,这个属性指向函数的原型对象。在默认情况下,所有原型对象都会自动获得一个constructor(构造函数)属性,这个属性包含一个指向 prototype 属性所在函数的指针。 ...

2019-01-17 10:44:02 97 0

原创 Js函数Function类型以及apply()和call()

文章内容是读“JavaScript高级程序设计”的笔记。 函数其实也是一个对象,每个函数都是Function类型的一个实例,与其他引用类型一样具有属性和方法。由于函数是对象,因此函数名称实际上是一个指向函数的指针。 一、定义函数的几种方式:例如我们以返回两个数值的和为例。 函数声明:这种...

2019-01-15 16:26:49 347 0

原创 Js对象属性的相关操作

文章目录1. 最常用的js对象是字面量形式的对象2. 对js对象的属性常用操作3. 定义属性Object.defineProperty()4. 定义多个属性Object.defineProperties()5. 读取属性的描述对象Object.getOwnPropertyDescriptor() ...

2019-01-09 13:21:54 1993 0

原创 Js数组Array的特点以及操作方法

js的数组的每个位置可以保存任意类型的数据。 1. Array创建的两种方式 创建数组的方式和创建Object引用类型的两种方式一样: new Array() 字面量

2018-12-30 15:30:56 262 0

原创 Js的操作符的特殊规则

下图是Js中涉及到的操作符整理,由于JS是一门弱类型的脚本语言,所以不同类型的变量再使用不同操作符适,会有一些特殊的规律。后面将对一些有规则的操作符进行整理。 操作符的特殊规则 1. 一元操作符:只能操作一个值得操作符叫做一元操作符。包括++或--的前置和后置的使用、以及+或-在操作一个值...

2018-12-26 00:47:56 294 0

原创 Js的数据类型以及相关函数

下图是js的数据类型导图,后面是重点类型的相关介绍: 上图中部分数据类型的说明 1. undefined:在使用var声明变量声明但未对其初始化时,这个变量的值就是undefined. var msg; alert(msg);//声明但未初始化,结果是undefined alert...

2018-12-23 21:14:34 105 0

原创 Vue对比传统模板渲染实现局部刷新

一、dom局部刷新流程 请求后台数据(一般用Ajax)。 将数据加载到template模板。 将模板渲染输出的html结果放到需要刷新的dom节点中。 上面第2步中提到的模板渲染框架有很多,例如underscore.js库等,但是核心流程都是获取后端的数据,按照一定的规则加载到...

2018-12-21 21:05:11 2228 0

原创 Mysql或Mariadb本地可以登录无法远程登录

一、use mysql使用系统数据库mysql。 二、查询user表: SELECT user, host from user; 结果如下: root用户对应的主机是127.0.0.1,说明只能本地访问。 三、修改 update user set host='%�...

2018-12-18 11:02:40 387 0

转载 linux中bin和sbin目录的主要区别

bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。 /usr/bin:主 要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdr...

2018-12-17 19:22:50 724 0

原创 JavaScript获取url的参数

function getParam(keyName){ var currentPara = {} var hash = window.location.search.substr(1); var split = hash.split("&amp...

2018-12-12 17:41:31 66 0

原创 Java中String类部分源码分析以及常见面试考点

Java面试中涉及到的面试题,最容易出错的就是各种字符串和String对象之间以及与其自身的比较、拼接、==、equals等。如果没有阅读String的源码,可能很多程序的运行结果与预想的结果不一致时,主要是因为String类对equals方法、hashCode方法、compareTo方法等进行了...

2018-12-05 04:04:09 262 0

原创 HashMap由并发引起的链表死循环

关于HashMap的结构介绍参考这篇文章 在java1.8之前的HashMap是基于数组+链表的形式实现,所以在并发时出现死循环的情况还是比较常见的。 重现死循环的情况 假设现在有两个线程Thread1和Thread2,Thread1执行在执行HashMap的扩容过程时,当扩容没有完成就被C...

2018-12-03 18:41:12 900 0

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