<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[不因俊俏难为友，正为风流始读书]]></title><description><![CDATA[实践是最好的成长，发表是最好的回忆]]></description><link>https://blog.youkuaiyun.com/boxyuan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; boxyuan]]></copyright><item><title><![CDATA[Mysql数据库B+树索引，聚集索引和非聚集索引]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124817298</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124817298</guid><author>boxyuan</author><pubDate>Tue, 17 May 2022 16:38:33 +0800</pubDate><description><![CDATA[索引数据结构：二叉树：单边数据增长的情况数据查询会很慢红黑树（平衡二叉树）：单边数据增长会做平衡处理，有自动平衡功能，左子树和右子树相差绝对值<=1，缺点：随着数据量增加树高越来越高，查询速度也越来越慢B树：基于平衡二叉树每个节点放多个元素，高度即变矮hash索引：对索引的key进行一个hash运算就可以定位到数据的存储位置，大多数时比B+树索引更快，仅能满足“=” “in”，不支持范围查找，hash冲突问题
B+树：非叶子节点放索引（冗余索引，存放每一个磁盘页的第一个元素，为了构建B+树），叶子节点]]></description><category></category></item><item><title><![CDATA[对象创建过程]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124429313</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124429313</guid><author>boxyuan</author><pubDate>Tue, 26 Apr 2022 16:52:32 +0800</pubDate><description><![CDATA[对象创建过程：

判断有没有加载对象
	分配内存空间。分配方式：指针碰撞，指针列表。遇到线程安全问题怎么办？CAS+失败重试，TLAB(本地线程分配缓冲)
	初始化零值
	设置对象头
	执行init方法（属性赋值）
Java对象布局

对象头：
对象自身的运行时数据( MarkWord )32位占4个字节，64位占8个字节：对象哈希码，GC分代年龄，是否偏向锁，锁标志位
	Class Pointer类型指针：
	数组长度
实例数据
	对象对齐填充（对象寻址最优的方式）
指针压缩

禁止指针压缩(默认开启)：]]></description><category></category></item><item><title><![CDATA[Java类加载机制与JVM虚拟机内存模型]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124405604</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124405604</guid><author>boxyuan</author><pubDate>Mon, 25 Apr 2022 18:14:53 +0800</pubDate><description><![CDATA[JVM虚拟机内存模型

每个线程私有的区域：虚拟机栈，本地方法栈，程序计数器（PC寄存器）
	程序计数器：程序正在运行或马上要运行代码的内存位置。内存位置：JVM汇编里每一行前面的数字
	本地方法栈的本地方法：用c/c++实现的dll文件
	一个user对象，方法区存放的是地址，堆区存放值
	虚拟机栈里的局部变量表（slot槽，类似数组），存放程序里的局部变量
	操作数栈：程序在运行过程中操作数（变量对应的值）做运算操作的一块临时中转存放空间
	虚拟机栈：每一个方法从调用开始至执行完成的过程，都对应着一个栈]]></description><category></category></item><item><title><![CDATA[进程与线程]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124300417</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124300417</guid><author>boxyuan</author><pubDate>Wed, 20 Apr 2022 18:07:28 +0800</pubDate><description><![CDATA[进程与线程

进程是系统分配资源的基本单位，线程是调度cpu的基本单位，一个进程至少包含一个执行线程，线程寄生在进程之中。每个线程都有一个程序计数器（记录要执行的下一条指令），一组寄存器（保存当前线程的的工作变量），堆栈（记录执行历史，其中每一帧保存了一个已经调用但未返回的过程）

线程分为两类

用户级线程(ULT)，cpu权限级别ring3普通用户可操作
	内核级线程(KLT)，cpu权限级别ring0才可操作
用户空间划分

内核空间，KLT
系统核心跑在内核空间，ri...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124274751</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124274751</guid><author>boxyuan</author><pubDate>Wed, 20 Apr 2022 11:57:22 +0800</pubDate><description><![CDATA[ConcurrentHashMap

分段锁，大哈希表套小哈希表，减少竞争冲突
	put操作时上锁，每次put时强制tryLock()加锁
	Segment extends ReentrantLock(可重入锁，可以手动加锁和解锁)，每个segment占一把锁
]]></description><category></category></item><item><title><![CDATA[HashMap在JDK1.7和1.8里的区别是什么]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124165124</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124165124</guid><author>boxyuan</author><pubDate>Sat, 16 Apr 2022 21:46:26 +0800</pubDate><description><![CDATA[HashMap

get和put的时间复杂度为O(1)
	为了解决hash冲突，HashMap引入了链表
	计算数组下标并不是用取模，而是用位运算 hashcode&amp;(length-1)，位运算效率&gt;取模，因为位运算是最接近于机器所能识别的运算
	hashmap默认扩容因子0.75，最大容量2的30次方，初始容量2的4次方即16
	默认初始容量16，如果自定义初始容量必须是2的指数幂，如果不是，则强行转换为大于这个数的2的最小指数幂。
	


为什么要转换成2的指数幂？

减少哈希碰撞，为了.]]></description><category></category></item><item><title><![CDATA[jdk1.8和1.7主要区别]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124149186</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124149186</guid><author>boxyuan</author><pubDate>Wed, 13 Apr 2022 15:36:41 +0800</pubDate><description><![CDATA[jdk1.8和1.7主要区别]]></description><category></category></item><item><title><![CDATA[使用存储过程和for循环往mysql批量插入数据]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124134133</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124134133</guid><author>boxyuan</author><pubDate>Tue, 12 Apr 2022 20:59:26 +0800</pubDate><description><![CDATA[使用存储过程和for循环往mysql批量插入数据]]></description><category></category></item><item><title><![CDATA[常用sql优化方法，索引失效场景，explain执行计划]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124131524</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124131524</guid><author>boxyuan</author><pubDate>Tue, 12 Apr 2022 19:18:05 +0800</pubDate><description><![CDATA[常用sql优化方法

禁止使用select *，只查询出需要用到的字段
	尽量减少表关联
	合理使用索引
	联合索引遵循最左前缀法
	使用执行计划explain查看sql执行信息是否走索引
	避免回表（覆盖索引）
	分页查询优化
索引失效场景


...]]></description><category></category></item><item><title><![CDATA[HashMap 和 HashTable的区别？]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/124130391</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/124130391</guid><author>boxyuan</author><pubDate>Tue, 12 Apr 2022 18:15:39 +0800</pubDate><description><![CDATA[HashMap 和 HashTable的区别]]></description><category></category></item><item><title><![CDATA[使用jQuery实现全选，反选]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/79053622</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/79053622</guid><author>boxyuan</author><pubDate>Sat, 13 Jan 2018 20:45:05 +0800</pubDate><description><![CDATA[状态
					用户名
				
			
			
				
					
					赵
				
				
					
					钱
				
				
					
					孙
				
				
					
					李
				
				
					
					周
				
			
			
				
					
						 全选
					
					
						
					
				
	]]></description><category></category></item><item><title><![CDATA[jQuery九类选择器（三）]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/79039388</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/79039388</guid><author>boxyuan</author><pubDate>Thu, 11 Jan 2018 22:58:33 +0800</pubDate><description><![CDATA[广东
		  湖南
		  湖北
	  
		
	
	
	
	
	
	
		//1)查找所有可用的input元素的个数
		//alert( $("input:enabled").size() );
		
	 	//2)查找所有不可用的input元素的个数
		//alert( $("input:disabled").size() );
	 	
	 	//3)查找所有选中的复选框元素的个数
		/]]></description><category></category></item><item><title><![CDATA[Query九类选择器（二）]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/79039378</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/79039378</guid><author>boxyuan</author><pubDate>Thu, 11 Jan 2018 22:56:25 +0800</pubDate><description><![CDATA[Option
	    
	    Button
	
	
	
	
		//1)查找所有input元素的个数
		//alert( $("input").size() );//10，找input标签
		//alert( $(":input").size() );//13，找input标签和select/textarea/button
			
	  	//2)查找所有文本框的个数
	  	//ale]]></description><category></category></item><item><title><![CDATA[jQuery九类选择器（一）]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/79039352</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/79039352</guid><author>boxyuan</author><pubDate>Thu, 11 Jan 2018 22:51:51 +0800</pubDate><description><![CDATA[test3
		
		
			body {
				color: lightseagreen;
				text-align: center;
			}
			
			.myClass {
				font-size: 44px;
				color: blue
			}
		
		
	

	
		
		div1
		div2
		divClass
		
		
		
			
			
				
		]]></description><category></category></item><item><title><![CDATA[javascript对象对应的ajax对象]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/79028910</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/79028910</guid><author>boxyuan</author><pubDate>Wed, 10 Jan 2018 22:09:29 +0800</pubDate><description><![CDATA[//js对象转为ajax对象
var divVar=document.getElementById("butID");
var ajaxDiv=$(divVar);
alert(ajaxDiv.val());
//ajax对象转为js对象
var butV=$("#divID");
var ele=butV.get(0);
alert(ele.innerHTML);]]></description><category></category></item><item><title><![CDATA[使用ajax+json+struts实现省份下拉框二级联动]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/78886552</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/78886552</guid><author>boxyuan</author><pubDate>Sun, 24 Dec 2017 19:15:19 +0800</pubDate><description><![CDATA[前台jsp页面





My JSP 'provincecityarea.jsp' starting page



	
		选择省份
		河南
		上海
		杭州
	

	
		选择城市
	

	
		选择区域
	

<!--
     	省份>城市
     -->

	document.getElementById("provinceID").onchange = function() ]]></description><category></category></item><item><title><![CDATA[json初识]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/78884926</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/78884926</guid><author>boxyuan</author><pubDate>Sun, 24 Dec 2017 14:27:02 +0800</pubDate><description><![CDATA[My JSP 'MyJson.jsp' starting page



	
	


	var json = {
		id : 1,
		name : "ss",
		age : 25
	};
	var jsonArray = [ {
		id : 1,
		name : "ss",
		age : 25
	}, {
		id : 2,
		name : "saa",
		age : 25
	},]]></description><category></category></item><item><title><![CDATA[使用Ajax实现对验证码验证提示（struts+jsp+Ajax）]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/78884227</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/78884227</guid><author>boxyuan</author><pubDate>Sun, 24 Dec 2017 11:52:20 +0800</pubDate><description><![CDATA[image.jsp：验证码图片生成


<%!
	public Color getColor(){
		Random random = new Random();
		int r = random.nextInt(256);//0-255
		int g = random.nextInt(256);
		int b = random.nextInt(256);
		return new Colo]]></description><category></category></item><item><title><![CDATA[使用Ajax实现登录验证]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/78876933</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/78876933</guid><author>boxyuan</author><pubDate>Fri, 22 Dec 2017 21:24:09 +0800</pubDate><description><![CDATA[get提交方式：

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"
	contentType="text/html; charset=utf-8"%>



	
		My JSP 'loginAjax.jsp' starting page
		
			body {
				text-align: center]]></description><category></category></item><item><title><![CDATA[登录表单JS静态验证]]></title><link>https://blog.youkuaiyun.com/boxyuan/article/details/78251564</link><guid>https://blog.youkuaiyun.com/boxyuan/article/details/78251564</guid><author>boxyuan</author><pubDate>Mon, 16 Oct 2017 16:54:53 +0800</pubDate><description><![CDATA[My JSP 'login3.jsp' starting page

 function checkForm()
{
var name=document.getElementById("username");
var pwd=document.getElementById("pwd");
if(name.value=='')
{
document.getElementById("usernamet]]></description><category></category></item></channel></rss>