<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SprinLa的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/youyaecho</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; youyaecho]]></copyright><item><title><![CDATA[java Pattern和Matcher详解]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/65446558</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/65446558</guid><author>youyaecho</author><pubDate>Thu, 23 Mar 2017 17:41:54 +0800</pubDate><description><![CDATA[结论：Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String
 regex,CharSequence input)一种最基础最简单的匹配。


Java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅读本]]></description><category></category></item><item><title><![CDATA[Spark的几个基本概念：Driver和Job，Stage]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/55050864</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/55050864</guid><author>youyaecho</author><pubDate>Mon, 13 Feb 2017 17:23:44 +0800</pubDate><description><![CDATA[Driver Program, Job和Stage是Spark中的几个基本概念。Spark官方文档中对于这几个概念的解释比较简单，对于初学者很难正确理解他们的涵义。

官方解释如下（http://spark.apache.org/docs/latest/cluster-overview.html）： 
Driver Program: The process running the main(]]></description><category></category></item><item><title><![CDATA[@Autowired和构造方法执行的顺序解析]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/53424807</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/53424807</guid><author>youyaecho</author><pubDate>Thu, 01 Dec 2016 18:21:23 +0800</pubDate><description><![CDATA[@Autowired和构造方法执行的顺序解析]]></description><category></category></item><item><title><![CDATA[java.lang.NoClassDefFoundError]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/52313018</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/52313018</guid><author>youyaecho</author><pubDate>Thu, 25 Aug 2016 11:30:26 +0800</pubDate><description><![CDATA[今天想测试个类，路径为/workspace/javalearn/src/JVM/VolatileTest.java，没有包含其他类。
然后用终端cd到JVM下，javac VolatileTest.java,正常，同目录下生成了VolatileTest.class文件。
java VolatileTest，出错了，报错
Exception in thread "main" java.lang]]></description><category></category></item><item><title><![CDATA[总结一下各种IO方式（非常好的文章！）]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51799423</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51799423</guid><author>youyaecho</author><pubDate>Fri, 01 Jul 2016 10:47:58 +0800</pubDate><description><![CDATA[同步（synchronous） IO和异步（asynchronous） IO，阻塞（blocking） IO和非阻塞（non-blocking）IO分别是什么，到底有什么区别？这个问题其实不同的人给出的答案都可能不同，有人认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同，并且在讨论这个问题的时候上下文(context)也不相同。所以，]]></description><category></category></item><item><title><![CDATA[Spring常用注解]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51771373</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51771373</guid><author>youyaecho</author><pubDate>Mon, 27 Jun 2016 21:19:08 +0800</pubDate><description><![CDATA[使用注解来构造IoC容器

用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册。

如：在base-package指明一个包

1 context:component-scan base-package="cn.gacl.java"/>


表明cn.gacl.java包及其子包中，如果某个类的头上带有特定的注解【@Component]]></description><category></category></item><item><title><![CDATA[IOC和AOP的一些基本概念]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51771335</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51771335</guid><author>youyaecho</author><pubDate>Mon, 27 Jun 2016 21:13:35 +0800</pubDate><description><![CDATA[IOC和AOP的一些基本概念
介绍 IOC

介绍 IOC

 

一、什么是IOC

IoC就是Inversion of Control，控制反转。在Java开发中，IoC意味着将你设计好的类交给系统去控制，而不是在你的类内部控制。这称为控制反转。

下面我们以几个例子来说明什么是IoC

假设我们要设计一个Girl和一个Boy类，其中Girl有kiss方法，即Girl]]></description><category></category></item><item><title><![CDATA[为什么访问数据库要通过端口？]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51771037</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51771037</guid><author>youyaecho</author><pubDate>Mon, 27 Jun 2016 20:21:51 +0800</pubDate><description><![CDATA[数据库大家都知道。

我们现在使用的数据库都是关系型数据库，说白了就是一张表，该表有各种信息。

再简化一点就是一个文件，用户提供一个查询的语句，那么该表返回一个你所查询的结果。




假设有个程序tinysql.exe，他可以管理数据库文件a.db，那么你在a.db调用一个sql做相关的查询可以做如下表示。




tinysql.exe a.db a.sql
]]></description><category></category></item><item><title><![CDATA[【数据库】一些杂杂的概念]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51770820</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51770820</guid><author>youyaecho</author><pubDate>Mon, 27 Jun 2016 20:02:16 +0800</pubDate><description><![CDATA[关系型数据库：
        关系数据库，是建立在关系模型基础上的数据库，借助于集合代数等数学概念和方法来处理数据库中的数据。关系数据库中的核心内容是关系即二维表。
关系模型：
 
       就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server]]></description><category></category></item><item><title><![CDATA[设计模式——装饰者模式]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51735018</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51735018</guid><author>youyaecho</author><pubDate>Wed, 22 Jun 2016 16:04:23 +0800</pubDate><description><![CDATA[装饰者模式：动态地将职责附加到对象上，若要扩展对象，装饰者模式提供了比继承更弹性的替代方案

 要点： 装饰者与被装饰者拥有共同的超类，继承的目的是继承类型，而不是行为
装饰者包含一个超类的对象，这样，可以在被装饰者行为前或者行为后加上新的行为，甚至取代原有的行为

装饰者会使程序中出现很多小类，增加使用难度

使用场景：对象由主体+许多可选的部件或者功能构成，使用继承或者接口会产生]]></description><category></category></item><item><title><![CDATA[设计模式——适配器模式]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51734862</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51734862</guid><author>youyaecho</author><pubDate>Wed, 22 Jun 2016 15:53:24 +0800</pubDate><description><![CDATA[1. 概述

　　将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

2. 解决的问题

　　即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。

3. 模式中的角色

　　3.1 目标接口（Target），目标角色：客户所期待的接口。目标可以是具体的或抽象的类，也可以是接口]]></description><category></category></item><item><title><![CDATA[Java Math的 floor,round和ceil的总结]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51725510</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51725510</guid><author>youyaecho</author><pubDate>Tue, 21 Jun 2016 10:36:07 +0800</pubDate><description><![CDATA[floor 返回不大于的最大整数 
round 则是4舍5入的计算，入的时候是到大于它的整数
round方法，它表示“四舍五入”，算法为Math.floor(x+0.5)，即将原来的数字加上0.5后再向下取整，所以，Math.round(11.5)的结果为12，Math.round(-11.5)的结果为-11。


ceil 则是不小于他的最小整数



看例子



 ]]></description><category></category></item><item><title><![CDATA[Android Dialog大全]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51698014</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51698014</guid><author>youyaecho</author><pubDate>Fri, 17 Jun 2016 10:24:33 +0800</pubDate><description><![CDATA[转自：http://android.tgbus.com/Android/tutorial/201107/359812.shtml




　1.该效果是当按返回按钮时弹出一个提示，来确保无误操作，采用常见的对话框样式。




　　代码：

　　创建对话框方法dialog()
　　protected void dialog() {
　　  AlertDialog.Bui]]></description><category></category></item><item><title><![CDATA[接口和抽象类的一道题]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51690539</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51690539</guid><author>youyaecho</author><pubDate>Thu, 16 Jun 2016 11:15:49 +0800</pubDate><description><![CDATA[下述说法中抽象类与接口的区别正确的有哪些？
A  抽象类中可以有普通成员变量，接口中没有普通成员变量。
B
抽象类和接口中都可以包含静态成员变量。
C
一个类可以实现多个接口，但只能继承一个抽象类
D
抽象类中可以包含非抽象的普通方法，接口中的方法必须是抽象的，不能有非抽象的普通方法。




正确答案: A B C   你的答案: A C D (错误)
D中,Java ]]></description><category></category></item><item><title><![CDATA[Integer,int,==]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51690439</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51690439</guid><author>youyaecho</author><pubDate>Thu, 16 Jun 2016 11:06:19 +0800</pubDate><description><![CDATA[有如下4条语句：()







1

2

3

4




Integer
 i01=59;

int

i02=59;

Integer
 i03=Integer.valueOf(59);

Integer
 i04=new

Integer(59);








以下输出结果为false的是:

A]]></description><category></category></item><item><title><![CDATA[C/C++ struct/class/union内存对齐]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51689161</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51689161</guid><author>youyaecho</author><pubDate>Thu, 16 Jun 2016 08:47:54 +0800</pubDate><description><![CDATA[转自：http://www.cnblogs.com/biyeymyhjob/archive/2012/09/07/2674992.html

struct/class/union内存对齐原则有四个：

1).数据成员对齐规则：结构(struct)(或联合(union))的数据成员，第一个数据成员放在offset为0的地方，以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小（只]]></description><category></category></item><item><title><![CDATA[类的加载]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51685753</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51685753</guid><author>youyaecho</author><pubDate>Wed, 15 Jun 2016 22:15:25 +0800</pubDate><description><![CDATA[Java类的加载：
“类的代码在初次使用时才会加载”。包括：
1.创建类的第一个对象之时。
2.访问static域或static方法时。
其实构造函数也是static方法，只不过关键字未写出。故，严格来说，类实在其任何static成员被访问时加载的。


Java中所有事物都是对象，每个类的编译代码都存在于它自己独立的文件中，该文件只有在需要使用程序代码时才会被加载,即“类的代码在初]]></description><category></category></item><item><title><![CDATA["覆盖"和private]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51685574</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51685574</guid><author>youyaecho</author><pubDate>Wed, 15 Jun 2016 21:45:04 +0800</pubDate><description><![CDATA[“覆盖”只在某方法是基类的接口的一部分时才会出现。即，必须能将一个对象向上转型为它额基本类型并调用相同的方法。如此，该方法在基类中不能为private,否则它就不是基类接口的一部分。它只是一些隐藏在类中的程序代码，只不过具有相同名称。若子类中以相同名称生成一个public,protected或报访问权限的方法的话，此时你并没有覆盖该犯法，仅是生成了一个新的方法。
        “private]]></description><category></category></item><item><title><![CDATA[【Java】可变参数]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51452849</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51452849</guid><author>youyaecho</author><pubDate>Thu, 19 May 2016 12:23:33 +0800</pubDate><description><![CDATA[public class VarargType {
    static void f(Character... args){
        System.out.print(args.getClass().getName());
        System.out.println(" length: "+args.length);
    }

    static void g(Integ]]></description><category></category></item><item><title><![CDATA[【Java】finalize()和垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/youyaecho/article/details/51452364</link><guid>https://blog.youkuaiyun.com/youyaecho/article/details/51452364</guid><author>youyaecho</author><pubDate>Thu, 19 May 2016 11:22:56 +0800</pubDate><description><![CDATA[finalize()方法：一旦gc准备释放对象占用的存储空间，将首先调用finalize()方法，并在下一次垃圾回收动作发生时才会真正回收内存。可在此进行重要的清理操作。gc只能释放那些经由new分配的内存，对其他形式获得的内存无法释放。finalize()方法不一定会被调用，所以不能作为通用的清理方法。
它不是析构函数，C++中对象一定会被销毁（必须用到析构函数），而java 对象却并非总是被]]></description><category></category></item></channel></rss>