<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[WYCPhoenix的博客]]></title><description><![CDATA[一分耕耘 一分收获]]></description><link>https://blog.youkuaiyun.com/sagwsagw</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sagwsagw]]></copyright><item><title><![CDATA[Maven学习]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/78645734</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/78645734</guid><author>sagwsagw</author><pubDate>Mon, 27 Nov 2017 15:44:29 +0800</pubDate><description><![CDATA[maven学习]]></description><category></category></item><item><title><![CDATA[Log4J学习记录]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/78645683</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/78645683</guid><author>sagwsagw</author><pubDate>Mon, 27 Nov 2017 15:41:54 +0800</pubDate><description><![CDATA[log4j学习]]></description><category></category></item><item><title><![CDATA[Java网络编程——第十章  非阻塞I/O]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/73008179</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/73008179</guid><author>sagwsagw</author><pubDate>Sat, 10 Jun 2017 21:13:29 +0800</pubDate><description><![CDATA[使用非阻塞IO方式实现chargen收发协议



客户端
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.Channels;
imp]]></description><category></category></item><item><title><![CDATA[Java网络编程——第十章  安全Sokcet]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/72847441</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/72847441</guid><author>sagwsagw</author><pubDate>Fri, 02 Jun 2017 20:17:29 +0800</pubDate><description><![CDATA[对称加密，加密解密使用相同的秘钥，收发双发都必须知道这个秘钥，秘钥不可公开；加密解密速度很快
非对称加密，加密解密使用不同的秘钥，公钥用于加密，可以公开，私钥用于解密，不可公开；保证机密性。、完整性、真实性；CPU密集型，速度较慢
一般用法：用非对称加密算法加密对称加密秘钥，最后用对称加密算法加密实际数据


Java安全Socket扩展（JSSE）
javax.net.ssl，定义J]]></description><category></category></item><item><title><![CDATA[Java网络编程——第九章  服务端Sokcet]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/72823294</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/72823294</guid><author>sagwsagw</author><pubDate>Wed, 31 May 2017 19:55:03 +0800</pubDate><description><![CDATA[服务器程序基本生命周期
1、使用ServerSocket构造函数在一个特定端口创建新的ServerSocket
2、使用ServerSocket的accept()方法监听该端口的入站连接，accept()方法会一直阻塞到客户端尝试建立连接，ServerSocket返回连接客户端和服务端的Sokcet对象
3、根据服务类型，调用Socket的的inputStream()或者outputStre]]></description><category></category></item><item><title><![CDATA[Java网络编程——第八章 客户端Socket]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/72600237</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/72600237</guid><author>sagwsagw</author><pubDate>Sun, 21 May 2017 17:59:42 +0800</pubDate><description><![CDATA[客户端Socket使用方式
     1、创建Socket
     2、Socket尝试连接主机
建立连接后，本地主机和远程主机就从该Socket获得输入、输出流，且为全双工方式；创建Socket的同时会在网络上建立连接，连接超时或者监听失败，将抛出IOException，如果服务器拒绝连接则抛出ConnectException，路由器无法确定如何将包发送给服务器则抛出NoRouteToH]]></description><category></category></item><item><title><![CDATA[Java网络编程——第七章  URLConnection]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/71767348</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/71767348</guid><author>sagwsagw</author><pubDate>Fri, 12 May 2017 20:44:59 +0800</pubDate><description><![CDATA[URLConnection类
这是一个抽象类，与URL类相比，主要有以下不同点
     1、对与服务器的通信提供了更多的控制，如检查、设置首部，使用put post等http方法
     2、URLConnection是Java协议处理器（protocol hanler）的一部分，该部分还包括URLStreamHandler，将协议的细节和数据处理分开
     3、URLConnec]]></description><category></category></item><item><title><![CDATA[Java网络编程——第六章 Http协议]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/71436232</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/71436232</guid><author>sagwsagw</author><pubDate>Mon, 08 May 2017 21:41:12 +0800</pubDate><description><![CDATA[Http请求基本形式：
     1、请求头部：方法 资源路径 协议与版本
     2、请求首部：Http元数据，键值对结构，必须是ASCII字符，关键字不区分大小，值可以区分大小，也可以不区分，
     3、空行  /r/n/r/n
     4、消息体
Http响应基本形式：
     1、状态行：协议/版本、状态码、状态信息，1xx，提供信息；2、2xx，成功；3、3xx重定]]></description><category></category></item><item><title><![CDATA[Java网咯编程——第五章  URL和URI]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/71189453</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/71189453</guid><author>sagwsagw</author><pubDate>Thu, 04 May 2017 22:08:34 +0800</pubDate><description><![CDATA[统一资源标识符URI：采用特定㞏标识一个资源的字符串，一个通用的URI指定的资源是什么而不指定资源位置、如何获取，其组成如下
     模式 : 模式特定部分（典型的有授权机构、路径、查询）
其中模式可能是 data、file、ftp、http、mailto、magnet、telnet、urn
模式特定部分由ASCII字母数字组成，还包括 _ 、 - 、. 、 ！、 ~，除了用作定界符的/ ]]></description><category></category></item><item><title><![CDATA[Java网络编程——第四章 Internet地址]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/71102250</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/71102250</guid><author>sagwsagw</author><pubDate>Tue, 02 May 2017 20:56:59 +0800</pubDate><description><![CDATA[连接到Internet的设备称为节点node，其中计算机节点称为主机host
服务器至少有一个主机名，客户端往往有一个主机名，也可能没有，例如使用动态IP的主机，这里的主机名指的是DNS下的域名
服务器等往往会有多个主机名，并且一个主机名可以映射到多个IP，这种情况下DNS会随机选择一个响应请求，例如做负载均衡的服务器


InetAddress类
该类是Java对IP的高级表示，它主]]></description><category></category></item><item><title><![CDATA[Java网络编程——第二、三章 流]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/71102240</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/71102240</guid><author>sagwsagw</author><pubDate>Tue, 02 May 2017 20:55:53 +0800</pubDate><description><![CDATA[Java的IO建立在流基础上，分为字节流与字符流两大类，注意流是同步的，并且一般IO速度较慢，尽量将IO放在一个单独的线程中


输出流
java.io.OutputStream: public abstract class OutputStream
需要注意的是其中的一个基本方法
public abstract void write(int b) htrows IOException]]></description><category></category></item><item><title><![CDATA[java网络编程——第一章 基本网络概念]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/71102166</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/71102166</guid><author>sagwsagw</author><pubDate>Tue, 02 May 2017 20:54:46 +0800</pubDate><description><![CDATA[计算机网络都是包交换网络：流经过网络的数据分割成小块，称为包或者分组，每个包单独处理，优点
     多个需要交换的包可以在同一条线路上传输，降低网络成本
     可以对分组进行校验，检测包在传输过程中是否被破坏


四层模型
1、主机网络层，即网络接口层，定义了一个网络接口如何通过物理连接向网络发送IP数据包，注Java不涉及主机网络层
2、网际层，即网络层，定义了分组的结构、寻]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第十三章 线程安全与锁优化]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/59483791</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/59483791</guid><author>sagwsagw</author><pubDate>Thu, 02 Mar 2017 10:50:46 +0800</pubDate><description><![CDATA[线程安全，当多个线程访问同一个对象时，无论系统的调度方式、线程的交替执行方式、也不需要额外的同步手段、调用方法时不需要额外的协同，调用这个对象的都可以得到正确的结果


按照线程安全的强弱，分为五大类
          1、不可变Immutable，不可变对象一定是线程安全的，对象的方法实现和调用都不需要同步；前提是不可变对象被正确创建（不发生this引用逃逸），事实不可变对象也是线程安]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第十二章 Java内存模型与线程]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/59147073</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/59147073</guid><author>sagwsagw</author><pubDate>Wed, 01 Mar 2017 21:14:52 +0800</pubDate><description><![CDATA[Java内存模型JMM，主要目标是定义程序中各个变量的访问规则，即在虚拟机中将变量存储到内存和从内存读取变量的底层细节，这里的变量不包括线程私有的变量，如局部参数；内存模型规定所有变量存储在主内存；每个线程都有自己的工作内存，其中保存了该线程用到的变量的主内存的副本；注意，线程对变量的所有操作都必须在工作内存中进行，不能直接读写主内存的变量；


内存间的交互动作，即工作内存与主内存之间的拷]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机JVM高级特性与最佳实践阅读总结—— 第七章 虚拟机类加载机制]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/59074791</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/59074791</guid><author>sagwsagw</author><pubDate>Wed, 01 Mar 2017 11:44:03 +0800</pubDate><description><![CDATA[类加载机制，将描述类的class文件加载到内存，并对数据进行校验、转换接卸、初始化，最终形成尅被虚拟机直接使用的Java数据类型
Java中，类型的加载、连接、初始化都是在程序运行期间完成，动态加载和动态连接也是Java动态扩展的实现


类加载时机
一个类从加载进内存到从内存卸载，生命周期包括：
1、加载：加载时机有虚拟机确定
2、验证
3、准备
4、解析
5、初始化，遇到如]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第二章 Java内存区域与内存溢出异常]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/58703380</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/58703380</guid><author>sagwsagw</author><pubDate>Tue, 28 Feb 2017 22:50:10 +0800</pubDate><description><![CDATA[程序计数器program counter register：字节码解释器所需要执行的下一条字节码地址，由于虚拟机的多线程机制，每个线程都有一个独立的程序计数器，线程私有，各计数器之间独立存储；如果执行的是Java方法，计数器记录的是正在执行的虚拟机字节码地址；如果执行的是native方法，计数器为空（undefined）；此内存区域是唯一没有规定OutOfMemoryError情况的区域]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机JVM高级特性与最佳实践阅读总结——第三章垃圾收集器与内存分配策略]]></title><link>https://blog.youkuaiyun.com/sagwsagw/article/details/58700219</link><guid>https://blog.youkuaiyun.com/sagwsagw/article/details/58700219</guid><author>sagwsagw</author><pubDate>Tue, 28 Feb 2017 22:47:06 +0800</pubDate><description><![CDATA[引用计数法：给对象添加引用计数器，每当有一个地方引用它时，计数器值加1，；引用失效则计数器值减一，任何计数值为0的对象就是不可能被使用的
特点：简单高效，但不能解决对象之间的循环引用


可达性分析算法：以GC Roots作为起点，从这些节点开始向下搜索，搜索路径称为引用链，当一个对象到GC Roots之间不存在引用链时，该对象就是不可用的
可以用作GC Roots的对象，一般是全局性引]]></description><category></category></item></channel></rss>