<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[superscari的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/superscari</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; superscari]]></copyright><item><title><![CDATA[数组二叉树互转：将数组转换成二叉树，二叉树转换为数组表示]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/115346453</link><guid>https://blog.youkuaiyun.com/superscari/article/details/115346453</guid><author>superscari</author><pubDate>Wed, 31 Mar 2021 11:31:10 +0800</pubDate><description><![CDATA[本文先将数组转换成二叉树，再将二叉树转换成数组。

设计树节点对象时候，引入深度depth、index（在数组中索引）两个属性，方便从树节点转换为数组。

可以将不平衡的二叉树转换为数组。


import org.junit.Test;

import java.util.Arrays;

public class Traversal {
    /*
                 45
                / \
              34   5
             / \]]></description><category></category></item><item><title><![CDATA[经典兔子问题，三个月成熟的推导]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/115252974</link><guid>https://blog.youkuaiyun.com/superscari/article/details/115252974</guid><author>superscari</author><pubDate>Mon, 29 Mar 2021 14:10:37 +0800</pubDate><description><![CDATA[假设第一个月新出生一对兔子，要三个月才能成熟并产下一对兔子，之后每个月，成熟的兔子都会生产一对兔子，求n个月之后能有多少对兔子。
先看表，再推理公式（假设第n个月总兔子对数为Sn）。

Sn,0

...]]></description><category></category></item><item><title><![CDATA[欢迎使用Markdown编辑器写博客]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78862272</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78862272</guid><author>superscari</author><pubDate>Thu, 21 Dec 2017 12:05:25 +0800</pubDate><description><![CDATA[欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来，用它写博客，将会带来全新的体验哦：
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和图片上传
LaTex数学公式
UML序列图和流程图
离线写博客
导入导出Markdown文件
丰富的快捷键
快捷键
加粗    Ctrl + B 
斜体    Ctrl + I 
引用    Ctrl]]></description><category></category></item><item><title><![CDATA[spring3 struts2 hibernate3整合]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78508425</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78508425</guid><author>superscari</author><pubDate>Sat, 11 Nov 2017 20:26:13 +0800</pubDate><description><![CDATA[此种整合思路是尽量把需要配置的东西整合进applicationContext.xml中步骤： 
1、创建工程，设置编码utf-8，jsp编码 
2、导入jar包 
3、工程下创建三个source文件夹： 
    src（已存在） 
    config   配置文件所在 
    test  测试类所在 
4、src下创建持久化类+映射文件 
5、在config中创建spring文件夹，写spri]]></description><category></category></item><item><title><![CDATA[<s:token/>介绍]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78385538</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78385538</guid><author>superscari</author><pubDate>Sun, 29 Oct 2017 15:08:07 +0800</pubDate><description><![CDATA[这个标签用于防止表单因重复点击提交按钮或者刷新带来的重复提交问题，能够产生一个GUID令牌，分别存放到三个位置session（key=“struts.tokens.token”）、input隐藏域（name=“token”）和ActionContext的contextMap（key=“token”）中。利用struts2的拦截器，实现自动比较，删除令牌，从而防止重复提交（可以去搜搜令牌验证）。 
具]]></description><category></category></item><item><title><![CDATA[struts2中文件上传]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78348544</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78348544</guid><author>superscari</author><pubDate>Thu, 26 Oct 2017 01:17:39 +0800</pubDate><description><![CDATA[1、用户上传界面（注意enctype值）：<s:form action="upload1" enctype="multipart/form-data">
    <s:file label=" 照片" name="photo"></s:file>
    <s:submit value="提交"></s:submit>    
</s:form>2、struts.xml中配置： 
    其中在拦截]]></description><category></category></item><item><title><![CDATA[利用javaMail发送邮件]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78301385</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78301385</guid><author>superscari</author><pubDate>Sat, 21 Oct 2017 09:40:05 +0800</pubDate><description><![CDATA[当我们登录邮箱，发送邮件时，实际是使用了邮件发送客户端，通过SMTP发件服务器发送到指定的收件服务器(一般POP服务器)。 
发送邮件的SMTP协议主要内容(忽略)：telnet smtp.163.com 25     //在telnet中演示SMTP协议工作流程
---------------------------以下内容为SMTP
ehlo XXX    //向服务器打招呼auth login]]></description><category></category></item><item><title><![CDATA[中缀表达式转化为后缀表达式]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78291858</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78291858</guid><author>superscari</author><pubDate>Fri, 20 Oct 2017 09:32:23 +0800</pubDate><description><![CDATA[注意：中缀表达式需要空格隔开操作数或者操作符 
关键有：判断是否操作符，操作符优先级public class ProfixExpression {    public static void main(String[] args) {
        String midToProfixStr=midToPro("3 + ( 2 + 5 ) * 4 + 6");
        System.out]]></description><category></category></item><item><title><![CDATA[java统计一段英文中单词及个数]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78290585</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78290585</guid><author>superscari</author><pubDate>Thu, 19 Oct 2017 23:01:30 +0800</pubDate><description><![CDATA[public static void countWords(String str){        Map<String, Integer> map=new HashMap<String, Integer>();        
        Pattern p=Pattern.compile("\\b[a-zA-Z-]+\\b");//正则表达式
        Matcher m=p.matc]]></description><category></category></item><item><title><![CDATA[<s:property />在<s:iterator>中一个特性]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78290483</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78290483</guid><author>superscari</author><pubDate>Thu, 19 Oct 2017 22:50:23 +0800</pubDate><description><![CDATA[主要是在<s:iterator>中有没有指定var的一点特性。 
1、指定了var，先看下面代码(students是action的属性)：    <s:iterator value="students" var="stu">
        <s:property value="#stu.name"/>-
        <s:property value="#stu.age"/>-]]></description><category></category></item><item><title><![CDATA[Struts2中EL表达式]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78279765</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78279765</guid><author>superscari</author><pubDate>Thu, 19 Oct 2017 07:24:16 +0800</pubDate><description><![CDATA[传统 
jsp中，例如${person}，那么搜索顺序page-request-session-application,依次调用getAttribute(String key)方法 
Struts2中 
由于是action转到result视图，所以page一般用不到，但是其request的搜索有变化，先看Request(StrutsRequestWrapper)本身的getAttribute()方法]]></description><category></category></item><item><title><![CDATA[在struts2框架中，获得Session遇到的问题]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78265462</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78265462</guid><author>superscari</author><pubDate>Tue, 17 Oct 2017 20:03:44 +0800</pubDate><description><![CDATA[在浏览器支持Cookie情况下， 
struts.xml:<package name="p1" extends="struts-default">
    <action name="act1" class="contextMap.TestContextMap">
        <result>/contextMap.jsp</result>
    </action>
</package>对应A]]></description><category></category></item><item><title><![CDATA[代理：Proxy和Cglib]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78259265</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78259265</guid><author>superscari</author><pubDate>Tue, 17 Oct 2017 13:08:06 +0800</pubDate><description><![CDATA[代理是AOP编程的前提。 
Proxy 
是对接口某个方法的扩展，通过java.lang.reflect.Proxy类的newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)方法获得代理类，并进行功能扩展。 
Cglib 
如果需要代理的类没有实现接口，则可以基于子类进行代理。 
通过Cglib]]></description><category></category></item><item><title><![CDATA[对分页的理解]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78259206</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78259206</guid><author>superscari</author><pubDate>Tue, 17 Oct 2017 12:57:41 +0800</pubDate><description><![CDATA[在MVC编程中，分页是一种很重要的展现技术。 
个人对分页的理解在于，service层将dao层取到的数据封装到分页中进行展示。 
分页根据需要设计包含的信息，利于向客户端展示。 
下面是一个典型的分页设计：//封装与分页有关的所有信息
public class Page {
    private List records;//要显示的分页记录
    private int currentPag]]></description><category></category></item><item><title><![CDATA[ThreadLocal]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78259173</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78259173</guid><author>superscari</author><pubDate>Tue, 17 Oct 2017 12:51:07 +0800</pubDate><description><![CDATA[ThreadLocal提供了线程局部变量，可以视为内部通过一个Map(实际是内部类ThreadLocalMap)存取数据，只能在存取数据只能在同一线程有效。 
下面是该类的简单模拟，实际比这复杂：public class ThreadLocal<T>{
private Map<Runnable,T> map = new HashMap<Runnable,T>();
//把传入的参数绑定到当前线程上]]></description><category></category></item><item><title><![CDATA[jdbc:mysql连接字符串]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78256142</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78256142</guid><author>superscari</author><pubDate>Tue, 17 Oct 2017 01:30:45 +0800</pubDate><description><![CDATA[新驱动（5.7） 
    Class.forName(“com.mysql.cj.jdbc.Driver”) 
    url=jdbc:mysql://localhost:3306/数据库名?useSSL=false&serverTimezone=GMT老驱动 
    Class.forName(“com.mysql.jdbc.Driver”) 
    url=jdbc:mysql://lo]]></description><category></category></item><item><title><![CDATA[dbcp连接池简单封装]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/78256136</link><guid>https://blog.youkuaiyun.com/superscari/article/details/78256136</guid><author>superscari</author><pubDate>Tue, 17 Oct 2017 01:26:37 +0800</pubDate><description><![CDATA[dbcpconfig.properties处于src下：\u8FDE\u63A5\u8BBE\u7F6EdriverClassName=com.mysql.jdbc.Driver 
url=jdbc:mysql://localhost:3306/mydb2 
username=root 
password=zhuhailuninitialSize=10\u6700\u5927\u8FDE\u63A5]]></description><category></category></item><item><title><![CDATA[UDP聊天小程序-菜鸟]]></title><link>https://blog.youkuaiyun.com/superscari/article/details/52622871</link><guid>https://blog.youkuaiyun.com/superscari/article/details/52622871</guid><author>superscari</author><pubDate>Thu, 22 Sep 2016 14:41:54 +0800</pubDate><description><![CDATA[import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import j]]></description><category></category></item></channel></rss>