自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP里面的知识点

TCP协议段格式16位源/16位目的端口号:(负责端与端之间的数据传输)表示数据是从哪个进程来,到哪个进程去32位序号/确认序号:保证数据有序交付16位窗口大小:(实现滑动窗口,以及流量控制)自己的接受缓冲区剩余空间的大小16位校验和:保证数据一致性16位紧急指针:标识哪部分数据是紧急数据4位TCP报头长度:表示该TCP头部有多少个32位bit(有多少个4字节);所以TCP头部最小20...

2019-09-01 21:04:17 251

原创 (转)数据库重要知识点

**原创:https://blog.51cto.com/aiilive/2309361基础概念**1. 什么是数据库事务?事务有什么特点?数据库事务:是指作为单个逻辑工作单元执行的一系列操作,这些操作要么全做,要么全不做,是一个不可分割的工作单元。事务特点:原子性一致性隔离性持久性特2. 主键和外键的区别?主键所在的列的值是唯一的,不可为空的外键所在的列的值可以重复,...

2019-08-29 22:37:07 199

原创 Future、lock体系、死锁、AQS

Future:取得Callable接口返回值get() : V 当前线程阻塞直到有返回值为止FutureTask 在多线程并发下可以保证任务(传入的Callable或Runnable)只执行一次线程中提交方法:void execute(Runnable r);V submit(Runnable r)V submit(Callable c)JDK1.8 CompletableFutur...

2019-08-26 23:04:54 506

原创 说说一个url访问的完整流程

用户输入url之后大致发生了以下几件事浏览器查找域名的 IP 地址,这一步包括了DNS解析,具体的查找过程,包括:浏览器缓存–>系统缓存–>路由器缓存…浏览器向 web 服务器发送一个 http 请求:三次握手、传送数据、四次挥手;服务器的永久重定向响应:返回真正访问地址浏览器跟踪重定向地址:另发一个 http 请求服务器处理请求服务器返回一个 http 响应浏览器...

2019-08-15 23:31:21 2128

原创 浅谈DNS域名解析

DNS解析DNS解析的过程就是寻找哪台机器上有你需要资源的过程,寻找的过程遵循就近原则。输入一个网址并按回车的时候浏览器会根据输入的URL去查找对应的IP,具体过程如下:(1)首先是查找浏览器缓存,浏览器会保存一段时间内访问过的一些网址的DNS信息,不同浏览器保存的时常不等。(2)如果没有找到对应的记录,这个时候浏览器会尝试调用操作系统缓存来继续查找这个网址的对应DNS信息。(3)如果还...

2019-08-10 17:47:45 680

原创 排序大礼包

https://youyinnn.github.io/?to=post&number=42上述文章内容为转载,非本人原创,以学习参考为主,在此感谢原创。

2019-08-06 14:14:16 229

原创 Java锁的种类以及辨认

Java锁的种类以及辨析 :锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) 。这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及。截止JDK1.8版本,java并发框架支持锁包括: 读写锁, 自旋锁, 乐观锁。锁的分类:1、自旋锁 ,自旋,jvm默认是10次吧,有jvm自己控制...

2019-08-02 17:15:13 426

原创 TCP的三次握手与四次挥手

TCP的三次握手:假设A是客户端,B是服务器端1 . 首先B 处于LISTEN(监听)状态,等待客户端的连接请求2 . A向B发送请求报文,SYN=1,ACK = 0 ,选择一个初始的序号x。3 . B收到连接请求报文,如果同意建立连接,则向A发送连接确认报文,SYN = 1,ACK= 1,确认序号为x+1,同时也选择一个初始的序号y。3 . A收到B的连接确认报文后,还要向B发出确认...

2019-08-01 22:01:42 118

原创 HTTP状态码

HTTP 状态码服务器返回的 响应报文 中第一行为状态行,包含了状态码以及原因短语,用来告知客户端请求的结果。状态码 类别 含义1XX Informational(信息性状态码) 接收的请求正在处理2XX Success(成功状态码) 请求正常处理完毕3XX Redirection(重定向状态码) 需要进行附加操作以完成请求4XX Client Error(客户端错误状态码) 服务器无...

2019-07-31 17:38:53 165

原创 synchronized、volatile、serialize、static关键字

synchronized关键字:用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一个时刻最多只有一个线程执行这个代码块volayile:用来确保将变量的跟新操作通知到其他线程,当把变量声明为volatile类型后,编译器与运行时都会注意到这个变量是共享的,因此不会将该变量上的操作与其他内存内存操作一起重排序。然而,在访问volatile变量时不会执行加锁操作,因此也就不...

2019-07-30 12:45:51 254

转载 Servlet转发和重定向response.sendRedirecte()区别

转发(forward):IE浏览器的地址不会发生改变,始终是一个请求重定向(sendRedirect):IE浏览器的地址会发生改变,有俩个请求一、转发1 . 地址栏不会改变2 . 转发只能转发到当前web应用内的资源3 . 可以在转发过程中,可以把数据保存到request域对象中以request.getRequestDispatcher("/list.jsp").forward(req...

2019-07-29 10:05:31 243

转载 构造函数可以私有化吗

通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?没错,我也知道这将会使构造函数成为私有的,这意味着什么?我们知道,当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有的,由于在class外部不允许访问私有成员,所以这将导致编译出错。你于是说...

2019-07-28 22:13:20 814 1

原创 死锁

一、什么是死锁死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。二、死锁产生的原因1 . 系统资源的竞争系统资源的竞争导致系统资源不足,以及资源分配不当,导致死锁。2 . 进程运行推进顺序不合适进程在运行的过程中,请求和释放的资源不当,会导致死锁三 、死锁的四个必要条件:1 . 互斥条件:一个资源每次只能被一个进程使用,即在一段时间内某...

2019-07-28 22:08:58 163

原创 throws与throw关键字

throws:用在方法声明上,明确告诉调用者本方法可能产生的异常,但方法本身不处理,将异常抛回给调用方。受查异常:强制用户进行异常处理(要么try/catch要么再给上层抛出)非受查异常:Error、RuntimeException及其子类,不强制用户进行异常处理。(NullPointerException、ClassCastException、ArrayOutofBoundsExcepti...

2019-07-27 15:06:39 274

原创 反射

反射:根据现有对象倒推类的组成最核心:Class类任何一个类在JVM中都有唯一的一个class对象,此对象记录该类的组成结构。当类在加载时由JVM产生,用户只能取得此对象无法创建。要想在java中应用反射,首先取得该类的class对象1 . 调用Object提供的getClass方法2 . 类名称 . class3 .调用Class类提供的静态方法Class.forName(类的全名...

2019-07-27 15:02:54 125

原创 Future、lock、AQS、syrchronized

Future:取得Callable接口返回值get() : V 当前线程阻塞直到有返回值为止FutureTask 在多线程并发下可以保证任务(传入的Callable或Runnable)只执行一次线程中提交方法void execute(Runnable r);V submit(Runnable r)V submit(Callable c)JDK1.8 CompletableFuture...

2019-07-26 16:55:22 162

原创 线程池

线程池1 . 线程池的优点:I . 降低资源消耗:通过重复利用已创建的线程降低线程的创建与销毁带来的损耗II . 提高响应速度:当任务到达时,无须等待线程创建就可以立即执行III. 提高线程的可管理性:使用线程池可以统一进行线程分配、调度与监控2 . 线程池的继承关系Executor–execute(Runnable command)-----> 被ExecutorService...

2019-07-26 16:50:45 215

原创 多线程

多线程1 . 进程:操作系统中资源分配的最小单位线程:进程中的独立任务,操作系统中任务调度的最小单位,依赖进程存在在一个进程中线程共享资源。2 . java中多线程实现继承Thread实现Runnable实现Callable线程池 — 推荐3 . 常用操作方法sleep():不释放对象锁,立即交出执行权yield()(让步):交出cpu时间不确定,由系统调度决定,只会让拥有相...

2019-07-26 16:15:08 120

原创 CAS操作

1 .CAS :Compare And Swap (比较交换机制)–乐观锁悲观锁:(JDK1 . 6之前的内建锁)假设每一次执行同步代码块均会产生冲突,所以当线程获取锁成功,会阻塞其他尝试获取该锁的线程。乐观锁:(Lock)假设所有线程访问共享资源时不会出现冲突,既然不会出现冲突自然就不会阻塞时其他线程。线程不会出现阻塞状态。CAS(无锁操作),使用CAS叫做比较交换来判断是否出现冲突,出现...

2019-07-25 11:03:26 868

原创 JVM-深浅拷贝、序列化

序列化:概念:将内存中保存的对象变为二进制流进行输出或者保存在文本中。–将对象变为二进制流要想让类支持序列化,必须实现Serializable接口。(标识接口)Serializable接口为标识接口,只有实现了Serializable接口的类才具备对象序列化功能。具体实现序列化和反序列化,需要使用io包中提供的俩个处理类:序列化类:ObjectOutputStream:选择目标终端...

2019-07-25 10:44:35 270

原创 类加载器

类加载器3 . 1 .定义类加载的定义:通过一个类的全名称获取到此类的二进制字节流类加载器:实现类加载功能的代码模块3 . 2 JDK内置的三大类加载器3 . 2 . 1 BootStrap(启动类加载器)I . 使用C++语言实现,是JVM自身的一部分,独立于JVM外部,并且无法被java程序直接引用。II . 负责将存放于JAVA_HOME\lib目录下的 能被JVM识别的所有类...

2019-07-25 10:36:51 87

原创 线程与进程

*1 . 进程与线程的区别***进程的概念:进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户调用一个程序,系统就创建一个进程,并为它分配资源,包括各种内存空间、磁盘空间、IO设备等。然后,把该进程放入进程的就绪队列。进程调度程序选中它,为它分配 CPU以及有关的资源,该进程才能真正运行,所以,进程是系统中的并发执行的单位。在Mac、Windows NT等采用微内核结构的操...

2019-05-10 23:43:42 182

原创 实现扑克牌的洗牌功能

首先,需要创建一个关于扑克牌的类,里面包括花色和点数,再写一个构造方法,然后写一个函数完成生成扑克牌的操作,主要是将所有花色和点数都存在一个String类型的数组中,然后通过双层for循环,生成扑克牌,存放在一个集合中去,我选择的是LinkedList。再然后就是写一个洗牌的操作,先产生随机对象,然后产生俩个随机索引值,通过 索引值取出集合中的元素,然后再进行交换,外层可以选择交换的次数。最...

2019-04-27 18:04:48 2200

原创 用List实现登陆注册功能

今天花了一个小时左右用List做出来登陆注册功能,做的过程中主要遇到了以下问题:1 . 注册功能时,遍历集合是否含有此账号,使用了迭代器,发现逻辑方面很难实现,最后想到了集合的contains方法,就方便了许多。2 . 对于一个变量的使用特别关键,尤其是boolean类型的变量,可以省下好多事情。3 .做完后,发现这个题用set更方便,因为set是无序且不可重复的,不需要判断集合是否被注册。...

2019-04-07 23:32:46 1388

原创 单例集合体系

单例集合的体系Collection :单例集合的根接口-------List :如果实现了List接口的集合类,具备的特点:有序,可重复---------------| ArraryList 底层 是使用了Object数组实现的,特点: 查询速度快,增删慢。---------------| LinkedList 底层是使用了链表数据结构实现 的, 特点: 查询速度慢,增删快。-----...

2019-04-05 18:12:13 355

原创 丑数

1 . 编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明:1 是丑数。初次看到这道题的时候,没有一点...

2019-04-04 23:09:02 205

原创 单链表的基本用法

俗话说,熟能生巧,刚刚接触链表的时候,可能觉得这东西太不好理解了,代码是敲出来的,所以把最基本的链表中增、删、改、除练习的特别熟的时候,才会更容易明白以后得双链表以及他们的反转和各类题型,千里之行始于足下,所以我把单链表最基本用法写出来,希望可以帮助到你。初始化public class data1 { public static class Node{ Node ne...

2019-04-04 20:54:34 489

原创 快速排序

快速排序:20世纪最重要的算法之一,基于分治思想 O(nlogn),1s轻松完成百万数量级的排序算法思路:从待排序的数组中选取任意一个元素[l…r],称为分区点(基准值)开始遍历过程,每当发现比基准值小的元素就放在基准值左边,每当发现>=基准值元素就放在基准值右边。当结束一次遍历时,基准值元素一定在最终位置。分区函数能否原地排序?O(1)问题:当待排序元素近乎有序时,若选取的基准值恰...

2019-03-23 12:48:05 170

原创 三子棋的爆炸

** 三子棋的爆炸**现在是2018年11.16号00:07分,学习c语言几周以来,完成的第一个小小的游戏,虽然对很多很多人来说,这是一个再简单不过的代码,但是就我而言,已经是很大一步,这不仅给了我充足的信心,而且也更坚定了我学习编程的决心,不管以后可以热爱多久,从事什么,至少现在来说,会是我俩年后的的工...

2018-11-16 16:15:28 186

原创 确认过眼神,是搞程序的人

                                              确认过眼神,是搞程序的人           首先呢,我是西安科技大学2016级本科大三在读学生,就读于通信与信息工程学院通信工程专业,喜欢篮球,喜欢吉他,外表看似高冷,内心有些许闷骚,性格外向,喜欢交一些待人真诚或者有一些共同爱好的的朋友,以前喜欢玩游戏,目前玩的很少,需要把精力放在学习上,认准敲...

2018-11-01 14:31:30 298

空空如也

空空如也

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

TA关注的人

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