自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

转载 Linux安装MySQL5.7

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 移动并重命名mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql创建mysql用户组和用户并修改权限groupadd mysqluseradd -r -g mysql mysql创建数据目录并赋予权限mk

2021-06-19 12:12:07 189

原创 怎么确保数据在网络传输的安全性?

引入网络传输数据时的四个问题:窃听假冒篡改-事后否认以上问题对应的解决方法:“数字签名”技术存在“无法确认公开密钥的制作者”这一问题。要想解决这个问题,可以使用“数字证书”技术。加密方式共享密钥加密(对称加密)共享密钥加密是加密和解密都使用相同密钥的一种加密方式。由于使用的密钥相同,所以这种算法也被称为“对称加密”。因为窃听者不知道通信双方的密钥,解决了窃听的问题。相关算法(凯撒密码、AES[插图]、DES[插图]、动态口令等,其中AES的应用最为广泛

2021-06-13 08:57:09 3930

原创 二叉树的总结

树的遍历(递归)前序遍历public void pre(TreeNode root){ if(root == null) return; System.out.println(root.val); pre(root.left); pre(root.right);}中序遍历public void mid(TreeNode root){ if(root == null) return; mid(root.left); System.out.println(root.val); m

2021-05-29 17:46:31 200

原创 不会初始化子类的几种情况

调用的是父类的static方法或者字段调用的是父类的final方法或者字段通过数组来引用package com.jielin;public class main { public static void main(String[] args) { //System.out.println(A.a); //A初始化! //1 //System.out.println(B.b); //2 /.

2021-05-04 20:10:35 260

原创 序列化,反序列化,serializableVersionUID

序列化与反序列化过程中,要面临版本问题。例如,将一个 User类的对象 user1持久化到了硬盘中,然后增删了 User类的属性,那么此时还能将持久化在硬盘中的 user1对象的序列还原成一个新的 User类的对象吗?该问题的回答需要涉及 Serializable接口的 serialVersionUID字段。serialVersionUID字段叫作序列化版本控制字段。在反序列化过程中,如果对象字节序列中的 serialVersionUID与当前类的该值不同,则反序列化失败,否则成功。如果没有显式地为一个类

2021-04-26 09:50:01 289

原创 Minor GC Major GC 和 Full GC

本文来源于知乎RednaxelaFX的回答Partial GC不是针对整个堆的回收Young GC只收集新生代的GCOld GC只收集老年代的GC,CMS就是这个模式MixedGCG1垃圾回收器的收集方式,收集整个新生代以及部分老年代的GC(根据用户设定的时间,选择收益高的进行回收,收益:回收后可得到的空间以及收集的期望时间)Full GC收集整个堆,针对整个堆触发Minor GC新创建的对象无法在eden区放下,出发Minor GC。将清理掉无用对象,存活对象移动到Survivor

2021-04-05 14:22:53 127

原创 接口和抽象类的区别

接口中的方法默认是public,不允许接口中有具体实现的方法(Java8可以有默认实现),抽象类可以有非抽象的方法一个类可以实现多个接口,当时只能继承一个抽象类,接口也可以通过extends扩展接口接口方法默认修饰符是public,抽象方法可以有public,protected和defau这些修饰符(抽象方法就是为了被子类重写,所以不能用private修饰)...

2021-04-05 10:53:06 113

原创 JWT

JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.JWT.IO allows you to decode, verify and generate JWT.JSON Web令牌是一种开放的行业标准RFC 7519方法,用于在双方之间安全地表示索赔。JWT。IO允许您解码、验证和生成JWT。session通过一个sessi

2021-04-04 16:19:14 146

原创 TCP三次握手的一些细节

客户端第一个syn包丢失处理流程主要在客户端,主要在一定时间内没有收到应答的ACK包,就会触发超时重传机制,分别尝试三次5.8,24,48s, 三次时间大约是76s左右。服务端收到syn包但是回复的syn,ack包丢失客户端没有收到,那么就会执行上面客户端第一个syn包丢失的流程。服务端认为客户端在设定的时间内没有收到客户端发送的ack包,触发重传,就会重发syn,ack包。服务端会依次等待3,6,12s后再重新发送。这个包的重传次数可以配置,超过设定的数值后,会自动关闭这个连接。客户端收到服.

2021-04-04 11:27:32 491

原创 线程和进程的区别

区别进程是一个独立的运行环境,而线程是在进程中执行的一个任务。他们两个本质的区别是是否单独占有内存地址空间及其它系统资源(比如I/O):进程单独占有一定的内存地址空间,所以进程间存在内存隔离,数据是分开的,数据共享复杂但是同步简单,各个进程之间互不干扰;而线程共享所属进程占有的内存地址空间和资源,数据共享简单,但是同步复杂。进程单独占有一定的内存地址空间,一个进程出现问题不会影响其他进程,不影响主程序的稳定性,可靠性高;一个线程崩溃可能影响整个程序的稳定性,可靠性较低。进程单独占有一定的内存地址空间

2021-03-25 21:47:52 148

原创 Spring Boot跨域的问题

java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*"since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explici

2021-03-22 20:07:22 176

原创 SpringMVC执行原理

概述DispatcherServlet是SpringMVC的控制中心,用户发出请求,它接收请求并拦截请求注册控制器,在web.xml中<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>Archetype Cr.

2021-02-25 19:58:45 122

原创 Java网络编程-----用UDP实现一个简单的聊天室

TalkSenderimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.*;public class TalkSender implements Runnable { DatagramSocket datagramSocket = null; BufferedReader bufferedReader = null;

2021-02-13 15:14:06 280 1

原创 Linux安装JDK

Linux安装JDK下载网址下载JDK在/root下创建一个文件夹/root/Java将下载的gz文件放在Java目录下,要找Java目录下运行:tar xvf jdk-8u221-linux-x64.tar.gz配置环境变量vi /etc/profile在该文件done和unset i之间加入以下追加以下代码export JAVA_HOME=/root/Java/jdk1.8.0_221/export JRE_HOME=${JAVA_HOME}/jreexport

2021-02-10 11:32:54 171

原创 HTTP + 加密 + 认证 + 完整性保护 = HTTPS

引入在HTTP协议通信过程中使用未经加密的明文,比如在Web页面中输入信用卡号,如果这条通信线路遭到窃听,那么信用卡号就暴露了。另外,对于HTTP来说,服务器也好,客户端也好,都是没有办法确认通信方的。因为很有可能并不是和原本预想的通信方在实际通信。并且还需要考虑到接收到的报文在通信途中已经遭到篡改这一可能性。为了统一解决上述这些问题,需要在HTTP上再加入加密处理和认证等机制。我们把添加了加密及认证机制的HTTP称为HTTPS(HTTP Secure)。HTTPSHTTPS并非是应用层的一种新协议。

2021-02-08 17:58:45 825

原创 多线程---多生产者与多消费者 (if/while之间的区别)

引入这是一个线程同步问题,生产者和消费者共享一个资源,并且生产者相互依赖,互为条件。对于生产者,没有生产产品之前,要通知消费者等待,生产了产品后,要通知消费者可以消费对于消费者,在消费之后,要通知生产者自己结束了消费,可以生产产品了synchronized 关键字可以阻止并发地更新同一个资源,可以实现同步,但是不能用来实现不同线程间的消息传递,也即是通信wait让线程一直等待,直到其它线程通知,会释放锁,可以传递一个类型为long的参数,表示指定等待的毫秒数notify

2021-02-03 23:04:55 982

原创 重定向和转发的差别

转发:第一个Servelt工作完毕后,代替当前浏览器向Tomcat申请调用第二个Servlet。Tomcat在接受到申请之后,调用第二个Servelt来完成本次请求中剩余任务重定向:第一个Servlet工作完毕后,将【第二个Servelt地址】推送给用户浏览器,由用户浏览器根据这个地址来【自动的】向第二个Servelt发送请求1.response.sendRedirect(第二个Servelt地址)—— —— —— —— —— —— ——2.response.setHeader(“Loca...

2021-02-02 18:21:51 124

原创 计算机网络-网络状态码

网络状态码客户端向服务器端发出请求后,返回的描述结果1XX信息状态码2XX成功状态码200请求处理成功,返回相关信息204请求处理成功,但响应报文没有主题返回206客户端进行了范围请求,服务器成功执行请求并返回指定范围的实体内容3XX重定向状态码301永久性重定向。请求的资源已经被分配到新的url302临时性重定向304客户端发送附带条件的请求后,服务器允许请求,但内容并没修改,返回304。

2021-02-02 11:12:21 221

原创 利用IDEA的debug带你读懂 装饰模式

利用IDEA的debug带你读懂 装饰模式假如有这样一个需求:设计一个电话类,有最基础的打电话的功能。第一个需求是打电话之前播放一段铃声,这时候我们就很自然想到再写一个铃声电话类继承电话类,重写继承继承自父类的方法。现在又有新需求,打完电话后,还要给出当前的通话时间,而且也要实现第一个需求怎么办?好的,我们还可以使用继承,写一个类继承前面刚实现的铃声电话类……看起来,设计的难度不大,但是假如我们有更多的需求,那么是不是要继承前面的类。假如我们对其中的一个父类进行了修改,那么实现它的子类都会发生变化,可见,

2021-01-28 13:20:25 233 4

原创 protected关键字的深入

protected关键字的深入public class testProtected { public static void main(String[] args) { MyObject myObject = new MyObject(); myObject.clone(); }}class MyObject{}上面这段代码有什么错误?编译能通过吗?![image.png](https://img-blog.csdnimg.cn/img_conver

2021-01-28 00:00:47 314

原创 Java泛型/通配符/泛型擦除

Java泛型/通配符/泛型擦除Java泛型设计原则:只要在编译时期没有出现警告,那么运行时期就不会出现ClassCastException异常.泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊的类型参数化类型:把类型当作是参数一样传递<数据类型> 只能是引用类型相关术语:ArrayList<E>中的E称为类型参数变量ArrayList<Integer>中的Integer称为实际类型参数整个称为ArrayList<E>泛型类

2021-01-27 22:46:02 215

原创 gulp的使用

glup的使用安装下面是一个demo目录结构代码插件的安装项目代码作者:凌杰林用自动化构建工具增强你的工作流程!用gulp简化你的开发。安装1.官网安装Node.jsNode.js的安装工作…2.安装gulp到本地npm install gulp -g3.进入到你想开发项目的目录cd (该目录的路径)4.初始化当前目录npm init会自动生成package.json文件保存当前项目的配置信息5.在当前项目安装gulp到本地npm install gulp --sa

2020-07-30 16:39:57 189

原创 安装sass

安装sass失败问题使用淘宝镜像作者:凌杰林最近在安装gulp-sass总是报错,经过一番查询后才发现原来这个是依赖node-sass的,安装node-sass会访问github上下载文件,但是国内网络不肯定,经常会安装不成功,所以我们通过第三方服务器安装该文件。使用淘宝镜像在你当前的工作目录下,运行以下命令:npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm

2020-07-30 10:07:00 209

原创 Java实现读者写者问题--读者优先

Java实现读者写者问题--读者优先简介分析类的编写Semaphore类Reader类细节Writer类其他类数据格式源代码小结作者:凌杰林简介临界资源:同一时间只能由一个进程访问的资源临界区:访问临界资源的代码段读者写者问题:存在一个多个进程共享的数据区(临界资源),该数据区可以是一个文件或者一块内存空间,甚至可以是一组寄存器;有些进程reader只读取这个数据区的数据,有些进程writer只往数据区中写数据。此外,还需要满足以下条件:1.任意数量的读进程可以同时读这个文件。2.一次只能

2020-07-28 09:10:53 3514 14

原创 json跨域问题

JSON的跨域问题简介实现原理天气查询的DEMO效果效果作者凌杰林参考链接:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ynnrA3xJ-1595836563884)(https://blog.youkuaiyun.com/upxiaofeng/article/details/51095825)]简介在我们使用ajax访问其它服务其上的数据是候,经常会出现跨域问题。原因:由于JavaScript语言安全限制的同源策略造成的,所谓同源策略,是指一段脚本只能读取同一来源的窗口

2020-07-27 15:58:21 494

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除