<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FewMore的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/FewMore</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; FewMore]]></copyright><item><title><![CDATA[volatile的原理和实现机制]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/73168120</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/73168120</guid><author>FewMore</author><pubDate>Tue, 13 Jun 2017 11:56:47 +0800</pubDate><description><![CDATA[“观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现，加入volatile关键字时，会多出一个lock前缀指令”

　　lock前缀指令实际上相当于一个内存屏障（也成内存栅栏），内存屏障会提供3个功能：

　　1）它确保指令重排序时不会把其后面的指令排到内存屏障之前的位置，也不会把前面的指令排到内存屏障的后面；即在执行到内存屏障这句指令时，在它前面的操作已]]></description><category></category></item><item><title><![CDATA[spring源码解读感想]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/52813643</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/52813643</guid><author>FewMore</author><pubDate>Fri, 14 Oct 2016 10:40:17 +0800</pubDate><description><![CDATA[1.IOC
控制反转，依赖注入，spring简化了ejb形式的编码方式，由原本强依赖的对象关系，变成简单pojo对象，将控制权交给容器，再反将依赖关系注入到对象中。
如xml配置文件，而spring IOC模块做到的就是将多形式的beanDefinition注入到容器中。在这里要提一下beanFactory, 作为一个最上层的接口，有多个方法，最主要的是getBean(String name,]]></description><category></category></item><item><title><![CDATA[bufferReader 流读最后一行问题,中文乱码问题]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/52757055</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/52757055</guid><author>FewMore</author><pubDate>Sat, 08 Oct 2016 15:30:12 +0800</pubDate><description><![CDATA[最近要做一个编辑器。
遇到以下问题，第一是换行问题，这个我直接在后台每行结尾加上了前台html需要的换行符。
第二是bufferReader总会读取最后一行的内容，从源码可以看出

while (true) {
    pos = end;
    if (fillBuf() == -1) {
        // If there's no more input, return what]]></description><category></category></item><item><title><![CDATA[Servlet+spring+mybatis结合传输json数组]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/52689782</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/52689782</guid><author>FewMore</author><pubDate>Wed, 28 Sep 2016 13:51:08 +0800</pubDate><description><![CDATA[因为所在项目的框架是由内部人员开发的openx框架，即js+abstractServlet封装了servlet层，面向接口编程mvc框架。
而今天又收到任务因为ios端和android端的配置中心任务，要单独写一个Servlet接发请求。
在这个过程中遇到几个没碰到的异常，特地记录一下。
一个是servlet版本异常。
因为用的是maven构建的项目，因此提示使用2.5的servlet-a]]></description><category></category></item><item><title><![CDATA[httpclient传json字符串raw形式，调post]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/51188017</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/51188017</guid><author>FewMore</author><pubDate>Tue, 19 Apr 2016 10:20:19 +0800</pubDate><description><![CDATA[public static String result;   
public static void httpTest() throws ClientProtocolException, IOException {

String json = "{\"appId\":\"ddd\",\"usrId\":\"ddd\",\"latitude\":\"123\",\"longitude\":\]]></description><category></category></item><item><title><![CDATA[线程中断 thread.interrupt()的用法]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/51152125</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/51152125</guid><author>FewMore</author><pubDate>Thu, 14 Apr 2016 15:47:17 +0800</pubDate><description><![CDATA[public class Main extends Thread{
   boolean stop = false;
   public static void main(String[] args) throws Exception {
      Thread thread = new Thread(new Main(),"My Thread2");
      System.out.prin]]></description><category></category></item><item><title><![CDATA[maven jetty插件配置启动restful-web]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/51044480</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/51044480</guid><author>FewMore</author><pubDate>Sat, 02 Apr 2016 16:46:35 +0800</pubDate><description><![CDATA[Pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_]]></description><category></category></item><item><title><![CDATA[Aliyun oss实现(一)，向STS申请临时SecretToken]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/51042856</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/51042856</guid><author>FewMore</author><pubDate>Sat, 02 Apr 2016 10:21:13 +0800</pubDate><description><![CDATA[最近做了一个项目关于aliyun云同步的功能。
结构如下




api层放向外暴露的接口和model类。
sdk层打包客户端的实现类和工厂，向客户暴露。
security层部署至服务器，不向外暴露。


jar包用到以下4个。


sts和ram是给第三方客户（相对于aliyun而言），临时访问bucket的扮演角色(通过sts和ram包中提供的api，可以直接向相应]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap之实现细节]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50801457</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50801457</guid><author>FewMore</author><pubDate>Fri, 04 Mar 2016 11:42:54 +0800</pubDate><description><![CDATA[ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解，仅知道它采用了多个锁，大概也足够了。但是在经过一次惨痛的面试经历之后，我觉得必须深入研究它的实现。面试中被问到读是否要加锁，因为读写会发生冲突，我说必须要加锁，我和面试官也因此发生了冲突，结果可想而知。还是闲话少说，通过仔细阅读源代码]]></description><category></category></item><item><title><![CDATA[私服nexus搭建]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50801402</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50801402</guid><author>FewMore</author><pubDate>Fri, 04 Mar 2016 11:37:32 +0800</pubDate><description><![CDATA[前边简单介绍了Maven,而Maven默认提供的中央仓库是在远程网络服务Appache提供的，这对于我们开发时不合理的。如果我们没网了或者什么情况，我们怎么办？也就是说我们队中央仓库的依赖性太大。而Nexus私服则可以解决我们这个问题。先看下这张图应该大家就非才明白了：










    这样就相当于在我们本地的局域网搭建了一个类似中央仓库的服务器，我们开始将中央仓]]></description><category></category></item><item><title><![CDATA[JVM锁实现探究2：synchronized深探]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50778801</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50778801</guid><author>FewMore</author><pubDate>Wed, 02 Mar 2016 11:58:55 +0800</pubDate><description><![CDATA[这里我们来聊聊synchronized，以及wait(),notify()的实现原理。
在深入介绍synchronized原理之前，先介绍两种不同的锁实现。
阻塞锁
我们平时说的锁都是通过阻塞线程来实现的：当出现锁竞争时，只有获得锁的线程能够继续执行，竞争失败的线程会由running状态进入blocking状态，并被登记在目标锁相关的一个等待队列中，当前一个线程退出临界区，释放锁后，会将等待]]></description><category></category></item><item><title><![CDATA[hibernate注释]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50774028</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50774028</guid><author>FewMore</author><pubDate>Tue, 01 Mar 2016 17:05:20 +0800</pubDate><description><![CDATA[1.类级别注解

@Entity     映射实体类

@Table    映射数句库表

 

@Entity(name="tableName") - 必须，注解将一个类声明为一个实体bean。

属性：

name - 可选，对应数据库中的一个表。若表名与实体类名相同，则可以省略。

 

@Table(name="",catalog="",schema="")]]></description><category></category></item><item><title><![CDATA[关于context:component-scan扫描spring注解标记的用法]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50725412</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50725412</guid><author>FewMore</author><pubDate>Tue, 23 Feb 2016 18:46:46 +0800</pubDate><description><![CDATA[转载自：http://blog.youkuaiyun.com/chunqiuwei/article/details/16115135




在xml配置了这个标签后，spring可以自动去扫描base-pack下面或者子包下面的java文件，如果扫描到有@Component @Controller@Service等这些注解的类，则把这些类注册为bean

注意：如果配置了那么标签就可以不用再x]]></description><category></category></item><item><title><![CDATA[事件冒泡有关]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50669229</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50669229</guid><author>FewMore</author><pubDate>Mon, 15 Feb 2016 16:53:22 +0800</pubDate><description><![CDATA[阻止事件冒泡：


div onclick="showMsg(this,event)" id="outSide" style="width:100px; height:100px; background:#000; padding:50px">
div onclick="showMsg(this,event)" id="inSide" style="width:100px; height:]]></description><category></category></item><item><title><![CDATA[Oracle关于表主键自增触发器的实现]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50606243</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50606243</guid><author>FewMore</author><pubDate>Fri, 29 Jan 2016 11:44:46 +0800</pubDate><description><![CDATA[例表：Users

create table Users(

       id number,

       urname varchar2(50),

       sex varchar2(50),

       birthday date,

       address varchar2(50)

)

创建sequence users_s，设置自增从]]></description><category></category></item><item><title><![CDATA[Mybatis学习日记]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50606231</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50606231</guid><author>FewMore</author><pubDate>Fri, 29 Jan 2016 11:43:47 +0800</pubDate><description><![CDATA[1. SqlMapConfig.xml  -- 配置文件

properties(属性)

settings(全局配置参数)

typeAliases(类型别名)

typeHandlers(类型处理器)

objecFactory(对象工厂)

plugins(插件)

environments(环境集合属性对象)

environment(环境子属性对象)
]]></description><category></category></item><item><title><![CDATA[AJAX Validation]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50606214</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50606214</guid><author>FewMore</author><pubDate>Fri, 29 Jan 2016 11:42:14 +0800</pubDate><description><![CDATA[2.0.x releases of Struts 2 use DWR for AJAX validation. This documentation refers to version 2.1.


Struts provides client side validation

(using JavaScript) for a few validators. Using AJAX val]]></description><category></category></item><item><title><![CDATA[Ognl表达式的应用（无原理介绍）]]></title><link>https://blog.youkuaiyun.com/FewMore/article/details/50606188</link><guid>https://blog.youkuaiyun.com/FewMore/article/details/50606188</guid><author>FewMore</author><pubDate>Fri, 29 Jan 2016 11:39:24 +0800</pubDate><description><![CDATA[Struts2内置ognl表达式。引用valueStack概念。将值放入其中，可直接调用。


--要配合Struts2标签



无原理介绍。
​


​一.取值


1.直接读取valueStack中的值


假设action中有private Cat cat, private Dog dog. ​


​​​读取cat name属性的值


读取]]></description><category></category></item></channel></rss>