<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Duomu&#39;s blog</title>
  
  
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://yoursite.com/"/>
  <updated>2017-10-25T12:11:11.740Z</updated>
  <id>http://yoursite.com/</id>
  
  <author>
    <name>duomu</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>centos6.8下redis的安装和配置</title>
    <link href="http://yoursite.com/2017/10/25/centos6.8%E4%B8%8Bredis%E7%9A%84%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE/"/>
    <id>http://yoursite.com/2017/10/25/centos6.8下redis的安装和配置/</id>
    <published>2017-10-25T03:30:46.000Z</published>
    <updated>2017-10-25T12:11:11.740Z</updated>
    
    <content type="html"><![CDATA[<h1 id="下载、安装"><a href="#下载、安装" class="headerlink" title="下载、安装"></a>下载、安装</h1><p>在<a href="https://redis.io/" target="_blank" rel="external">redis官网</a>可以获取到最新版本的redis</p><p>进入/usr/local/目录，执行如下命令</p><pre><code>wget http://download.redis.io/releases/redis-4.0.2.tar.gztar xzf redis-4.0.2.tar.gzcd redis-4.0.2make</code></pre><p>执行make构建redis时报如下错误，这是因为没有安装gcc,执行如下命令即可解决</p><pre><code>错误：    make[3]: gcc：命令未找到解决：    yum install -y wget gcc make tcl //安装gcc</code></pre><p>继续执行make又报错，这是因为构建redis的默认内存分配器是jemalloc，如果系统中没有jemalloc，就会报错，可以在构建时将内存分配器设置成libc</p><pre><code>错误：    zmalloc.h:50:31: 错误：jemalloc/jemalloc.h：没有那个文件或目录解决：    make MALLOC=libc  //构建时指定内存分配器</code></pre><h1 id="配置、启动"><a href="#配置、启动" class="headerlink" title="配置、启动"></a>配置、启动</h1><h2 id="启动redis服务"><a href="#启动redis服务" class="headerlink" title="启动redis服务"></a>启动redis服务</h2><h3 id="使用默认配置文件启动redis服务"><a href="#使用默认配置文件启动redis服务" class="headerlink" title="使用默认配置文件启动redis服务"></a>使用默认配置文件启动redis服务</h3><p>执行完make命令后，redis就安装完毕了，在安装目录/usr/local/redis-4.0.2目录下执行下面的命令，如果成功启动redis服务，说明redis安装成功</p><pre><code>redis-server</code></pre><h3 id="指定配置文件启动redis服务"><a href="#指定配置文件启动redis服务" class="headerlink" title="指定配置文件启动redis服务"></a>指定配置文件启动redis服务</h3><p>创建如下目录，存放配置文件、日志文件、进程文件、工作文件（如数据备份）</p><pre><code>mkdir /etc/redismkdir /var/redismkdir /var/redis/logmkdir /var/redis/runmkdir /var/redis/6379</code></pre><p>复制一份配置文件到/etc/redis目录</p><pre><code>cp redis.conf /etc/redis/6379.conf</code></pre><p>修改配置文件6379.conf</p><pre><code>daemonize yes    //将redis服务设成守护进程requirepass 123456    //设置认证密码bind 0.0.0.0    //设置监听所有ip，默认为bind 127.0.0.1，只监听本机ip，其他主机无法访问此redis，因为我要远程操作redis，所以暂时改成0.0.0.0protected-mode no    //关闭保护模式，默认启用保护模式，同样要想远程访问redis，必须设成nopidfile /var/redis/run/redis_6379.pidlogfile /var/redis/log/redis_6379.logdir /var/redis/6379</code></pre><p>使用6379.conf启动redis服务</p><pre><code>redis-server /etc/redis/6379.conf</code></pre><h3 id="使用redis启动脚本启动"><a href="#使用redis启动脚本启动" class="headerlink" title="使用redis启动脚本启动"></a>使用redis启动脚本启动</h3><p>复制redis启动脚本到/etc/init.d目录</p><pre><code>cp redis_init_script /etc/init.d/redis</code></pre><p>修改启动脚本</p><p>由于启动脚本的一些变量使用的是默认值，而我刚刚修改了redis的默认配置，所以启动脚本也要进行一致性修改，否则使用启动脚本执行命令时会报错。</p><p>我这里需要修改脚本里的pidfile和关闭服务时的命令，pidfile的目录要和6379.conf里的一致，关闭服务命令要设置认证密码，由于每个人使用可能不同，具体需要修改哪些地方还要具体分析。</p><pre><code>PIDFILE=/var/redis/run/redis_${REDISPORT}.pid$CLIEXEC -a &quot;123456&quot; -p $REDISPORT shutdown</code></pre><p>启动redis服务</p><pre><code>service redis start</code></pre><h3 id="设置开机自启动"><a href="#设置开机自启动" class="headerlink" title="设置开机自启动"></a>设置开机自启动</h3><p>在以上基础上修改启动脚本，在启动脚本的开头增加下行注释（不加的话执行chkconfig 命令会报”redis 服务不支持 chkconfig”）</p><pre><code># chkconfig:   2345 90 10</code></pre><p>修改后如下：</p><pre><code># !/bin/sh# chkconfig:   2345 90 10# Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.</code></pre><p>执行命令，设置开机自启</p><pre><code>chkconfig redis on</code></pre><p>关闭开机自启</p><pre><code>chkconfig redis off</code></pre><h2 id="关闭redis服务"><a href="#关闭redis服务" class="headerlink" title="关闭redis服务"></a>关闭redis服务</h2><h3 id="直接杀死redis服务进程"><a href="#直接杀死redis服务进程" class="headerlink" title="直接杀死redis服务进程"></a>直接杀死redis服务进程</h3><pre><code>#查看运行的redis服务，得到redis服务的进程号，假设是1000ps -ef|grep redis#杀死redis进程kill -9    1000</code></pre><h3 id="使用redis客户端关闭"><a href="#使用redis客户端关闭" class="headerlink" title="使用redis客户端关闭"></a>使用redis客户端关闭</h3><pre><code>redis-cli –h localhost –p 6379 –a 123456 shutdown</code></pre><h3 id="使用启动脚本关闭"><a href="#使用启动脚本关闭" class="headerlink" title="使用启动脚本关闭"></a>使用启动脚本关闭</h3><pre><code>service redis stop</code></pre><h2 id="启动redis客户端"><a href="#启动redis客户端" class="headerlink" title="启动redis客户端"></a>启动redis客户端</h2><p>在安装目录下执行如下命令，启动redis客户端，如果不设ip，默认连接本机的redis的服务，如果不设port默认连接端口为6379的redis服务，<br>redis默认没有配置认证密码，如果配置了认证密码requirepass，就需要使用参数-a进行认证。</p><pre><code>redis-cli -h localhost -p 6379 -a 123456    </code></pre><h1 id="测试"><a href="#测试" class="headerlink" title="测试"></a>测试</h1><h2 id="本机测试"><a href="#本机测试" class="headerlink" title="本机测试"></a>本机测试</h2><p>启动redis客户端，输入如下命令，可以成功存取数据</p><pre><code>[root@128-157 redis-4.0.2]# redis-cli -a 123456127.0.0.1:6379&gt; set name duomuOK127.0.0.1:6379&gt; get name&quot;duomu&quot;127.0.0.1:6379&gt; </code></pre><h2 id="远程测试"><a href="#远程测试" class="headerlink" title="远程测试"></a>远程测试</h2><p>在远程主机上编写如下java程序访问redis，可以成功执行（注意要引入相关的jar包）</p><pre><code>public class RedisMainTest {    private static final Logger logger = LoggerFactory.getLogger(RedisMainTest.class);    public static void main(String[] args) {        Jedis jedis = new Jedis(&quot;192.x.x.x&quot;, 6379);        jedis.auth(&quot;123456&quot;);        jedis.set(&quot;name&quot;, &quot;duomu&quot;);        String name = jedis.get(&quot;name&quot;);        logger.info(&quot;name：&quot; + name);    }}</code></pre><p>注意：远程访问redis服务，redis主机需要对外开放6379端口号或者直接关闭防火墙，否则会连接失败</p><p>开放6379端口号</p><pre><code>/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT #开启6379端口/etc/rc.d/init.d/iptables save #保存配置/etc/rc.d/init.d/iptables restart #重启服务</code></pre><p>关闭防火墙</p><pre><code>service iptables stop     #关闭防火墙service iptables status    #查看防火墙状态service iptables start    #启动防火墙</code></pre><h1 id="参考资料"><a href="#参考资料" class="headerlink" title="参考资料"></a>参考资料</h1><ol><li><a href="http://www.cnblogs.com/haoxinyue/p/3620648.html" target="_blank" rel="external">http://www.cnblogs.com/haoxinyue/p/3620648.html</a></li><li><a href="https://www.tuicool.com/articles/aQbQ3u" target="_blank" rel="external">https://www.tuicool.com/articles/aQbQ3u</a></li><li><a href="http://www.cnblogs.com/wangqingyi/articles/5575419.html" target="_blank" rel="external">http://www.cnblogs.com/wangqingyi/articles/5575419.html</a></li><li><a href="http://www.cnblogs.com/jeffen/p/6068745.html" target="_blank" rel="external">http://www.cnblogs.com/jeffen/p/6068745.html</a></li><li><a href="http://linux.it.net.cn/CentOS/fast/2014/0622/1602.html" target="_blank" rel="external">http://linux.it.net.cn/CentOS/fast/2014/0622/1602.html</a></li></ol>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h1 id=&quot;下载、安装&quot;&gt;&lt;a href=&quot;#下载、安装&quot; class=&quot;headerlink&quot; title=&quot;下载、安装&quot;&gt;&lt;/a&gt;下载、安装&lt;/h1&gt;&lt;p&gt;在&lt;a href=&quot;https://redis.io/&quot; target=&quot;_blank&quot; rel=&quot;external
      
    
    </summary>
    
      <category term="redis" scheme="http://yoursite.com/categories/redis/"/>
    
    
      <category term="redis" scheme="http://yoursite.com/tags/redis/"/>
    
  </entry>
  
  <entry>
    <title>修复bug的教训</title>
    <link href="http://yoursite.com/2017/10/24/%E4%BF%AE%E5%A4%8Dbug%E7%9A%84%E6%95%99%E8%AE%AD/"/>
    <id>http://yoursite.com/2017/10/24/修复bug的教训/</id>
    <published>2017-10-24T09:50:59.000Z</published>
    <updated>2017-10-24T10:51:01.799Z</updated>
    
    <content type="html"><![CDATA[<p>以后无论是从后台异常追踪bug，还是从前端异常追踪bug，都要多方面考虑问题，一个页面展示错误，可能是多方面原因造成的，不要想当然，所有疑虑都应该亲自求证，只要有疑虑都应该求证。</p><p>要认真自测，在问题分析阶段自测，在编码阶段自测，在提测阶段自测，不要嫌麻烦而省略这重要的环节，多思考测试用例，尽量覆盖所有情况，不要偷懒，思想上和行为上都不要偷懒，保证自己想到的情况都测过了，都没有问题，不要太依赖qa。</p><p>能当面沟通就当面沟通，当面沟通比QQ沟通更有效、沟通质量更高。</p><p>除了你妈，不要依赖任何人，同事、朋友、男朋友都不可依赖，有话漂流瓶，有话写日记，少跟别人吐槽，少向别人倾诉。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;以后无论是从后台异常追踪bug，还是从前端异常追踪bug，都要多方面考虑问题，一个页面展示错误，可能是多方面原因造成的，不要想当然，所有疑虑都应该亲自求证，只要有疑虑都应该求证。&lt;/p&gt;
&lt;p&gt;要认真自测，在问题分析阶段自测，在编码阶段自测，在提测阶段自测，不要嫌麻烦而省略
      
    
    </summary>
    
      <category term="工作感悟" scheme="http://yoursite.com/categories/%E5%B7%A5%E4%BD%9C%E6%84%9F%E6%82%9F/"/>
    
    
      <category term="工作感悟" scheme="http://yoursite.com/tags/%E5%B7%A5%E4%BD%9C%E6%84%9F%E6%82%9F/"/>
    
  </entry>
  
  <entry>
    <title>Spring AOP</title>
    <link href="http://yoursite.com/2017/09/26/Spring-AOP/"/>
    <id>http://yoursite.com/2017/09/26/Spring-AOP/</id>
    <published>2017-09-26T03:45:30.000Z</published>
    <updated>2017-09-26T07:31:23.661Z</updated>
    
    <content type="html"><![CDATA[<p>what in a word(application)</p><p>how to use</p><p>what in detail</p><p>basic design(graph)</p><p>source code</p><p>your understanding(blog)</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;what in a word(application)&lt;/p&gt;
&lt;p&gt;how to use&lt;/p&gt;
&lt;p&gt;what in detail&lt;/p&gt;
&lt;p&gt;basic design(graph)&lt;/p&gt;
&lt;p&gt;source code&lt;/p&gt;
&lt;p&gt;your understandi
      
    
    </summary>
    
      <category term="Spring" scheme="http://yoursite.com/categories/Spring/"/>
    
    
      <category term="spring,aop" scheme="http://yoursite.com/tags/spring-aop/"/>
    
  </entry>
  
  <entry>
    <title>hexo捐赠图片无法显示</title>
    <link href="http://yoursite.com/2017/09/25/hexo%E6%8D%90%E8%B5%A0%E5%9B%BE%E7%89%87%E6%97%A0%E6%B3%95%E6%98%BE%E7%A4%BA/"/>
    <id>http://yoursite.com/2017/09/25/hexo捐赠图片无法显示/</id>
    <published>2017-09-25T10:31:46.000Z</published>
    <updated>2017-09-25T14:01:55.602Z</updated>
    
    <content type="html"><![CDATA[<p>查看github上的图片名是否正确、规范，将大写后缀改成小写后缀。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;查看github上的图片名是否正确、规范，将大写后缀改成小写后缀。&lt;/p&gt;

      
    
    </summary>
    
      <category term="Hexo" scheme="http://yoursite.com/categories/Hexo/"/>
    
    
      <category term="Hexo 捐赠 打赏" scheme="http://yoursite.com/tags/Hexo-%E6%8D%90%E8%B5%A0-%E6%89%93%E8%B5%8F/"/>
    
  </entry>
  
  <entry>
    <title>JQuery隐藏/显示元素</title>
    <link href="http://yoursite.com/2017/09/22/jquery-showhide-20170125/"/>
    <id>http://yoursite.com/2017/09/22/jquery-showhide-20170125/</id>
    <published>2017-09-22T07:46:06.338Z</published>
    <updated>2017-01-25T04:45:55.542Z</updated>
    
    <content type="html"><![CDATA[<h3 id="1-方法一"><a href="#1-方法一" class="headerlink" title="1.方法一"></a>1.方法一</h3><pre><code>$(&quot;#id&quot;).hide(); //隐藏元素$(&quot;#id&quot;).show(); //显示元素</code></pre><h3 id="2-方法二"><a href="#2-方法二" class="headerlink" title="2.方法二"></a>2.方法二</h3><pre><code>$(&quot;id&quot;).css(&quot;display&quot;,&quot;none&quot;); //隐藏元素$(&quot;id&quot;).css(&quot;display&quot;,&quot;block&quot;); //显示元素</code></pre><h3 id="3-方法三"><a href="#3-方法三" class="headerlink" title="3.方法三"></a>3.方法三</h3><pre><code>$(&quot;#id&quot;)[0].style.display=&quot;none&quot;; //隐藏元素$(&quot;#id&quot;)[0].style.display=&quot;block&quot;; //显示元素</code></pre><h3 id="4-方法四"><a href="#4-方法四" class="headerlink" title="4.方法四"></a>4.方法四</h3><pre><code>$(&quot;id&quot;).toggle(); //切换元素状态</code></pre>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h3 id=&quot;1-方法一&quot;&gt;&lt;a href=&quot;#1-方法一&quot; class=&quot;headerlink&quot; title=&quot;1.方法一&quot;&gt;&lt;/a&gt;1.方法一&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;$(&amp;quot;#id&amp;quot;).hide(); //隐藏元素
$(&amp;quot;#id&amp;quot
      
    
    </summary>
    
      <category term="Js/JQuery" scheme="http://yoursite.com/categories/Js-JQuery/"/>
    
    
      <category term="Js/JQuery" scheme="http://yoursite.com/tags/Js-JQuery/"/>
    
  </entry>
  
  <entry>
    <title>JQuery操作单选按钮radio</title>
    <link href="http://yoursite.com/2017/09/22/jquery-radio-20170125/"/>
    <id>http://yoursite.com/2017/09/22/jquery-radio-20170125/</id>
    <published>2017-09-22T07:46:06.335Z</published>
    <updated>2017-01-25T04:46:20.899Z</updated>
    
    <content type="html"><![CDATA[<h3 id="1-获取当前选中项的值"><a href="#1-获取当前选中项的值" class="headerlink" title="1.获取当前选中项的值"></a>1.获取当前选中项的值</h3><pre><code>$(&apos;input:radio:checked&apos;).val();$(&quot;input[type=&apos;radio&apos;]:checked&quot;).val();$(&quot;input[name=&apos;radioName&apos;]:checked&quot;).val();</code></pre><h3 id="2-设置选中第一个radio"><a href="#2-设置选中第一个radio" class="headerlink" title="2.设置选中第一个radio"></a>2.设置选中第一个radio</h3><pre><code>$(&apos;input:radio:first&apos;).attr(&apos;checked&apos;, &apos;checked&apos;);</code></pre><p>or</p><pre><code>$(&apos;input:radio:first&apos;).attr(&apos;checked&apos;, &apos;true&apos;);</code></pre><h3 id="3-设置选中最后一个radio"><a href="#3-设置选中最后一个radio" class="headerlink" title="3.设置选中最后一个radio"></a>3.设置选中最后一个radio</h3><pre><code>$(&apos;input:radio:last&apos;).attr(&apos;checked&apos;, &apos;checked&apos;);</code></pre><p>or</p><pre><code>$(&apos;input:radio:last&apos;).attr(&apos;checked&apos;, &apos;true&apos;);</code></pre><h3 id="4-设置选中指定值的radio"><a href="#4-设置选中指定值的radio" class="headerlink" title="4.设置选中指定值的radio"></a>4.设置选中指定值的radio</h3><pre><code>$(&quot;input:radio[value=&apos;男&apos;]&quot;).attr(&apos;checked&apos;,&apos;true&apos;);</code></pre><p>or</p><pre><code>$(&quot;input[value=&apos;男&apos;]&quot;).attr(&apos;checked&apos;,&apos;true&apos;);</code></pre><h3 id="5-删除指定值的radio"><a href="#5-删除指定值的radio" class="headerlink" title="5.删除指定值的radio"></a>5.删除指定值的radio</h3><pre><code>$(&quot;input:radio[value=&apos;男&apos;]&quot;).remove();</code></pre><h3 id="6-删除指定索引的radio"><a href="#6-删除指定索引的radio" class="headerlink" title="6.删除指定索引的radio"></a>6.删除指定索引的radio</h3><pre><code>$(&quot;input:radio&quot;).eq(i).remove();//i=0,1,2....</code></pre><h3 id="7-遍历radio"><a href="#7-遍历radio" class="headerlink" title="7.遍历radio"></a>7.遍历radio</h3><pre><code>$(&apos;input:radio&apos;).each(function(index,domEle){});</code></pre>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h3 id=&quot;1-获取当前选中项的值&quot;&gt;&lt;a href=&quot;#1-获取当前选中项的值&quot; class=&quot;headerlink&quot; title=&quot;1.获取当前选中项的值&quot;&gt;&lt;/a&gt;1.获取当前选中项的值&lt;/h3&gt;&lt;pre&gt;&lt;code&gt;$(&amp;apos;input:radio:checke
      
    
    </summary>
    
      <category term="Js/JQuery" scheme="http://yoursite.com/categories/Js-JQuery/"/>
    
    
      <category term="Js/JQuery" scheme="http://yoursite.com/tags/Js-JQuery/"/>
    
  </entry>
  
  <entry>
    <title>Java各个版本的新特性</title>
    <link href="http://yoursite.com/2017/09/22/java-versions/"/>
    <id>http://yoursite.com/2017/09/22/java-versions/</id>
    <published>2017-09-22T07:46:06.332Z</published>
    <updated>2017-02-21T06:02:26.832Z</updated>
    
    <content type="html"><![CDATA[<h3 id="Java-1-0"><a href="#Java-1-0" class="headerlink" title="Java 1.0"></a>Java 1.0</h3><blockquote><p>Oak，1996</p></blockquote><h3 id="Java-1-1"><a href="#Java-1-1" class="headerlink" title="Java 1.1"></a>Java 1.1</h3><blockquote><p>1997</p></blockquote><ul><li>引入JDBC</li><li>支持内部类</li><li>引入Java Bean</li><li>引入RMI</li><li>引入反射（仅用于内省）</li></ul><h3 id="Java-1-2"><a href="#Java-1-2" class="headerlink" title="Java 1.2"></a>Java 1.2</h3><blockquote><p>1998</p></blockquote><ul><li>引入集合框架Collections</li><li>对字符串常量做内存映射</li><li>引入JIT编译器</li><li>引入对打包的Java文件进行数字签名</li><li>引入JFC,包括Swing1.0、拖放和Java 2D类库</li><li>引入Java插件</li><li>在JDBC中引入可滚动结果集、BLOB、CLOB、批量更新和用户自定义类型</li><li>在Applet中添加声音支持</li></ul><h3 id="Java-1-3"><a href="#Java-1-3" class="headerlink" title="Java 1.3"></a>Java 1.3</h3><blockquote><p>2000</p></blockquote><ul><li>引入Java Sound API</li><li>jar文件索引</li></ul><h3 id="Java-1-4"><a href="#Java-1-4" class="headerlink" title="Java 1.4"></a>Java 1.4</h3><blockquote><p>2004</p></blockquote><ul><li>XML处理</li><li>Java打印服务</li><li>引入Logging API</li><li>引入Java Web Start</li><li>引入JDBC 3.0 API</li><li>引入断言</li><li>引入Preferences API</li><li>引入链式异常处理</li><li>支持IPv6</li><li>支持正则表达式</li><li>引入Image I/O slot machine API</li></ul><h3 id="Java-5"><a href="#Java-5" class="headerlink" title="Java 5"></a>Java 5</h3><blockquote><p>2004</p></blockquote><ul><li>引入泛型</li><li>自动装箱和拆箱</li><li>枚举</li><li>可变参数</li><li>for-each循环</li><li>静态导入包</li><li>注解（元数据）</li><li>内省（Introspector）</li></ul><h3 id="Java-6"><a href="#Java-6" class="headerlink" title="Java 6"></a>Java 6</h3><blockquote><p>2006</p></blockquote><ul><li>支持脚本语言</li><li>引入JDBC4.0 API</li><li>引入Java Compiler API</li><li>可插拔注解</li><li>增加对Native PKI、Java GSS、Kerberos和LDAP的支持</li><li>继承Web Services</li></ul><h3 id="Java-7"><a href="#Java-7" class="headerlink" title="Java 7"></a>Java 7</h3><blockquote><p>2011</p></blockquote><ul><li>Switch语句块允许以字符串作为分支条件</li><li>在创建泛型对象时应用类型推断</li><li>在一个语句块中捕获多种异常</li><li>支持动态语言</li><li>支持try-with-resources</li><li>引入Java NIO.2开发包</li><li>数值类型可以用二进制字符串表示，并且可以在字符串中添加下划线</li><li>钻石型语法</li><li>null值的自动处理</li></ul><h3 id="Java-8"><a href="#Java-8" class="headerlink" title="Java 8"></a>Java 8</h3><blockquote><p>2014</p></blockquote><ul><li>Lambda表达式</li><li>接口的默认方法与静态方法</li><li>方法引用</li><li>重复注解@Repeatable</li><li>扩展注解的支持</li><li>Optional类（防止空指针异常）</li><li>Stream（类似于MapReduce）</li><li>Date/Time API(JSR 310) </li><li>JavaScript引擎Nashorn（允许Java与JavaScript互相调用）</li><li>Base64</li><li>更好的类型推测机制</li><li>编译器优化</li><li>并行数组</li><li>JVM的PermGen空间替换为Metaspace</li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h3 id=&quot;Java-1-0&quot;&gt;&lt;a href=&quot;#Java-1-0&quot; class=&quot;headerlink&quot; title=&quot;Java 1.0&quot;&gt;&lt;/a&gt;Java 1.0&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Oak，1996&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id
      
    
    </summary>
    
      <category term="Java" scheme="http://yoursite.com/categories/Java/"/>
    
    
      <category term="Java" scheme="http://yoursite.com/tags/Java/"/>
    
  </entry>
  
  <entry>
    <title>Java IO</title>
    <link href="http://yoursite.com/2017/09/22/java-io/"/>
    <id>http://yoursite.com/2017/09/22/java-io/</id>
    <published>2017-09-22T07:46:06.329Z</published>
    <updated>2017-02-21T09:21:13.845Z</updated>
    
    <content type="html"><![CDATA[<h3 id="InputStream的类型"><a href="#InputStream的类型" class="headerlink" title="InputStream的类型"></a>InputStream的类型</h3><ul><li>字节数组</li><li>String对象</li><li>文件</li><li>管道</li><li>网络</li></ul><h3 id="OutputStream的类型"><a href="#OutputStream的类型" class="headerlink" title="OutputStream的类型"></a>OutputStream的类型</h3><ul><li>字节数组</li><li>文件</li><li>管道</li><li>网络</li></ul><h3 id="InputStream类"><a href="#InputStream类" class="headerlink" title="InputStream类"></a>InputStream类</h3><ul><li>FilterInputStream：从InputStream读入数据</li><li></li></ul><h3 id="OutputStream类"><a href="#OutputStream类" class="headerlink" title="OutputStream类"></a>OutputStream类</h3><ul><li>FilterOutputStream：向OutputStream写入数据</li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h3 id=&quot;InputStream的类型&quot;&gt;&lt;a href=&quot;#InputStream的类型&quot; class=&quot;headerlink&quot; title=&quot;InputStream的类型&quot;&gt;&lt;/a&gt;InputStream的类型&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;字节数组&lt;/li&gt;
&lt;li&gt;St
      
    
    </summary>
    
      <category term="Java" scheme="http://yoursite.com/categories/Java/"/>
    
    
      <category term="Java" scheme="http://yoursite.com/tags/Java/"/>
    
  </entry>
  
  <entry>
    <title>Jsp的九个内置对象</title>
    <link href="http://yoursite.com/2017/09/22/jsp-20170123/"/>
    <id>http://yoursite.com/2017/09/22/jsp-20170123/</id>
    <published>2017-09-22T07:46:06.325Z</published>
    <updated>2017-01-25T03:18:22.240Z</updated>
    
    <content type="html"><![CDATA[<p>request：客户端的请求信息被封装在request对象中，通过它才能了解到客户的需求，然后做出响应</p><p>response：response对象包含了响应客户请求的有关信息，但在JSP中很少直接用到它。</p><p>session：session对象指的是客户端与服务器的一次会话，从客户连到服务器的一个WebApplication开始，直到客户端与服务器断开连接为止。它是HttpSession类的实例。</p><p>out：out对象是JspWriter类的实例,是向客户端输出内容常用的对象。</p><p>page：page对象就是指向当前JSP页面本身，有点象类中的this指针。</p><p>application：application对象实现了用户间数据的共享，可存放全局变量。</p><p>exception：当一个页面在运行过程中发生了例外，就产生这个对象。如果一个JSP页面要应用此对象，就必须把isErrorPage设为true，否则无法编译。</p><p>pageContext：提供了对JSP页面内所有的对象及名字空间的访问，也就是说他可以访问到本页所在的SESSION，也可以取本页面所在的application的某一属性值，他相当于页面中所有功能的集大成者。</p><p>config：config对象是在一个Servlet初始化时，JSP引擎向它传递信息用的，此信息包括Servlet初始化时所要用到的参数（通过属性名和属性值构成）以及服务器的有关信息（通过传递一个ServletContext对象）。</p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;request：客户端的请求信息被封装在request对象中，通过它才能了解到客户的需求，然后做出响应&lt;/p&gt;
&lt;p&gt;response：response对象包含了响应客户请求的有关信息，但在JSP中很少直接用到它。&lt;/p&gt;
&lt;p&gt;session：session对象指的是客户
      
    
    </summary>
    
      <category term="Jsp" scheme="http://yoursite.com/categories/Jsp/"/>
    
    
      <category term="Jsp" scheme="http://yoursite.com/tags/Jsp/"/>
    
  </entry>
  
  <entry>
    <title>Hello World</title>
    <link href="http://yoursite.com/2017/09/22/hello-world/"/>
    <id>http://yoursite.com/2017/09/22/hello-world/</id>
    <published>2017-09-22T03:30:19.083Z</published>
    <updated>2017-09-22T06:52:47.427Z</updated>
    
    <content type="html"><![CDATA[<p>Welcome to <a href="https://hexo.io/" target="_blank" rel="external">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="external">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="external">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="external">GitHub</a>.</p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo new <span class="string">"My New Post"</span></div></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="external">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo server</div></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="external">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo generate</div></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="external">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">$ hexo deploy</div></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="external">Deployment</a></p>]]></content>
    
    <summary type="html">
    
      
      
        &lt;p&gt;Welcome to &lt;a href=&quot;https://hexo.io/&quot; target=&quot;_blank&quot; rel=&quot;external&quot;&gt;Hexo&lt;/a&gt;! This is your very first post. Check &lt;a href=&quot;https://hexo.
      
    
    </summary>
    
    
  </entry>
  
</feed>
