<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bhtj27的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bhtj27</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bhtj27]]></copyright><item><title><![CDATA[纯干货，Spring-data-jpa详解，全方位介绍]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/77895803</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/77895803</guid><author>bhtj27</author><pubDate>Fri, 08 Sep 2017 15:57:24 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/dreamroute/p/5173896.html




本篇进行Spring-data-jpa的介绍，几乎涵盖该框架的所有方面，在日常的开发当中，基本上能满足所有需求。这里不讲解JPA和Spring-data-jpa单独使用，所有的内容都是在和Spring整合的环境中实现。如果需要了解该框架的入门，百度一下，很多入门的介绍。在这篇文]]></description><category></category></item><item><title><![CDATA[java学习笔记（5）-HashSet类]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/77280279</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/77280279</guid><author>bhtj27</author><pubDate>Wed, 16 Aug 2017 22:22:56 +0800</pubDate><description><![CDATA[1.HashSet介绍
HashSet基于Set接口的实现，内部存储数据是用的HashMap，其操作都是基于HashMap的


2.几个重要的参数
private transient HashMap map;//内部存储数据
private static final Object PRESENT = new Object();//构造一个空虚拟的对象
    public HashS]]></description><category></category></item><item><title><![CDATA[java学习笔记（4）-Hashtable类]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/77091930</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/77091930</guid><author>bhtj27</author><pubDate>Fri, 11 Aug 2017 10:42:35 +0800</pubDate><description><![CDATA[1.几个变量值：
private transient Entry[] table;
private transient int count;
private int threshold;
private float loadFactor;
private transient int modCount = 0;
对比上一篇介绍的HashMap，这几个变量表达的意思基本上差不多


2.构造]]></description><category></category></item><item><title><![CDATA[java学习笔记（3）-HashMap类]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76933379</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76933379</guid><author>bhtj27</author><pubDate>Tue, 08 Aug 2017 19:24:14 +0800</pubDate><description><![CDATA[1.HashMap介绍
HashMap基于哈希表的 Map 接口的实现。可使用 null 值和 null 键。（除了不同步和允许使用 null 之外，HashMap 类与 Hashtable 大致相同。）此类不保证映射的顺序，特别是它不保证该顺序恒久不变。

值得注意的是HashMap不是线程安全的，如果想要线程安全的HashMap，可以通过Collections类的静态方法synchron]]></description><category></category></item><item><title><![CDATA[java学习笔记（2）-ArrayList类]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76915757</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76915757</guid><author>bhtj27</author><pubDate>Tue, 08 Aug 2017 16:19:02 +0800</pubDate><description><![CDATA[1.为了方便查看我把源码几个方法和变量复制出来了
package com.itao.study.study2;

public class ArrayList {
	
	private static final int DEFAULT_CAPACITY = 10;
	private static final Object[] EMPTY_ELEMENTDATA = {};
	private st]]></description><category></category></item><item><title><![CDATA[redis安装]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76854008</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76854008</guid><author>bhtj27</author><pubDate>Mon, 07 Aug 2017 17:24:14 +0800</pubDate><description><![CDATA[官网下载安装包
1.安装部分


编译安装
tar -zxvf /usr/redis
cd /usr/redis/redis-4.0.1
make


启动redis-server
cd /usr/redis/redis-4.0.1/src
./redis-server


测试是否正常启动
ps -ef | grep redis
netstat -tupln]]></description><category></category></item><item><title><![CDATA[java学习笔记（1）-Object类]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76850289</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76850289</guid><author>bhtj27</author><pubDate>Mon, 07 Aug 2017 15:59:17 +0800</pubDate><description><![CDATA[以下系列笔记都是基于jdk1.8
首先看下Object类的源码，其方法如下：
	private static native void registerNatives();
	static {
        registerNatives();
    }
	
	public final native Class getClass();
	public native int hashCode(]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（9）-性能监控]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76835267</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76835267</guid><author>bhtj27</author><pubDate>Mon, 07 Aug 2017 13:52:21 +0800</pubDate><description><![CDATA[1.linux下命令：
uptime 
top
vmstat  vmstat  1   4   ：每秒钟采样一次总共采样4次


windows下的命令：
perfmon
pslist


2.jps命令：虚拟机进程状况工具
命令：jps   [options]   [hostid]
如果不指定hostid默认当前主机或服务器，命令行参数如下：




3.js]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（8）-锁优化技术]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76762078</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76762078</guid><author>bhtj27</author><pubDate>Sun, 06 Aug 2017 11:36:29 +0800</pubDate><description><![CDATA[1.几个概念：
（1）对象头（Mark Word）：
在Hotspot虚拟机中，对象在内存中的存储布局分为三块区域：对象头，实例数据、对其填充
对象头包含两部分信息：一是用于存储对象自身的运行时数据，如哈希码、GC分代年龄、锁状态标识、线程持有的锁、偏向线程ID、偏向时间戳等；
对象头的另一部分是；类型指针，即对象指向它的类的元数据的指针，虚拟机通过这个指针来确定这个对象是哪个实例。如果对]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（7）-字节码执行引擎]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76713891</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76713891</guid><author>bhtj27</author><pubDate>Sat, 05 Aug 2017 11:38:13 +0800</pubDate><description><![CDATA[1.运行时栈帧
栈帧是用于支持虚拟机进行方法调用和方法执行的数据结构，是虚拟机运行时数据区中的虚拟机栈的栈元素。
栈帧中存储了方法的局部变量表、操作数栈、动态链接和方法的返回地址等信息。
每一个方法从调用开始到执行完成，都对应一个栈帧在虚拟机里面的入栈和出栈
在编译的时候栈帧需要多大的局部变量表、多深的操作数栈都已经确定了，并写入到方法表的Code属性中。


一个线程中的方法调用链]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（6）-类加载机制]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76667271</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76667271</guid><author>bhtj27</author><pubDate>Fri, 04 Aug 2017 10:34:40 +0800</pubDate><description><![CDATA[1.类的生命周期
虚拟机吧描述类的数据从Class文件加载到内存，并对数据进行校验、转换、解析、初始化，最终形成可以被虚拟机直接使用的java类型，这就是虚拟机的类加载机制。


与其他在编译时进行连接工作的语言不同，java语言中，类型的加载、连接、初始化都是在程序运行期间完成的，故java可以动态加载和动态连接的特点




类从被加载到虚拟机内存中开始，到卸载为止，整个生命]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（5）-JVM参数]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76599216</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76599216</guid><author>bhtj27</author><pubDate>Wed, 02 Aug 2017 22:08:17 +0800</pubDate><description><![CDATA[1.调试相关参数
-XX:+PrintGCDetails 打印GC详细信息
-XX:+PrintGC 打印GC


-XX:+PrintHeapAtGC 每次GC前后打印堆信息

-XX:+PrintClassHistogram 按下ctrl+break后输出类统计信息


-XX:+OnOutOfMemoryError 虚拟机内存溢出时指定指定的命令
-XX:+OnErro]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（2）-JVM部分异常情况]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76385452</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76385452</guid><author>bhtj27</author><pubDate>Tue, 01 Aug 2017 10:30:47 +0800</pubDate><description><![CDATA[在java虚拟机中除了程序计数器外，其他的区域都是可能发生OutOfMemoryError的（OOM）
一下所有例子都是基于jdk1.8


1.Java堆溢出










2.虚拟机栈和本地方法栈溢出
-Xss可以设置栈的深度
如果线程请求栈的深度大于虚拟机中所允许的最大深度将抛出StackOverFlowError异常；
如果虚拟机在扩展栈是没法申请]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（4）-内存分配与回收策略]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76447626</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76447626</guid><author>bhtj27</author><pubDate>Mon, 31 Jul 2017 16:10:18 +0800</pubDate><description><![CDATA[在这里由于我的jdk环境是1.8的，JVM内存布局与1.7有很大的不同：
jdk1.7以及之前的java类信息，静态变量，常量池均保存在永久代中（Perm），类的元数据和静态变量在类加载的时候分配到 Perm，当类被卸载的时候垃圾收集器从 Perm 处理掉类的元数据和静态变量。当然常量池的东西也会在 Perm 垃圾收集的时候进行处理。
JDK 1.8 的对 JVM 架构的改造将类元数据放到本地]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（3）-垃圾收集]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76400652</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76400652</guid><author>bhtj27</author><pubDate>Sun, 30 Jul 2017 17:51:00 +0800</pubDate><description><![CDATA[1.GC回收的是方法区和堆区的内存空间
jvm把内存区域分为5个部分，线程共有的方法区和堆，线程私有的虚拟机栈、本地方法栈、程序计数器
线程私有的内存空间在线程消亡的时候内存自动回收，垃圾回收（GC：Garbage Collection）的主要是指线程共有的方法区和堆区部分
GC在回收前首先要判断对象是否存活


2.判断对象是否存活
（1）引用计数法：
一种古老的判断对象是否存活]]></description><category></category></item><item><title><![CDATA[JVM学习笔记（1）-虚拟机内存]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76376424</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76376424</guid><author>bhtj27</author><pubDate>Sun, 30 Jul 2017 11:25:18 +0800</pubDate><description><![CDATA[1.Java内存分布
Java程序运行的时候会向操作系统申请内存，这部分内存称为虚拟机内存，这部分内存包含以下几个区域






线程共有部分有：方法区和堆，这里是主要涉及到多线程同步问题的区域
线程私有部分：虚拟机栈，本地方法栈，程序计数器
（1）方法区：线程共享，主要用来存放虚拟机加载的类信息、常量、静态变量。也称之为永久区，设置参数有 -XX:MaxPermSize  ]]></description><category></category></item><item><title><![CDATA[JMS学习笔记（2）-ActiveMQ实现]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76294122</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76294122</guid><author>bhtj27</author><pubDate>Sat, 29 Jul 2017 10:29:58 +0800</pubDate><description><![CDATA[JMS采用ActiveMQ实现消息发送和接收]]></description><category></category></item><item><title><![CDATA[JMS学习笔记（1）- 基本概念]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/76129544</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/76129544</guid><author>bhtj27</author><pubDate>Wed, 26 Jul 2017 10:50:22 +0800</pubDate><description><![CDATA[参照：http://docs.oracle.com/javaee/6/tutorial/doc/bncdx.html


1.JMS整体结构：




2.JMS两种消息模型：
（1）point-to-point模型，有三个特点如下：




架构示意图如下




（2）Public/Subscribe模型，两个特点如下：




架构示意图如下：]]></description><category></category></item><item><title><![CDATA[linux开启两个tomcat]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/72237929</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/72237929</guid><author>bhtj27</author><pubDate>Tue, 16 May 2017 11:27:11 +0800</pubDate><description><![CDATA[1.修改tomcat/conf下server.xml文件端口号：
主要有如下下面三个：
将Server port="8005" 改为9005
将Connector port="8080"改为9080
另一个Connector port="8009" 改为9009












2.如此先启动一下tomcat，发现启动不了




3.修改tom]]></description><category></category></item><item><title><![CDATA[tomcat7吗默认JVM设置]]></title><link>https://blog.youkuaiyun.com/bhtj27/article/details/71601073</link><guid>https://blog.youkuaiyun.com/bhtj27/article/details/71601073</guid><author>bhtj27</author><pubDate>Thu, 11 May 2017 10:17:56 +0800</pubDate><description><![CDATA[1.首先进入tomcat主目录，conf/tomcat-user.xml
添加用户如下：




2.打开tomcat控制台，点Server Status




3.输入第一步设置的用户名和密码：]]></description><category></category></item></channel></rss>