<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Genius_Ge的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Genius_Ge</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Genius_Ge]]></copyright><item><title><![CDATA[编辑 Java 中的事务 — JDBC 事务和 JTA 事务]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648106</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648106</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 14:07:06 +0800</pubDate><description><![CDATA[原文出处： hollischuang

我的博客中曾经关于事务有过很多讨论，之前的事务介绍基本都是数据库层面的事务，本文来介绍一下J2EE中和事务相关的内容，在阅读本文之前，希望读者对分布式有一定的了解。

关于事务的基础知识这里不再详细介绍，想要了解的同学可以在我的博客中阅读相关文章。

Java事务的类型有三种：JDBC事务、JTA(Java Transaction API)事务、]]></description><category></category></item><item><title><![CDATA[Java 泛型详解]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648099</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648099</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 14:06:13 +0800</pubDate><description><![CDATA[原文出处： ZIWENXIE

泛型是Java中一个非常重要的知识点，在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计，将会涉及到通配符处理，以及让人苦恼的类型擦除。

泛型基础

泛型类

我们首先定义一个简单的Box类：







1

2

3

4

5




public

class ]]></description><category></category></item><item><title><![CDATA[JVM 垃圾回收算法及回收器详解]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648067</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648067</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 14:03:45 +0800</pubDate><description><![CDATA[原文出处： ZIWENXIE

本文主要讲述JVM中几种常见的垃圾回收算法和相关的垃圾回收器，以及常见的和GC相关的性能调优参数。

GC Roots

我们先来了解一下在Java中是如何判断一个对象的生死的，有些语言比如Python是采用引用计数来统计的，但是这种做法可能会遇见循环引用的问题，在Java以及C#等语言中是采用GC Roots来解决这个问题。如果一个对象和GC Root]]></description><category></category></item><item><title><![CDATA[Java线程面试题 Top 50]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648053</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648053</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 14:02:29 +0800</pubDate><description><![CDATA[本文由 ImportNew - 李
 广 翻译自 javarevisited。欢迎加入翻译小组。转载请见文末要求。

不管你是新程序员还是老手，你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持，让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验，所以线程相关的问题在面试中]]></description><category></category></item><item><title><![CDATA[Java HashMap 遍历方式性能探讨]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648036</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77648036</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 14:01:29 +0800</pubDate><description><![CDATA[原文出处： Hosee

关于HashMap的实现这里就不展开了，具体可以参考JDK7与JDK8中HashMap的实现

JDK8之前，可以使用keySet或者entrySet来遍历HashMap，JDK8中引入了map.foreach来进行遍历。

原因：


keySet其实是遍历了2次，一次是转为Iterator对象，另一次是从hashMap中取出key所对应的value。]]></description><category></category></item><item><title><![CDATA[循环队列的实现]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77647843</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77647843</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 13:41:36 +0800</pubDate><description><![CDATA[一. 顺序循环队列的描述

在上一篇文章中已经讲了顺序队列，因为顺序队列会出现假溢出问题，所以实际应用中更多使用的是顺序循环队列，顺序循环队列把顺序队列的存储单元在逻辑上构成一个首尾相连的循环队列。顺序循环队列在以下几个方面对顺序队列做了改动。
1. 队头，队尾下标按照循环规律变化
队头front，队尾rear分别按照如下规律变化，其中length表示数组的长度。
front=(fron]]></description><category></category></item><item><title><![CDATA[Spring Boot入门]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77628466</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77628466</guid><author>Genius_Ge</author><pubDate>Mon, 28 Aug 2017 08:42:04 +0800</pubDate><description><![CDATA[1. spring Boot 入门 
Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务，让更多人的人更快的对Spring进行入门体验，让Java开发也能够实现Ruby
 on Rails那样的生产效率。为Spring生态系统提供了一种固定的、约定优于配置风格的框架。 
Spring Boot具有如下特性：


]]></description><category></category></item><item><title><![CDATA[Mysql插入语句之value与values区别]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152318</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152318</guid><author>Genius_Ge</author><pubDate>Mon, 14 Aug 2017 08:51:13 +0800</pubDate><description><![CDATA[value与values区别





http://dev.mysql.com/doc/refman/5.7/en/insert.html


看了一下官方文档，VALUE与VALUES都是正确的，经过验证，这两个也是可以混合着用的，只是两者对不同语句插入数量的执行效率各不相同。

VALUE插入一行






VALUES插入一行





可]]></description><category></category></item><item><title><![CDATA[Java 代码性能优化]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152244</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152244</guid><author>Genius_Ge</author><pubDate>Mon, 14 Aug 2017 08:40:24 +0800</pubDate><description><![CDATA[代码优化，一个很重要的课题。可能有些人觉得没用，一些细小的地方有什么好修改的，改与不改对于代码的运行效率有什么影响呢？这个问题我是这么考虑的，就像大海里面的鲸鱼一样，它吃一条小虾米有用吗？没用，但是，吃的小虾米一多之后，鲸鱼就被喂饱了。
代码优化也是一样，如果项目着眼于尽快无BUG上线，那么此时可以抓大放小，代码的细节可以不精打细磨；但是如果有足够的时间开发、维护代码，这时候就必须考虑每个可以优]]></description><category></category></item><item><title><![CDATA[JAVA中的静态代理、动态代理以及CGLIB动态代理]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152227</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152227</guid><author>Genius_Ge</author><pubDate>Mon, 14 Aug 2017 08:39:12 +0800</pubDate><description><![CDATA[代理模式是java中最常用的设计模式之一，尤其是在spring框架中广泛应用。对于java的代理模式，一般可分为：静态代理、动态代理、以及CGLIB实现动态代理。
对于上述三种代理模式，分别进行说明。
1.静态代理
静态代理其实就是在程序运行之前，提前写好被代理方法的代理类，编译后运行。在程序运行之前，class已经存在。
下面我们实现一个静态代理demo:

静态代理

定义一个]]></description><category></category></item><item><title><![CDATA[一个给 Java 程序员用的 Api 文档生成工具]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152206</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152206</guid><author>Genius_Ge</author><pubDate>Mon, 14 Aug 2017 08:33:21 +0800</pubDate><description><![CDATA[api 文档作为前后端同学的沟通桥梁，其重要性是不言而喻的。目前通用的工具有像apidoc/apidoc，caixw/apidoc 这样的第三方库，虽然具有语言无关的特性，但是真正用起来额外多了很多工作量，而且维护起来麻烦，这也是笔者设计和开发这个工具的原因，想通过
 java 本身的语言特性和结合强大的 IDE ，使得生成和维护 api 文档这件事情变的自然而美好。
简介
github地址]]></description><category></category></item><item><title><![CDATA[Java 反射由浅入深]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152201</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/77152201</guid><author>Genius_Ge</author><pubDate>Mon, 14 Aug 2017 08:31:48 +0800</pubDate><description><![CDATA[本博文主要记录我学习 Java 反射（reflect）的一点心得，在了解反射之前，你应该先了解 Java 中的 Class 类，如果你不是很了解，可以先简单了解下。
一、Java 反射机制
参考了许多博文，总结了以下个人观点，若有不妥还望指正：

Java 反射机制在程序运行时，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性。这种 动态]]></description><category></category></item><item><title><![CDATA[jqGrid API 及用法]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76901213</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76901213</guid><author>Genius_Ge</author><pubDate>Tue, 08 Aug 2017 13:51:08 +0800</pubDate><description><![CDATA[jqGrid 是一个用来显示网格数据的jQuery插件，文档比较全面，附带中文版本。




不知是不是官方地址，不过有像http://www.trirand.com/blog/










引用一篇文章：http://mj4d.iteye.com/blog/1628851





jqGrid是一款处理表格展现的jquery插件，支持分页、滚]]></description><category></category></item><item><title><![CDATA[学会如何读一个JavaWeb项目源代码]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76474766</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76474766</guid><author>Genius_Ge</author><pubDate>Tue, 01 Aug 2017 08:46:01 +0800</pubDate><description><![CDATA[一：学会如何读一个JavaWeb项目源代码
步骤：表结构->web.xml->mvc->db->spring ioc->log->代码
1、先了解项目数据库的表结构，这个方面是最容易忘记的，有时候我们只顾着看每一个方法是怎么进行的，却没有去了解数据库之间的主外键关联。其实如果先了解数据库表结构，再去看一个方法的实现会更加容易。
2、然后需要过一遍web.xml，知道项目中用到了什么拦截器，监]]></description><category></category></item><item><title><![CDATA[Java之List集合]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76152110</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76152110</guid><author>Genius_Ge</author><pubDate>Wed, 26 Jul 2017 16:15:36 +0800</pubDate><description><![CDATA[首先，我们得来准备连个List集合的对象，list1和list2假设他们里面的数据是String类型的（这个方法不仅适合于String类型的数据，还可以是其他类型，这里就以String类型为栗子了）。


其次，我们来个它们分别添加一些数据，为了简单易懂，我就添加一些比较简单的类型的数据了，list一中的数据为："小王","老王","隔壁老王","老湿机"；list2中的数据为:"小王","]]></description><category></category></item><item><title><![CDATA[mysql中 insert、update、delete锁]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151999</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151999</guid><author>Genius_Ge</author><pubDate>Wed, 26 Jul 2017 16:13:51 +0800</pubDate><description><![CDATA[对于表的锁的探索

开多个客户端界面
DROP TABLE IF EXISTS `m_user`;
CREATE TABLE `m_user` (
  `i_id` int(10) unsigned zerofill NOT NULL AUTO_INCREMENT,
  `i_name` varchar(255) DEFAULT NULL,
  `create_time` datetime ]]></description><category></category></item><item><title><![CDATA[关于 ClassLoader.loadClass() 与 Class.forName() 关系]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151818</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151818</guid><author>Genius_Ge</author><pubDate>Wed, 26 Jul 2017 16:12:21 +0800</pubDate><description><![CDATA[我们都知道类加载器是

通过类的权限定名来获取描述类的二进制字节流，所以loadClass()不能初始化类的，但是可以获取类的Class
 对象，再对类进行初始化

不理解的问题

Class.forName() 加载的类与ClassLoader.loadClass() 加载的类的关系 ， 由于书上说是可以出现两个一样全限定名的类对象的

直接看代码

条件：

1.两个]]></description><category></category></item><item><title><![CDATA[Spring的@Bean注解使用]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151516</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151516</guid><author>Genius_Ge</author><pubDate>Wed, 26 Jul 2017 16:10:58 +0800</pubDate><description><![CDATA[Spring的@Bean注解用于告诉方法，产生一个Bean对象，然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次，随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
@Service
public class BeanTest {


    @Bean
    public   BeanTest  getBean(){
       ]]></description><category></category></item><item><title><![CDATA[JVM内存模型详解]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151179</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/76151179</guid><author>Genius_Ge</author><pubDate>Wed, 26 Jul 2017 16:07:37 +0800</pubDate><description><![CDATA[引言
JVM内存模型可以分为两个部分，如下图所示，堆和方法区是所有线程共有的，而虚拟机栈，本地方法栈和程序计数器则是线程私有的。下面我们就来一一分析一下这些不同区域的作用。

jvm memory model

堆内存
堆内存是所有线程共有的，可以分为两个部分：年轻代和老年代。下图中的Perm代表的是永久代，但是注意永久代并不属于堆内存中的一部分，同时jdk1.8之后永久代也将被移除。]]></description><category></category></item><item><title><![CDATA[HTTP中GET与POST的区别]]></title><link>https://blog.youkuaiyun.com/Genius_Ge/article/details/75530300</link><guid>https://blog.youkuaiyun.com/Genius_Ge/article/details/75530300</guid><author>Genius_Ge</author><pubDate>Thu, 20 Jul 2017 15:23:31 +0800</pubDate><description><![CDATA[GET和POST是HTTP请求的两种基本方法，要说它们的区别，接触过WEB开发的人都能说出一二。




最直观的区别就是GET把参数包含在URL中，POST通过request body传递参数。




你可能自己写过无数个GET和POST请求，或者已经看过很多权威网站总结出的他们的区别，你非常清楚知道什么时候该用什么。




当你在面试中被问到这个问题，你的内心]]></description><category></category></item></channel></rss>