摘要: 这只垂直的小爬虫,使用如下实现 HttpClient "点击进入官方文档" Jsoup "点击进入官方文档" 多线程 jdbc <! more 实现的思路很简单,我从主函数开始简单叙述一下整个运行流程, 第一步 :收集需要爬取的url地址,容器我选择的是 ConcurrentLinkedQueue 阅读全文
posted @ 2019-07-08 13:13 赐我白日梦 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 是时候了解关于字符集编码了!!! ASCII 最早计算机刚出世时,只有一ASCII编码方式, , ASCII 使用7位 标识一个字符, 对于只认识 0 1 的计算机来说, ASCII 可以记录 2^7 个字符, 针对欧美国家来说, abc... 再加上一些运算符号 ,ASCII足够用了 但是问题来了 阅读全文
posted @ 2019-07-08 13:11 赐我白日梦 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 项目中尤其是在持久层,难免会有大量的针对集合,对象,字符串的操作,为了程序的健壮性,我们不得不进行判空,像下面箭头式编码吗? <! more NO 优雅的规避空指针异常 一. 工具类 坐标 针对字符串 坐标 针对集合 上面两个工具类也是真正项目中重用的,会比我们自己写一堆if去判断相对安全 我们知道 阅读全文
posted @ 2019-07-08 13:10 赐我白日梦 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 数据库连接池的作用: 1. 资源重用 当多个用户频繁的去对数据库进行读写操作时,会不间断的创建Connection,在数据库开始读写数据之前,把资源过多的分配给创建连接释放连接上,这笔开销得不偿失.数据库连接池的对连接Connection的资源回收机制对此做出了优化 2. 更快的系统响应速度 数据库 阅读全文
posted @ 2019-07-08 13:10 赐我白日梦 阅读(860) 评论(0) 推荐(0) 编辑
摘要: 拉呱: 终于,学习jdk8的新特性了,初体验带给我的感觉真爽,代码精简的不行,可读性也很好,而且,spring5也是把jdk8的融入到血液里,总之一句话吧,说的打趣一点,学的时候自己难受,学完了写出来的代码,别人看着难受 开篇说一个问题,jdk8是如何把这些新的特性添加进来,并且兼容jdk7及以前版 阅读全文
posted @ 2019-07-08 13:09 赐我白日梦 阅读(1267) 评论(0) 推荐(0) 编辑
摘要: 关于代理设计模式,很多时候都是使用这种机制针对特定的对象进行增强,说白了就是在目标方法执行前后执行我们新添加的逻辑,达到增强的目的 <! more 尤其是Spring中,我们通过 注解把对象的创建权反转给spring,当我们再问spring索要对象的时候,返回给我们的其实是 被cglib代理过的对象 阅读全文
posted @ 2019-07-08 13:08 赐我白日梦 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 这篇记录,如何在ubuntu16 安装 FastDFS 文件服务器,详细步骤 <! more 环境依赖 安装libevent 2.0.2 安装libfastcommon master 至此,所有环境依赖ok 安装FDFS 上面那两个文件是脚本,分别用来启动FDFS的tracker和storage , 阅读全文
posted @ 2019-07-08 13:07 赐我白日梦 阅读(3073) 评论(0) 推荐(0) 编辑
摘要: 如果用户所有的请求,都需要Thyleaf渲染后直接返回给用户,后台就存在大量的查询操作,数据库的压力就会骤然上升,请求的时间就会延长,带来极不好用户体验,现在市面上流行的就是页面的静态化处理,下面就来看看,Thymeleaf如何完成页面静态化 <! more 一. 什么是静态化? 静态化就是我们把T 阅读全文
posted @ 2019-07-08 13:06 赐我白日梦 阅读(1619) 评论(0) 推荐(0) 编辑
摘要: 不得不提的TCP/IP协议,TCP/IP不是两个协议,而是一整个协议栈; TCP/IP包含如下图四层:其中每一层都使用着一个或者多个协议,遵循这些协议就可以实现不同设备之间的轻松通信 应用层(Http协议 DNS协议 Email协议...) 传输层(TCP协议 UDP协议) 网络层 (IP协议 ) 阅读全文
posted @ 2019-07-08 13:04 赐我白日梦 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 一、常识补充 点击进入redis官网 redis简介(Remote dictionary Server 远程字典服务器): 是完全开源免费的,由C语言编写的,一个高性能的(key/value)分布式内存数据库,基于内存运行, 并支持持久化的Nosql数据库,也被称为" 数据结构服务器 " 提前剧透, 阅读全文
posted @ 2019-07-08 13:00 赐我白日梦 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 消息队列是典型的生产者-消费者模型,生产者只管发送消息,消费者只管监听队列取出消息,没有业务逻辑的侵入,实现了生产者和消费者的解耦,这篇博客主要从如下几个方面整理相关RabbitMQ的知识点 消息中间件在项目中的使用场景 RabbitMQ常见的五种消息模型 如何避免消息的丢失 SpringAMQP 阅读全文
posted @ 2019-07-08 12:57 赐我白日梦 阅读(344) 评论(0) 推荐(0) 编辑
摘要: plsql : procedure language sql 是Oracle特有的数据库编程语言,普通的sql可以实现对数据的增删改查,一条sql很难做到 即查询,又根据不同的条件筛选数据,修改数据,而PLSQL可以帮我们实现 基本语法 分成三部分: 1. 声明部分 (声明一些临时变量,后续使用) 阅读全文
posted @ 2019-07-08 12:50 赐我白日梦 阅读(824) 评论(0) 推荐(1) 编辑
摘要: Oracle数据库的体系结构 1. 数据库: database Oracle数据库是数据的物理存储,和mysql不一样的是,只要我们愿意,我们就可以在mysql下创建任意的数据库,每个新项目的启动,创建一个数据库,然后通过 可以查看到全部数据库,但是Oracle的数据库是一个操作系统只有一个库,说白 阅读全文
posted @ 2019-07-08 12:49 赐我白日梦 阅读(262) 评论(0) 推荐(0) 编辑
摘要: Buffer 是java NIO中三个核心概念之一 缓存, 在java的实现体系中Buffer作为顶级抽象类存在 简单说,Buffer在做什么? 我们知道,在java IO中体系中, 因为InputStream和OutputStream是抽象类,而java又不可以多重继承,于是任何一个流要么只读,要 阅读全文
posted @ 2019-07-08 12:46 赐我白日梦 阅读(2274) 评论(0) 推荐(0) 编辑
摘要: 深入分析通过Socket进行数据文件传递中的传统IO的弊端以及NIO的零拷贝实现原理,及用户空间和内核空间的切换方式 传统的IO流程 在这个过程中: 1. 数据从磁盘拷贝进内核空间缓冲区 2. 从内核空间缓冲区拷贝到用户空间缓冲区 3. 从用户空间缓冲区拷贝回内核空间缓冲区 4. 在从内核空间缓冲区 阅读全文
posted @ 2019-07-08 12:31 赐我白日梦 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: 本片博客记录在ubuntu16下安装nginx,以及如何实现负载均衡 <! more 安装nginx 如果是新机器,安装相关依赖环境 如果没有依赖环境,编译的时候会报下面的错 2 下载nginx 到虚拟机 当然我是直接通过filezilla扔给虚拟机的 3 解压,顺道删除压缩包 4 进入nginx目 阅读全文
posted @ 2019-07-08 12:27 赐我白日梦 阅读(6937) 评论(0) 推荐(1) 编辑
摘要: 今天重装了一下虚拟机,用filezilla往Linux扔文件需要用root的超级权限,但是却不能建立连接,使用账号密码也无法登录root账户 鼓捣好一阵才知道,<! more 因为root权限太高了,可以针对root进行暴力破解密码,因此在/etc/sshd_config配置文件中默认是禁止使用账号 阅读全文
posted @ 2019-07-08 12:26 赐我白日梦 阅读(2772) 评论(0) 推荐(0) 编辑
摘要: 一. java虚拟机的内存模型如图: 补习一下jvm内存模型中的各个组成部分 堆: 1. 我们new出来的对象全部放在堆中,他是jvm所能够动态分配的最大的一块空间 2. 优点: 内存动态分配,生命周期不必事先告诉编译器,由JAVA的垃圾回收线程动态回收 栈: 1. 存取的速度仅次于CPU的寄存器, 阅读全文
posted @ 2019-07-08 12:25 赐我白日梦 阅读(902) 评论(0) 推荐(1) 编辑
摘要: JavaScript实现轮播图思路 + html/css + js源码 1. 整个轮播图的效果是通过js代码,操作dom, 拿到html我们需要的元素,控制整个ul的距离浏览器左边的位置,让排好的图片依次出现在相框中,不在相框中的元素会被css中的 overflow : hidden 隐藏掉, 其次 阅读全文
posted @ 2019-07-08 12:21 赐我白日梦 阅读(5900) 评论(0) 推荐(0) 编辑
摘要: 当我们了解了redis的五大数据类型,手动去敲一敲每个数据类型对应的命令,无论是再来看jedis,还是spring data redis都是很轻松的,他们提供的API都是基于原生的redis命令,可读性很强 <! more jedis操作五大数据类型 其实关于怎么使用jedis的对应的五大数据类型的 阅读全文
posted @ 2019-07-08 12:20 赐我白日梦 阅读(1019) 评论(0) 推荐(0) 编辑