3 CrazyDragon_King

学生身份

我要认证

追求技术,努力学习。

等级
TA的排名 8w+

VSCode不支持Java8的解决办法

因为最近想要写一些单个的java文件,使用IDE这种重量级的工具就有点杀鸡焉用牛刀的感觉了。所以,决定使用VsCode这种轻量级的工具,但是发现它居然不支持使用Java8。但是我发现网上的方法都挺麻烦的,总结了几个人的方法之后,现在给出一个简单一点的方法。这个方法的好处在于,只需要下载一个jdk11就行了,而且它和系统中配置的jdk也不会产生冲突,非常方便。下载OpenJDK11http://jdk.java.net/java-se-ri/11下载openjdk11,然后解压到任意一个盘,但是不用配

2020-10-25 21:24:32

Java网络编程之爬虫——计算机网络、应用层协议的综合应用

前言:前几天在B站上面,看到了一个使用C/C++实现的网络爬虫,我没有看视频,只是看了评论,这位up主应该就是只使用语言本身提供的包实现的爬虫。但是,我对这种方式很有兴趣,所以我就来实现一个Java版本的,正好也是综合运用自己学习的知识。具体效果:注意:爬取过程中,出现了几个time out,但是也不影响整个爬虫的工作(出现异常的图片,可能会损坏,但是几百张失败一两次还是可以接受的),所以这里也就不处理它了,我测试了一下,把超时时间调高一点,并且当前网络通畅的话,也就不会遇到这个问题了。推荐阅读

2020-10-25 01:14:05

WebMagic在线文档抓取本地保存

前言:因为学习需要,有时候需要查看WebMagic的官方的文档,但是官方的文档是搭建在GitBook上面的,它的服务器在国外,有时候访问不是太顺畅,因此萌生了把GitBook上面的网页保存到本地的想法,这样就可以离线查看了文档了,不用受制于网络的问题。思路思路:我大致查看了gitbook上面的网页结构,左右是目录,右边是内容,这种方式阅读确实是挺方便的。然后抓取的思路也就是首先一次性把左右所有目录的url加入调度队列,然后依次下载每一页的html,然后将html转成markdown文本的形式。文档

2020-10-10 22:59:05

java仿前端开发工具HBuilder

前言最近在看一些前端的知识,但是只是看了一些标签的用法,真正到了使用的时候,却又写不出来,学习的效率很低,但是我也发现了一个有意思的点,当我在HBuilder中启动项目时,我就可以在浏览器中访问它了——这说明HBuilder本身启动了一个静态web服务器。所以,本着对这个的兴趣,我准备来自己模仿实现一个简单的HBuilder——这里只是实现可以在浏览器中访问这个特性。浏览器实现效果demo的目录结构说明:src目录下面是模拟的简单静态服务器的代码,然后提供了一个404.html页面,下面的re

2020-09-14 22:35:25

AJAX和跨域——从Java程序员的角度理解

前言:最近遇到了ajax的跨域问题,让我觉得很是棘手。跨域,对我来说是一个熟悉又陌生的问题,熟悉是因为我听过几种解决方法,陌生是因为我自己从来没有主动处理过跨域的情况。而且,我其实并不会前端知识,只是了解一个大概,所以也就没什么机会尝试。即使遇到了,也因为不会前端的知识而放弃了。不过,因为学习了计算机网络的知识、HTTP的知识、Java网络编程,我觉得我可以站在我自己的角度深入探究一下这个问题了。跨域问题所谓的域指的是当前页面所处的URL,通常包括:protocol、host/ip、端口。只要这三个有

2020-09-12 11:02:32

ArrayList的size、内部数组的length和序列化及反序列化

前言:抽时间看了一下ArrayList的代码,主要关注了它的序列化和反序列化这一块,因为这里有一个很有意思的点——用于保存数据的内部数组是使用transient修饰的。了解序列化知识的人都知道,如果一个变量被transient修饰的话,那么在序列化的时候它就会被忽略(当然了这里是针对Serialization这个接口),通常我们使用它来修饰一些我们不希望被序列化的数据,以达到保护的目的。但是,这里就会产生一个疑问,为什么ArrayList用于存储数据的内部数组elementData要使用transient

2020-08-29 15:48:50

HTTP首部——分块传输和持久连接

前言:最近写了几篇博客,讲解了几个HTTP首部,感觉自己对于知识的理解还行。现在让我们来了解以下分块传输和持久连接的概念吧。本来,我是不准备写关于持久连接的部分的,因为我都是使用socket模拟的短连接,基本用不上持久连接。但是当我使用分块传输的时候,它有一个特点。因为不适用分块连接的话,默认是有一个Content-Length首部的,但是使用了分块传输的话,就没有这个首部了。这样我的程序就很难终止了(但是也是有方法的)。所以,索性就一起都写入博客了!分块传输分块编码是属于传输编码这个范围的,不过我也

2020-08-17 20:56:41

HTTP首部——Content-Type的作用

前言对于我们习以为常的东西,却没有仔细思考它的作用。 HTTP的首部都各有个的价值,最近看到这个Content-Type,忽然让我想起来以前自己的一个小小的失误,而产生了一个bug。但是当时却搞得我焦头烂额,我在网络上查找了一圈也没有发现什么解决方案。最后,还是自己发现了写错的地方,而这个错误就是由于Content-Type所引起的。作为一名应用软件程序员,从计算机网络的角度来看,我们是工作在应用层的。所以对于应用层使用广泛的HTTP协议,还是要多了解一些。这样也有助于我们更好的理解应用,当出现我上面的这

2020-08-15 20:00:51

HTTP报文的内容编码——压缩报文实体

前言: 目前在看HTTP关于实体部分的内容编码部分,是一个很有趣的东西。在这里简单记录一下,学习到的概念,并通过两个程序来实际测试一下内容编码在传输上的效率。

2020-08-11 21:41:17

字节码文件的版本和UnsupportedClassVersionError

前言: 我们都知道JDK的不同版本编译的程序是有标识的,如果直接复制别人的class文件,在自己的机器上可能会遇到兼容性问题。如果对方的JDK版本太高了,自己无法运行他的字节码文件。但是,我这里有两个疑问:1.到底是什么决定了class文件的版本?2.低版本的jdk或者jre真的就无法运行高版本jdk编译出的class文件了吗?注意:class文件或字节码文件指的都是Java源文件经过javac编码后产生的.class后缀文件。...

2020-08-10 22:05:27

Http的范围请求与断点下载的原理

前言: 我最近在看**《HTTP权威指南》**,学习到了范围请求的概念。它也解开了我一直以来的疑惑,当初使用学习《疯狂Java讲义》的时候,曾经实现了书上的那个多线程下载,但是当时其实也是不太理解,只是知道对于一个网络上的文件,可以跳过前面的某一部分,然后读取另一部分。不过当时也没有学习计算机网络,确实对于这方面没有什么清晰的概念。参考博文:多线程断点复制Java多线程和IO流的应用这个对于输入流调用这个skip方法,跳过前面不需要读取的字节数,其实是很高级的用法了,至少隐藏了一些HTTP的实现细节

2020-08-09 15:11:43

webmagic初次尝试——写给女生看的爬虫

前言: 最近简单学习了一下一个比较知名的Java爬虫框架——webmagic。虽然还是不太理解它的整体结构,但是用来爬取数据,应该是没有问题了。而且,我发现它和我使用HttpClient和Jsoup这两个框架(类库)的时候,思考不太一样。使用上面两种工具,对网络数据进行爬取,还是比较原始的。因为爬虫其实涉及了到了很多知识,并不是简单的发起请求和接收响应,例如:URL调度、URL去重。这些东西以前都没有考虑到,对于URL调度来说,基本上没有调度,看到就爬了。这种对于小型网站或者单独的页面似乎是没有问题,但是对

2020-08-03 23:48:05

TCP长连接和短连接代码及其比较

前言: 最近又看到了关于TCP长连接和短连接的概念,以前也看过Http长连接和短连接的概念,因为Http是建立在TCP协议之上的,所以它其实是依赖TCP的长连接和短连接。所以,我就萌生了一个想法,看看这两种方式的传输效率上到底有多大差别——实践出真知!或者 Takl is cheap, show me your code!TCP长连接和短连接长连接是指可以实现服务端和客户端之间连续的传输数据,在传输的过程中,连接保持开启,并不中断,数据传输完成后连接不关闭。短连接是指当服务器端和客户端连接成功后开始传

2020-08-02 13:49:43

简单的Socket爬虫

前言今天早上在睡懒觉的时候在考虑了一个问题,我可以使用socket下载网络资源吗? 仔细考虑过之后发现这是一个很有意思的问题,它要运用到的知识都是我已经学习过了的或者是掌握了的。所以,简单思考之后就开始了工作,但是还是有许多考虑不周的地方,发现自己对于问题的理解还是过于简单化了,中间踩了不少坑!其实爬虫就是针对网络数据的采集和整理工作,我这里把它称为Socket爬虫应该也是合理的,但是这里使用Socket下载网络资源反而是次要问题,主要的问题是如何解决那些细节性的问题,从中你也可以看出网络分层的好处。 例

2020-07-19 21:33:20

文件路径和类路径

前言在初学Java的时候,路径就是一个很有意思的话题。例如安装JDK的时候需要配置JAVA_HOME、CLASSPATH(现在可以不配置CLASSPATH了)。学习IO编程的时候,不可避免需要对文件的进行操作,例如读写文件、读取配置文件等等,每一个都是一个问题。作为一个新手,我基本上都踩了坑!哈哈!因为最近又遇到一些路径上的困扰,所以来总结一下!文件中的路径这里想来说一下文件中的路径,当初刚学Java的IO流的时候,对于文件的路径一直都很迷惑,不过最初的目的也很简单,只是为了让程序运行起来,只是去查资

2020-07-16 23:32:59

前端小白的JS逆向第一次尝试

前言今天,忽然收到了一份QQ群邮件,然后登陆qq邮箱,点进去之后查看邮件内容。内容是一条链接,然后点击之后跳转到QQ邮箱登陆界面,这里就可以看出来它是一个钓鱼网站了。做的还是挺不走心的,不过粗看的话模仿的挺像的,各种东西都是跳转到腾讯的相关链接上去。然后查看网页的源,发现是js加密数据,这可激起了我的兴趣。并且,还有那个著名的反爬操作,禁止调试。哈哈! 奈何,本人没有系统学过前端课程,只是听说的多一些。所以,面对这个东西有点一脸懵逼,但是仔细看的话,它的逻辑似乎很简单:定义一个函数,调用该函数。 所以,我

2020-07-14 20:14:58

类加载器的双亲委派模型和代码热部署

前言最近看了《深入理解JVM》,发现它的内容确实在某些方面是很深入的,学习到了很多有趣的知识。但是限于自己的能力,有些地方看着也不是很理解,掌握的知识层次还是不够,可能还是要多动手实践、多看书了解相关的概念。今天看了类加载器相关的知识,因为它提到了代码的热更新(热部署),以前学习jsp的时候经常使用,所以就感觉很好奇,想来探究一下它的实现过程。所以就萌生了一个想法,结合自己学习过的知识,使用类加载器的知识来尝试写了一个简单的demo——关于代码的热部署。这里需要读者先了解:1.类加载器的概念2.类加

2020-07-12 00:22:12

对牛客网的一个Java练习题的理解

前言 Preface马上大四了,就快准备校招了。我身边的同学都开始投简历了,但是我不是很了解这方便。主要我的室友都是考研的,没有想过就业。所以平时对于这方面的了解也是比较少的。所以,现在就有点慌张了。今天下载了牛客网,先做了几个Java的小练习。发现,自己对于知识点的理解还是比较欠缺的。很多东西理解的不是很透彻,或者就没有深入理解过。所以,特地来记录一下自己的理解。如果遗漏、错误之处,欢迎指出。题目描述如果一个list初始化为{5, 3, 1},执行一下代码后,其结果为()?nums.add(6)

2020-07-10 23:13:09

Javaer搞对象的多种方式

前言 Preface上次在soul上面看到一个问题,是关于创建对象(搞对象,哈哈!)的,我当时现出来了 new、反射、克隆、序列化这四种方式,但是当时激发了兴趣,所以就来总结一下,我目前掌握的几种方式吧。提供一个用来测试的类:package dragon.obj;import java.io.Serializable;public class Girl implements Cloneable, Serializable { /** * 默认的序列化id */ private st

2020-07-09 23:37:17

get请求方式可以带方法体吗?

前言: 前几天有同学在postman中发送get请求时,把请求参数放入了请求体中。然后后端使用了@RequestBody来接收请求参数,它确实是可以这样用的!postman测试API的响应也是正常的。但是前端使用get方式传递参数,却报 400 错误。所以最终还是把@RequestBody换成了@RequestParam。或者也可以把请求方法改成post。不过第一次见到get请求方式这样使用,我感觉很古怪。因为按照我以前的学习来看,它是不行的,至少不符合规范。如果使用html的表单,是无法做到的,所以前面的

2020-07-01 20:31:07

查看更多

勋章 我的勋章
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取