<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NumOneDD的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/NumOneDD</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NumOneDD]]></copyright><item><title><![CDATA[TCP协议详解]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/110739436</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/110739436</guid><author>NumOneDD</author><pubDate>Sun, 06 Dec 2020 17:15:16 +0800</pubDate><description><![CDATA[1.首先看一下在浏览器地址栏中输入了url之后，到显示页面都经历了什么



  首先输入url之后需要先经过DNS服务器进行解析，解析成对应的ip地址，然后返回给客户端，接着客户端和服务器之间开始建立请求进行响应，最后进行断开，如图所示：

 

  上述过程中使用到的协议有：

      TCP:与服务器建立连接
     IP: 网络层发送数据
      OPSF:路由选择
      ARP：IP地址转换为MAC地址
  ...]]></description><category></category></item><item><title><![CDATA[Java的IO操作]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/110639358</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/110639358</guid><author>NumOneDD</author><pubDate>Fri, 04 Dec 2020 16:40:40 +0800</pubDate><description><![CDATA[1.工作中使用IO流的操作

   java的IO操作从方向上分为inputStream和outputStream。从单位上有字节流和字符流，字节流可以通过StreamReader转化为字符流，为了提高效率我们也用到了buffer流

  （以上介绍的流操作都是BIO流，项目中直接操作IO的业务场景 不是太多。但是我了解的很多分布式框架底层的通信都是使 用NIO流，NIO流最核心的组件就是Buffer、Chanel和 Selector了）

 2.文件通常是由一连串的字节或者字符组成，组...]]></description><category></category></item><item><title><![CDATA[Java中的异常处理]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/110631666</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/110631666</guid><author>NumOneDD</author><pubDate>Fri, 04 Dec 2020 14:12:37 +0800</pubDate><description><![CDATA[1.





finally关键字和return关键字执行顺序：

   

   1.只有与finally对应的try语句块得到执行的情况下finally里面的内容才会执行，如果执行不到try语句块中的内容的时候，方法就已经结束了（但是当try中的语句执行了退出虚拟机的操作 System.exit(0)的操作时，finally里面的内容不执行）

   2.如何执行到了finally中的代码块，其中有return，那么 return的值一定是finall中的值

  ...]]></description><category></category></item><item><title><![CDATA[Set接口]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/110622183</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/110622183</guid><author>NumOneDD</author><pubDate>Fri, 04 Dec 2020 10:44:24 +0800</pubDate><description><![CDATA[1.Set接口的实现类有哪些？

   HashSet：HashSet的底层其实就是一个HashMap所以是不能重复的， 只是我们add的时候只使用了HashMap的key部分。
   TreeSet：可以对Set集合进行排序，默认自然排序

2.TreeSet存放自定义类型如何实现有序的？

  分别是采用Comparable接口Comparator接口实现的

总结：Set集合的特点就是无序，不可重复对比List集合是有序的，可以重复  此处的有序，无序指的是插入数据时...]]></description><category></category></item><item><title><![CDATA[HashMap详解]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/110476878</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/110476878</guid><author>NumOneDD</author><pubDate>Wed, 02 Dec 2020 18:02:13 +0800</pubDate><description><![CDATA[1.map接口和List接口的关系



两者没有关系，都是集合，Map接口没有父类，而List的接口关系在上一篇博客中有介绍，

2.Map有哪些常用的实现类

 HashMap：底层是数组+链表+红黑树，默认 初始容量是16、扩容因子为0.75，每次采用2 倍的扩容。 

 HashTable：线程安全，遗留类，不建议使用。 

 ConcurrentHashMap：现阶段使用使用比较 多的一种线程安全的Map实现类。在1.7以前 使用的分段锁机制实现的线程安全的。1.8以 后使用synchro...]]></description><category></category></item><item><title><![CDATA[List接口的实现]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/110468499</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/110468499</guid><author>NumOneDD</author><pubDate>Wed, 02 Dec 2020 10:31:53 +0800</pubDate><description><![CDATA[1.ArrayList是线程安全的吗？


  不安全，Vector是线程安全的，但是生产环境已经不用了。目前使用CopyAndWriteArrayList 和 Collections.synchronizedList(List&lt;T&gt; list)


2.List接口的继承关系


ArrayList:底层是动态数组、查找快，增删慢，默认初始容量是10、每次采用1.5倍的容量扩容（在内存有一块连续的空间，只要有内存下标地址可以马上定位到数据）；

Vector：和ArrayList一...]]></description><category></category></item><item><title><![CDATA[单例模式的多种实现]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/109996055</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/109996055</guid><author>NumOneDD</author><pubDate>Mon, 23 Nov 2020 18:22:57 +0800</pubDate><description><![CDATA[package net.csdn.se.singletondemo;

/**
 * 线程安全的---懒汉式（懒加载）创建
 */
public class Singleton06 {

    //1\
    private Singleton06(){}

    /**
     * 2静态的内部类的方式来创建实例
     * 在内部类被加载和初始化时，才创建实例。
     * 静态内部类不会随着外部类的加载和初始化而初始化，而是在需要的时候才会进行加载和初始化
     */

    pr.]]></description><category></category></item><item><title><![CDATA[static关键字和static代码块执行顺序]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/109848267</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/109848267</guid><author>NumOneDD</author><pubDate>Fri, 20 Nov 2020 16:40:15 +0800</pubDate><description><![CDATA[1.static 使用场景：

修饰变量
	修饰方法
	可以修饰
	静态导包
法

？

impo

rt static java.lang.System.out; 

import static java.lang.Integer.*; 

public class StaticTest { 

public static void main(String[] args) { 

out.println(MAX_VALUE); 

} 

}
2.static代码块执行顺序 总结一下（父静子静，父非静，父]]></description><category></category></item><item><title><![CDATA[父类对象指向子类引用]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/109677847</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/109677847</guid><author>NumOneDD</author><pubDate>Fri, 13 Nov 2020 16:54:52 +0800</pubDate><description><![CDATA[Java多态的三个必要条件：

1、 继承

2、 子类重写父类方法

3、 父类引用指向子类对象

然后看一个例子





输出结果为：



给出结论：Father c = new Child()  在c的眼里只能看到 child 里面的 father 属性！

         当满Java多态的三个条件时，可以发现c.eat()调用的实际上是子类的eat（是因为子类重写覆盖了父类方法），

         但c.age调用的还是父类的age（属...]]></description><category></category></item><item><title><![CDATA[使用超级管理员删除 oracle用户]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/109291964</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/109291964</guid><author>NumOneDD</author><pubDate>Mon, 26 Oct 2020 16:17:29 +0800</pubDate><description><![CDATA[select saddr,sid,serial#,paddr,username,status from v$session where username is not null and username = 'OFBIZ'




alter system kill session '2010,58461' ; （2010 和 58461 分别表示SID和SERIAL# 对应的数据）

全部修改为KILLED状态即可



最后drop user OFBIZ cascade 删除用户OFBIZ
...]]></description><category></category></item><item><title><![CDATA[oracle 删除表空间错误 提示：ORA-02429]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/109290569</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/109290569</guid><author>NumOneDD</author><pubDate>Mon, 26 Oct 2020 15:20:37 +0800</pubDate><description><![CDATA[sql&gt;drop tablespace OFBIZ;
ora-01549:表空间非空，请使用INCLUDING CONTENTS 选项
sql&gt;drop tablespace OFBIZ INCLUDING CONTENTS and datafiles;
ora-00604:递归sql层1出现错误。
ora-02429:无法删除用于强制唯一/主键的索引。
sql&gt;drop tablespace OFBIZ including contents cascade constraints;
or]]></description><category></category></item><item><title><![CDATA[scrapy框架原理学习]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/108320580</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/108320580</guid><author>NumOneDD</author><pubDate>Mon, 31 Aug 2020 20:01:50 +0800</pubDate><description><![CDATA[1.Scrapy异步框架核心原理

2.Scrapy项目创建与配置

3.Middleware中间件

4.Pipeline管道文件

5.Scrapy异步抓取实战



1.理解同步和异步的取别

  同步：下一个方法依赖于上一个方法的结果 

  异步：下一个方法不依赖于上一个方法的结果







 上面图片中遇到的问题就是访问处理后一个请求需要上一次请求处理完毕，这样耗费的时间比较长，而且如果中途哪一个请求响应失败，会影响到后续的请求处理，所以引入了异步请求...]]></description><category></category></item><item><title><![CDATA[‘chromedriver‘ executable needs to be in PATH. 解决]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/108303942</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/108303942</guid><author>NumOneDD</author><pubDate>Sun, 30 Aug 2020 10:52:30 +0800</pubDate><description><![CDATA[selenium 爬虫时报错：Message: 'chromedriver' executable needs to be in PATH.Please see https://sites.google.com/a/chromium.org/chromedriver/home。

报错原因：没有配置chrome浏览器的chromedriver

解决办法：

1.确定自己所用chrome的版本

打开chrome浏览器，在网址处输入chrome://version/  即可查看版本号

2.下载对应版本..]]></description><category></category></item><item><title><![CDATA[urllib的使用]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/108261111</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/108261111</guid><author>NumOneDD</author><pubDate>Thu, 27 Aug 2020 17:05:56 +0800</pubDate><description><![CDATA[最重要的是掌握通过前端开发者工具编写好xpath语句后者正则表达式语句


import urllib.request as ur

ret = ur.urlopen('https://edu.youkuaiyun.com/') # 返回的是&lt;class 'http.client.HTTPResponse'&gt; 对象
ret = ur.urlopen('https://edu.youkuaiyun.com/').read() # 返回的是字节类型文件 &lt;class 'bytes'&gt;
print(type(r.]]></description><category></category></item><item><title><![CDATA[python中的re模块（正则表达式）和Xpath使用]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/108244752</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/108244752</guid><author>NumOneDD</author><pubDate>Wed, 26 Aug 2020 19:23:51 +0800</pubDate><description><![CDATA[&lt;?xml version="1.0" encoding="UTF-8"?&gt;
 
&lt;bookstore&gt;
 
&lt;book&gt;
  &lt;title lang="eng"&gt;Harry Potter&lt;/title&gt;
  &lt;price&gt;29.99&lt;/price&gt;
&lt;/book&gt;
 
&lt;book&gt;
  &lt;title lang="eng"&gt;Learning XML&lt;/title&gt;
  &...]]></description><category></category></item><item><title><![CDATA[数据清洗和提取策略]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/108130457</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/108130457</guid><author>NumOneDD</author><pubDate>Thu, 20 Aug 2020 19:19:00 +0800</pubDate><description><![CDATA[re模块使用
with open('re模块使用.html',mode='r',encoding='utf-8') as f:
    # 读取内容,并去除换行以空串代替
    context = re.sub('\n','',f.read())
    #定义正则
    pattern_1 = '&lt;div class="email"&gt;(.*?)&lt;/div&gt;'
    ret_1 = re.findall(pattern_1,context)
    print(re...]]></description><category></category></item><item><title><![CDATA[模型类多表操作和中间件]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/108026213</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/108026213</guid><author>NumOneDD</author><pubDate>Sat, 15 Aug 2020 19:06:30 +0800</pubDate><description><![CDATA[class User2(models.Model):
    username = models.CharField(max_length=16)

class News(models.Model):
    topic = models.CharField(max_length=100)
    #to指向一的一方，一对多 ；on_delete外键约束，级联操作；
    #帖子的发送者，一对多的关系
    # 一个User2对象能对应多个News对象,一个News对象只能对应一个User2...]]></description><category></category></item><item><title><![CDATA[python框架Django高级内容]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/107999554</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/107999554</guid><author>NumOneDD</author><pubDate>Fri, 14 Aug 2020 11:06:16 +0800</pubDate><description><![CDATA[1. Cookie的原理 

1. Cookie是由服务器生成，存储在浏览器中的键值对数据 

2. 每个域名的Cookie相互独立 

3. 浏览器访问域名为A的url地址，会把A域名下的Cookie一起传递到服务器 

4. Cookie可以设置过期时间

2. Cookie的设置与获取














路由中定义  ：  
   re_path('set_cookie/(.+)/(.+)',views.set_cookie_handler,name='set_cookie'...]]></description><category></category></item><item><title><![CDATA[模型类的增删改查，QuerySet详解]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/107978643</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/107978643</guid><author>NumOneDD</author><pubDate>Thu, 13 Aug 2020 14:38:32 +0800</pubDate><description><![CDATA[在控制台输入即可，后期开发项目不会使用这种方法


















from user.models import *

    user1 = User.objects.get(id=1)
    print(user1)

user_s = User.objects.all()

    print('user_s的类型是：', type(user_s))

from user.models import *

    user_s = User.objec...]]></description><category></category></item><item><title><![CDATA[python连接Mysql]]></title><link>https://blog.youkuaiyun.com/NumOneDD/article/details/107961341</link><guid>https://blog.youkuaiyun.com/NumOneDD/article/details/107961341</guid><author>NumOneDD</author><pubDate>Wed, 12 Aug 2020 17:03:16 +0800</pubDate><description><![CDATA[1.下载所需要的pip

 pip install mysqlclient -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

  pip install pymysql -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

2.创建Django项目，

连接时出现：



解决办法：




在url后面添加上?serverTimezon...]]></description><category></category></item></channel></rss>