<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Odenes的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Odenes</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Odenes]]></copyright><item><title><![CDATA[内部类的那些事]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/121552056</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/121552056</guid><author>Odenes</author><pubDate>Fri, 26 Nov 2021 09:46:59 +0800</pubDate><description><![CDATA[什么是内部类

顾名思义，就是一个OuterTest的内部的类SubTest叫内部类。
（内部类：SubTest，外部类：OuterTest）
类的组成：属性，方法，构造器，代码块（普通款，构造块，静态块，同步块），内部类组成

内部类的组成

内部类：成员内部类（静态和非静态的）和局部内部类（方法内，构造器内和代码块内）
成员内部类：包含属性，方法，构造器等
修饰符：public，protected，default，private，final，abstract

非静态成员内部类
public class]]></description><category></category></item><item><title><![CDATA[关于静态的那些事]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/121531776</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/121531776</guid><author>Odenes</author><pubDate>Thu, 25 Nov 2021 14:51:44 +0800</pubDate><description><![CDATA[什么是静态属性

静态属性又称为类属性，类变量，由类直接进行管理。
由static这个关键字来修饰
类变量可以被继承，但是不能被重写。（重写只针对于方法，不管是静态变量还是成员变量都不是被重写）
扩展：
隐藏（在一个类中，子类中的成员变量如果和父类中的成员变量同名，那么即使他们类型不一样，只要名字一样。父类中的成员变量都会被隐藏。在子类中，父类的成员变量不能被简单的用引用来访问。而是，必须从父类的引用获得父类被隐藏的成员变量。）

public class Animal {
    public stati]]></description><category></category></item><item><title><![CDATA[mybatis_SQL映射结果（一对多）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/112359072</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/112359072</guid><author>Odenes</author><pubDate>Fri, 08 Jan 2021 14:08:40 +0800</pubDate><description><![CDATA[数据库详情见上一篇
一对多的情况如下：

查询客户ID为4的所有订单的信息。
方法一：

&lt;mapper namespace="com.blb.mapper.UserMap"&gt;
    &lt;!--  一对多 --&gt;
    &lt;resultMap id="aaa" type="Customer"&gt;
        &lt;id property="id" column="id"&gt;&lt;/id&gt;
        &lt;result property="name"]]></description><category></category></item><item><title><![CDATA[mybatis_SQL映射结果（多对一）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/112348462</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/112348462</guid><author>Odenes</author><pubDate>Fri, 08 Jan 2021 14:00:01 +0800</pubDate><description><![CDATA[数据库创建两张表：Customer和Order


多对一的情况如下：

查询订单号为4的客户的相关信息。
方法一：

&lt;mapper namespace="com.blb.mapper.OrderMapper"&gt;
&lt;!--    多对一--&gt;
    &lt;resultMap id="bbb" type="Order"&gt;
        &lt;id property="id" column="id"&gt;&lt;/id&gt;
        &lt;result pr]]></description><category></category></item><item><title><![CDATA[Git入门（三）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111936933</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111936933</guid><author>Odenes</author><pubDate>Tue, 29 Dec 2020 20:59:48 +0800</pubDate><description><![CDATA[git clone
我们使用 git clone 从现有 Git 仓库中拷贝项目（类似 svn checkout）。
//粘贴目标仓库的URL
$ git clone https://gitee.com/layle707789/git.git

git clone 时，可以所用不同的协议，包括 ssh, git, https 等，其中最常用的是 ssh，因为速度较快，还可以配置公钥免输入密码。各种写法如下：
git clone git@github.com:fsliurujie/test.git      ]]></description><category></category></item><item><title><![CDATA[Git入门（二）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111936272</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111936272</guid><author>Odenes</author><pubDate>Tue, 29 Dec 2020 20:41:00 +0800</pubDate><description><![CDATA[Git 创建仓库
Git 使用 git init 命令来初始化一个 Git 仓库，Git 的很多命令都需要在 Git 的仓库中运行，所以 git init 是使用 Git 的第一个命令。
在执行完成 git init 命令后，Git 仓库会生成一个 .git 目录，该目录包含了资源的所有元数据，其他的项目目录保持不变。
工作区，暂存区，仓库，码云端之间的操作

工作区提交到暂存区：

admin@admin-PC MINGW64 ~/Desktop/git2 (master)//创建文件 one.txt
$]]></description><category></category></item><item><title><![CDATA[Git入门（一）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111935981</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111935981</guid><author>Odenes</author><pubDate>Tue, 29 Dec 2020 20:08:05 +0800</pubDate><description><![CDATA[What is Git
Git 是一个开源的分布式版本控制系统，用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同，它采用了分布式版本库的方式，不必服务器端软件支持。
Git与SVN的区别
Git 不仅仅是个版本控制系统，它也是个内容管理系统(CMS)，工作管理系统等。

Git 是分布式的，SVN 不是：这是 Git 和其它非分布式的版]]></description><category></category></item><item><title><![CDATA[初始JavaWeb（六）—— JSTL]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111462571</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111462571</guid><author>Odenes</author><pubDate>Sun, 20 Dec 2020 21:03:38 +0800</pubDate><description><![CDATA[JSP 标准标签库
JSP标准标签库（JSTL）是一个JSP标签集合，它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务，比如迭代，条件判断，XML文档操作，国际化标签，SQL标签。 除了这些，它还提供了一个框架来使用集成JSTL的自定义标签。根据JSTL标签所提供的功能，可以将其分为5个类别。
JSTL包含哪几类

核心标签
格式化标签
SQL 标签
XML 标签
JSTL 函数

下载安装包
 官方下载地址：http://archive.apache.org/dist/jakarta/t]]></description><category></category></item><item><title><![CDATA[初始JavaWeb（五）——Session]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111462250</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111462250</guid><author>Odenes</author><pubDate>Sun, 20 Dec 2020 20:53:44 +0800</pubDate><description><![CDATA[JSP Session
HTTP是无状态协议，这意味着每次客户端检索网页时，都要单独打开一个服务器连接，因此服务器不会记录下先前客户端请求的任何信息。
有三种方法来维持客户端与服务器的会话：

Cookies：
网络服务器可以指定一个唯一的session ID作为cookie来代表每个客户端，用来识别这个客户端接下来的请求。
这可能不是一种有效的方式，因为很多时候浏览器并不一定支持cookie，所以我们不建议使用这种方法来维持会话。

//向客户端添加cookie
String nameKey = URLE]]></description><category></category></item><item><title><![CDATA[初始Javaweb（四）—— 文件的上传与下载]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111114657</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111114657</guid><author>Odenes</author><pubDate>Sun, 13 Dec 2020 15:01:11 +0800</pubDate><description><![CDATA[JSP 文件上传
JSP 可以与 HTML form 标签一起使用，来允许用户上传文件到服务器。上传的文件可以是文本文件或图像文件或任何文档。
创建一个文件上传表单
注意要求如下：

表单 method 属性应该设置为 POST 方法，不能使用 GET 方法。
表单 enctype 属性应该设置为 multipart/form-data.
表单 action 属性应该设置为在后端服务器上处理文件上传的 Servlet 文件。下面的实例使用了 UploadServlet Servlet 来上传文件。

&lt]]></description><category></category></item><item><title><![CDATA[初识Javaweb（三）—— Cookie处理]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/111108250</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/111108250</guid><author>Odenes</author><pubDate>Sun, 13 Dec 2020 14:26:40 +0800</pubDate><description><![CDATA[什么是Cookie
Cookie 是存储在客户机的文本文件，它们保存了大量轨迹信息。在 Servlet 技术基础上，JSP 显然能够提供对 HTTP cookie 的支持。
通常有三个步骤来识别回头客：

服务器脚本发送一系列 cookie 至浏览器。比如名字，年龄，ID 号码等等。
浏览器在本地机中存储这些信息，以备不时之需。
当下一次浏览器发送任何请求至服务器时，它会同时将这些 cookie 信息发送给服务器，然后服务器使用这些信息来识别用户或者干些其它事情。

在JSP中如何使用Cookie
使用 J]]></description><category></category></item><item><title><![CDATA[初识Javaweb（二）——JSP]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/110693064</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/110693064</guid><author>Odenes</author><pubDate>Sat, 05 Dec 2020 16:05:16 +0800</pubDate><description><![CDATA[什么是JSP
JSP全称Java Server Pages，是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以&lt;%开头以%&gt;结束。
JSP是Java+servlet，主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源，然后动态地创建网页。
JSP标签有多种功能，比如访问数据库、记录用户选择信息、访问Jav]]></description><category></category></item><item><title><![CDATA[初识Javaweb (一) ——Servlet]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/110684660</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/110684660</guid><author>Odenes</author><pubDate>Sat, 05 Dec 2020 15:33:33 +0800</pubDate><description><![CDATA[什么是Servlet
Java Servlet 是运行在 Web 服务器或应用服务器上的程序，它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
Servlet的任务是做什么

读取客户端（浏览器）发送的显式的数据。这包括网页上的 HTML 表单，或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
读取客户端（浏览器）发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
处理数据并]]></description><category></category></item><item><title><![CDATA[回顾Java基础（二）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/110287130</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/110287130</guid><author>Odenes</author><pubDate>Sun, 29 Nov 2020 15:16:28 +0800</pubDate><description><![CDATA[接口和抽象类的区别





抽象类
接口




默认方法
抽象类可以有默认的方法实现。
java 8之前,接口中不存在方法的实现。


实现方式
子类使用extends关键字来继承抽象类。如果子类不是抽象类,子类需要提供抽象类中所声明方法的实现。
子类使用implements来实现接口,需要提供接口中所有声明的实现。


构造器
抽象类中可以有构造器
接口中不能


和普通类区别
抽象类不能被实例化。
接口则是完全不同的类型。


访问修饰符
抽象方法可以有public,protected和defaul]]></description><category></category></item><item><title><![CDATA[回顾Java基础（一）]]></title><link>https://blog.youkuaiyun.com/Odenes/article/details/110262062</link><guid>https://blog.youkuaiyun.com/Odenes/article/details/110262062</guid><author>Odenes</author><pubDate>Sat, 28 Nov 2020 16:42:58 +0800</pubDate><description><![CDATA[Java创建对象的几种方式

new创建新对象
通过放射机制创建
采用clone机制创建
通过序列化来创建
前两者都需要显式地调用构造方法. 对于clone机制,需要注意浅拷贝和深拷贝的区别,对于序列化机制需要明确其实现原理,在java中序列化可以通过实现Externalizable或者Serializable来实现.

Java中==和equals（）的区别

==是运算符，用于比较两个变量是否相等，对于基本数据类型比较的是变量的值；对于对象类型而言，比较的是对象的地址。
equals()是object类]]></description><category></category></item></channel></rss>