自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (5)
  • 收藏
  • 关注

原创 servlet生命周期

1.servlet的生命周期主要有三个方法:init()初始化阶段service()处理客户端请求阶段destroy()终止阶段初始化阶段:Servlet容器加载Servlet,加载完成后,Servlet容器会创建一个Servlet实例并调用init()方法,init()方法只会调用一次Servlet容器会在一下几种情况装载Servlet:Servlet容器启动时自动装载某些s...

2019-04-29 11:57:21 22759

原创 servlet

先Mark,后续研究https://www.ibm.com/developerworks/cn/java/j-lo-servlet/index.htmlservlet 4.0https://www.ibm.com/developerworks/cn/java/j-javaee8-servlet4/index.htmlhttp://www.importnew.com/14621.htmlh...

2019-04-28 21:34:51 170

原创 正向代理和反向代理

**一、概念介绍**1.1 正向代理正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的网站于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容代理服务器去取回来,然后返回给我从网站的角度,只在代理服务器来取内容的时候有一次记录有时候并不知道是用户的请求,也...

2019-04-27 23:29:25 270

原创 DNS基础

域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站。IP地址是网络上标识服务器的数字地址,为了方便记忆,使用域名来代替IP地址。域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。DNS服务器会把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。域名解析时会添加解析记录,这些记录有:A记录、AA...

2019-04-27 16:13:29 408

原创 什么是CDN

**一、cdn简介**CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。CDN有别于镜像,因为它比镜像更智能,或者可以做这样一个比喻:CDN=更智能的镜像+缓存+流量导流。因而,CDN可以明显提高Inter...

2019-04-26 18:18:16 4048

原创 进程间通讯的7种方式

**1、常见的通信方式**管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流...

2019-04-26 14:23:24 271797 23

原创 用Java Socket实现SMTP邮件发送

目录:1、邮件基础概念2、Java Mail API介绍3、收发邮件代码示例PS:如果你想直接拿代码用,可以直接跳到第3部分。**一、邮件基础概念**1.1 邮件服务器和电子邮箱要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在Internet很多提供邮件服务的厂商:sina、sohu、163等等他们都有自己的邮件服务器。这些邮件服务器类似于现实生...

2019-04-26 07:55:05 5366 2

原创 Java 实现 FTP 服务

1、FTP简介FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Uploa...

2019-04-25 23:08:01 30762 6

原创 Java写一个简单的静态文件的HTTP服务器(基于Socket)

**一、实现思路**1、使用 ServerSocket 监听某一端口,然后等待连接获取 Socket对象。2、创建一个类 HttpServer 继承 java.lang.Thread 类,重写 run()方法,执行浏览器请求。3、获得浏览器请求,解析资源文件路径。4、读取资源文件,响应给浏览器。**二、代码实现**1、ServerSocket 监听端口,获取...

2019-04-25 22:45:29 2649 3

原创 cookie 与 session

1 背景介绍什么是会话?用户打开一个浏览器, 点击多个超链接, 访问服务器多个web资源, 然后关闭浏览器, 整个过程称之为一个会话。我们知道,HTTP协议是一种"无状态"协议,客户浏览器与服务器建立连接,发出请求,得到相应,然后关闭连接,这意味着每次客户端检索网页时,客户端打开一个单独的连接到 Web 服务器,服务器会自动不保留之前客户端请求的任何记录。所以容器不能辨认下一个请求和之前的请求...

2019-04-25 22:34:28 128

原创 Java RMI,Socket,HttpClient

Java RMIJava远程方法调用(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。 它使客户机上运行的程序可以调用远程服务器上的对象。 远程方法调用特性使Java编程人员能够在网络环境中分布操作。Socket网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。详见,传送...

2019-04-25 20:59:13 828

原创 HTTP get post put delte等

https://mingjia-vip.github.io/2018/03/13/说说RESTFUL中的方法:GET、POST、PUT、PATCH、DELETE、OPTIONS、HEAD、TRACE/https://itbilu.com/other/relate/EkwKysXIl.htmlhttps://www.restapitutorial.com/lessons/httpmethods....

2019-04-25 20:45:35 193

原创 http1.0 http1.1 http2 之间的区别

**一、HTTP基础**HTTP定义HTTP协议(HyperTextTransferProtocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP发展史HTTP的基本优化影响一个 HTTP 网络请求的因素主要有两个:带宽和延迟。带宽:如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础建设已经使得带宽得到极...

2019-04-25 07:46:47 2086

原创 TCP协议——粘包与拆包

TCP的基础TCP协议基础,传送门TCP协议流量控制,传送门在进行Java NIO学习时,发现,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。我们都知道TCP属于传输层的协议,传输层除了有TCP协议外还有UDP协议。那么UDP是否会发生粘包或拆包的现象呢?答案是不会。UDP是基于报文发送的,从UD...

2019-04-24 21:04:40 892 1

原创 TCP协议——流量控制和拥塞控制

**一、流量控制**1.1 什么是流量控制Sender won’t overflow receiver’s buffer by transmitting too much, too fast. (防止发送方发的太快,耗尽接收方的资源,从而使接收方来不及处理)1.2 流量控制的一些知识点(1)接收端抑制发送端的依据:接收端缓冲区的大小(2)流量控制的目标是接收端,是怕接收端来不及...

2019-04-24 14:29:04 2584

原创 TCP协议——三次握手与四次关闭

1. TCP协议基础网络编程基础见,传送门TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。TCP网络传输示意图:2. 三次握手(3-Way Handshake)第一次握手:建立连接。客户...

2019-04-24 11:08:00 682

原创 网络编程——常用协议解析

1> 什么是OSI模型OSI 模型(Open System Interconnection model)是一个由国际标准化组织

2019-04-24 07:55:39 2199

原创 设计模式——行为型模式

一:目录1. 策略模式(Strategy)2.状态模式(State)3.责任链模式(Chain Of Responsibility)4.解释器模式(Interpreter)5.命令模式(Command)6.观察者模式(Observer)7.备忘录模式(Memento)8.迭代器模式(Iterator)9.模板方法模式(Template Method)10.访问者模式(Visit...

2019-04-23 21:47:51 7165

原创 设计模式——结构型模型

1. 装饰者模式(Decorator) 2. 代理模式(Proxy) 3. 组合模式(Composite) 4. 桥接模式(Bridge) 5. 适配器模式(Adapter) 6. 蝇量模式(Flyweight) 7. 外观模式(Facade)

2019-04-23 18:23:33 2990

原创 单例模式的创建方式

说明:以下均为线程安全的实现方式。懒汉、饿汉的非线程安全的意义不大,未实现。1. 饿汉模式类初始化时直接创建对象public class Singleton { private static Singleton singleton = new Singleton(); //饿汉模式,类初始化时直接创建 public Singleton getInstance() { r...

2019-04-23 17:31:26 554

原创 设计模式

**一、基础知识**1.1 OOP三大基本特性封装封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏。继承继承是指这样一种能力,它可以使用现有的类的所有功能,并可以在无需重新编写原来类的情况下对这些功能进行扩展。多态多态指一个类实例的相同方法在不同情形有不同的表现形式。具体来说就是不同实现类对公共接口有不同的实现方式,但这些...

2019-04-23 07:53:34 85

原创 设计模式——创建型模型

目录单例模式(singleton)构建模式(Builder)原型模式(Prototype)工厂方法模式(Factory)抽象工厂模式(Abstract Factory)**一、5种创建型模型**1.1 单例模式(singleton)简介:单例模式特别简单,目的是为类创建唯一的对象。下面是单例模式的一种实现方式(单例模式的8种实现方式见,传送门):public clas...

2019-04-23 07:53:05 1402

原创 Java位运算实现加、减、乘、除、取余(Mark)

先mark,后续再搞位运算基础:https://blog.csdn.net/goskalrie/article/details/52796360加减乘除1:https://blog.csdn.net/zuochao_2013/article/details/791836212:https://www.jianshu.com/p/7bba031b11e7https://www.cnblo...

2019-04-22 18:15:20 2105

原创 尾递归

1、递归简单的来说递归就是一个函数直接或间接地调用自身,是为直接或间接递归。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。用递归需要注意以下两点:(1) 递归就是在过程或函数里调用自身。(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。递归一般用于解决三类问题:  (1)数据的定义是按递归定义的。(...

2019-04-22 17:27:07 175

原创 Java——编译与反编译

原文**一、基础知识**1.1 编程语言在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。机器语言(Machine Language)和汇编语言(Assembly Language)属...

2019-04-22 15:29:25 661

原创 Java——类加载机制

**一、什么是类的加载**类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。加载.class文件的方式 :...

2019-04-22 14:13:24 251

原创 JVM垃圾回收

**一、什么是垃圾?**对于JVM来说,什么样的对象是垃圾对象,是可以回收的呢?一般通过以下两种方式确认某对象是否是垃圾对象1.1 引用计数法引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为0的时候,JVM就认为对象不再被使用,是“垃圾”了。引用计数器实现简单,效率高;但是不能解决循环引用问问题(A对象引用B对象...

2019-04-22 07:52:09 89

原创 Java内存模型

Java内存模型原子性 synchronized可见性 volatile有序性 synchronized + volatile

2019-04-20 22:20:31 144

原创 JVM内存结构 VS Java内存模型 VS Java对象模型

Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。首先,这三个概念是完全不同的概念。本文主要对这三个概念加以区分以及简单介绍。其中每一个知识点都可以单独写一篇文章,本文主要是简要介绍。**一、...

2019-04-20 19:15:09 133

原创 Java面试题汇总

1、综合素质层面个人介绍、离职原因、兴趣爱好等https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650121143&idx=2&sn=f4c4f26bc5d2132352f12d28c8cb2264&chksm=f36bbe96c41c3780d8086adec7be8737ce3718db9c2a7f...

2019-04-20 17:58:58 224

原创 JVM——逃逸分析

首先,为解释这个问题,需要的基本知识如下(如果对以下概念不太熟悉, 可以先Google下):1.JVM内存结构,传送门2.即时编译(JIT),传送门逃逸分析在编译期间,JIT会对代码做很多优化。其中有一部分优化的目的就是减少内存堆分配压力,其中一种重要的技术叫做逃逸分析。逃逸分析(Escape Analysis)是目前Java虚拟机中比较前沿的优化技术。这是一种可以有效减少Java 程序...

2019-04-20 17:55:17 891

原创 Java中的对象一定在堆上分配吗?

首先,为解释这个问题,需要的基本知识如下(如果对以下概念不太熟悉, 可以先了解下):1.JVM内存结构,传送门2.即时编译(JIT),传送门Java对象内存分配策略一般认为,Java对象都是在堆上分配的,但也有一些特殊情况。Java对象内存分配策略:在Java中,典型的对象不在堆上分配的情况有两种:TLAB(Thread Local Allocation Buffer)和栈上分配(严格...

2019-04-20 17:40:25 10921 4

原创 深入理解 JVM Class文件格式(十)

到此, 所有关于class文件格式的重要内容都已经讲解完了, 不敢说面面俱到, 但是敢说大部分重要的内容都包含在内了。前前后后用了9篇博客来专门讲解class文件结构, 为什么花那么多的时间和精力来介绍class文件呢? 简而言之,因为它很重要。在前面的文章中, 也讲到过为什么对于理解Java体系结构来说, 理解class文件的格式至关重要。 其实这篇短文也不是对class文件格式细节上的总结, ...

2019-04-20 16:18:49 90

原创 深入理解 JVM Class文件格式(九)

经过前八篇关于class文件的博客, 关于class文件格式的内容也基本上讲完了。 本文是关于class文件格式的最后一篇。 在这篇博客中, 将会讲解关于方法的几个属性。 理解这篇博客的内容, 对于理解JVM执行引擎起着重要作用。 关于虚拟机执行引擎有关的内容, 会在本专栏后面的博客中涉及。在前面几篇博客中, 我们知道在class文件中描述一个方法, 会使用一个method_info 。 这个m...

2019-04-20 16:14:48 199

原创 深入理解 JVM Class文件格式(八)

在本专栏的第一篇文章 深入理解Java虚拟机到底是什么 中, 我们主要讲解了什么是虚拟机, 这篇博客是对JVM的一个概述。 在随后的几篇文章中,一直在讲解class文件格式。 在今天这篇博客中, 将会继续讲解class文件中的其他信息。 在本文中, 将会讲解class文件中的最后一部分, 属性(attributes) 。 这里的属性和源文件中的属性不是一个概念。 在源文件中, 我们把在类中定义的字...

2019-04-19 21:57:22 240

原创 深入理解 JVM Class文件格式(七)

本专栏列前面的一系列博客, 对Class文件中的一部分数据项进行了介绍。 本文将会继续介绍class文件中未讲解的信息。 先回顾一下上面一篇文章。 在上一篇博客中, 我们介绍了:this_class 对当前类的描述super_class 对当前类的超类的描述interfaces_count 当前类直接实现的接口的数量或当前接口直接继承的接口的数量interfaces 对...

2019-04-19 21:52:29 227

原创 深入理解 JVM Class文件格式(六)

经过前几篇文章, 终于将常量池介绍完了, 之所以花这么大的功夫介绍常量池, 是因为对于理解class文件格式,常量池是必须要了解的, 因为class文件中其他地方,大量引用了常量池中的数据项。 对于还不了解常量池的读者, 如果想要深入了解class文件格式, 或者想继续读这篇博客和本专栏以后的博客, 那么我建议先把我前面的几篇博客读一下,把常量池的结构熟悉一下, 对于理解后面的内容很有帮助。虽...

2019-04-19 21:28:49 149

原创 深入理解 JVM Class文件格式(五)

(8) CONSTANT_Class_info常量池中的一个CONSTANT_Class_info, 可以看做是CONSTANT_Class数据类型的一个实例。 他是对类或者接口的符号引用。 它描述的可以是当前类型的信息, 也可以描述对当前类的引用, 还可以描述对其他类的引用。 也就是说, 如果访问了一个类字段, 或者调用了一个类的方法, 对这些字段或方法的符号引用, 必须包含它们所在的类型的信...

2019-04-19 21:12:48 157

原创 深入理解 JVM Class文件格式(四)

(3)CONSTANT_Integer_info一个常量池中的CONSTANT_Integer_info数据项, 可以看做是CONSTANT_Integer类型的一个实例。 它存储的是源文件中出现的int型数据的值。 同样, 作为常量池中的一种数据类型, 它的第一个字节也是一个tag值, 它的tag值为3, 也就是说, 当虚拟机读到一个tag值为3的数据项时, 就知道这个数据项是一个CONSTA...

2019-04-19 20:42:06 140

原创 深入理解 JVM Class文件格式(三)

**JVM常量池中各数据项类型详解**关于常量池的大概内容, 已经在 深入理解 JVM Class文件格式(一) 中讲解过了, 这篇文章中还介绍了常量池中的11种数据类型。 本文的任务是详细讲解这11种数据类型, 深度剖析源文件中的各种信息是以什么方式存放在常量池中的。我们知道, 常量池中的数据项是通过索引来引用的, 常量池中的各个数据项之间也会相互引用。在这11中常量池数据项类型中, 有...

2019-04-19 16:15:03 269

Docker技术入门与实战

Docker经典学习教程,介绍了docker的核心概念:镜像、容器、仓库,以及一些实战经验

2018-05-07

codetemplates.xml

eclipse里的java 注释模板。

2016-07-07

一个简单的贪吃蛇游戏

这个是个人近期写的贪吃蛇,实现了随机生成食物,按键按下加速,松开减速,撞壁死亡等功能

2015-02-26

数据结构与算法上机题目及答案

数据结构上机的参考题目以及优质代码,有兴趣的同学可下载作为参考

2012-10-20

PL0编译原理实践

大连理工软甲学院小学期编译课程代码及详解

2012-07-17

空空如也

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

TA关注的人

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