自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我是太阳

不满足是向上的车轮

  • 博客(150)
  • 收藏
  • 关注

原创 域名解析过程以及IP地址和MAC地址

其实之前在准备腾讯的面试的时候有看过这样的问题,但是昨天室友突然问的时候又一时想不起来每个过程(有点尴尬),其实这也反映出了我计算机网络很不扎实。今天趁着有时间总结一下: 浏览器通过域名(例如:www.baidu.com)发起一个网络请求的时候,会有DNS服务器将域名解析成ip地址,以便向正确的ip地址发送请求,那么这一个过程具体是怎么处理的呢?什么是DNS在互联网中,其实没有类似于www.xxx.com这种域名方式,而替代的是以IP地址,如222.222.222.222,那我们在IE地址栏中应当输入

2020-07-11 19:23:44 4361

原创 JWT

在了解JWT之前,我们应该都有了Cookie和Session的知识,在这里简单的回顾一下什么是Cookie和Session。Cookie在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判

2020-07-10 18:08:36 313

原创 JAVA基础细节(6.22)

1、使用abstract修饰类时,表明这个类只能被继承;使用abstract修饰方法时,表明这个方法必须由子类提供实现(即重写)。而final修饰的类不能被继承,final修饰的方法不能被重写。因此final和abstract永远不能同时使用。2、封装3、继承4、多态理解:不同类的对象对同一消息作出不同的响应就叫做多态。就像上课铃响了,上体育课的学生跑到操场上站好,上语文课的学生在教室里坐好一样。如果不去理解多态的原理,就从使用的角度来讲,以个人的学习、工作这几年的经验,总结出了多态无非就是三句话

2020-06-22 11:08:25 298

原创 MySql突击学习(6.17)

能够熟练的书写SQL基本上是一个程序员基本的素养。对于我来说,之前每次都是遇到不会的就去问百度,这虽然能解决在日常开发中的一些问题,但是面试的时候可不会让你去问百度,这就要求我们对SQL语句熟练掌握,目前市面上主流的关系型数据库有MySql和Oracle数据库,但这两种数据库所用的sql语句有所差异。下面将总结一下在写SQL的时候遇到的问题以及一些注意点。当然想要提高sql能力,力扣刷题也是一个不错的选择。一、嵌套查询1、什么是嵌套查询?嵌套查询的意思是,一个查询语句(select-from-wher

2020-06-17 20:40:08 340

原创 理解SpringIOC和SpringAOP(6.16)

关于SpringIOC和AOP之前也看了很多博客,但是总感觉始终没有一个很清楚的认识,现在对之前看到的一些博客做一个小总结以及自己的一点理解。一、Spring IOC(底层实现:反射)1、SpringIOC是什么?即“控制反转”,控制反转另外一种说法叫DI,即依赖注入,是利用反射机制,不是什么技术,而是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。通俗点说许多应用都是通过彼此间的相互合作来实现业务逻辑的,如类A要调用类B的方法,以前我..

2020-06-16 16:57:07 659 3

原创 解开对==和equals的困惑(6.15)

一、理解==的含义在java中,主要有两个作用。1、基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。2、引用数据类型:比较的是引用的地址是否相同,比如说新建了两个User对象,比较的是两个User的地址是否一样。OK。到这就注意了,你会发现,我在举引用的例子的时候,使用的是User对象,而不是String。别着急接着往下看。二、理解equals的含义先看看他的源码,equals方法是在Object中就有。注意了这里的源码是Object里面的equals

2020-06-15 11:18:52 202

原创 面试题总结(6.15)

本来以为来到了学校就可以专心的学习了,但是却发现还是高估了自己的自控能力了,不仅没有学习,反而更加放纵的去玩耍,也可能和来到学校后发生的一些列事情有关吧,总之是该调整一下自己得状态了。将近两个月没有更新博客了,这也反映了我自己的懒散,接下来的这段日子里每天会记录一下自己看过的一些面试题。1.八大基本数据类型,以及所占位数2.Object类里面的一些常用方法答:Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。 主要方法如

2020-06-15 09:54:10 234

原创 阿里一面------大厂的面试一定不要放弃,会有意外的收获!

一、面试前3-21投递的简历,参加了3-27号阿里的笔试 ,只有两个算法题,只完成了第一个题的百分之60,心态炸了,第二题根本没写,根本没想过能进面试。笔试题也忘记了。。。。。。今天上午在撸铁,突然,就很突然收到了面试电话,和我约一个面试的时间。(本意是想拒绝的,因为压根觉得没希望能进,但是想着还是学习一下)本来要约到下周的,但是他说面试要截止了只能今天。好吧,本来我也没报什么希望,就约到了下午...

2020-04-26 17:23:28 1139 2

原创 双亲委派

双亲委派原则他的工作流程是: 当一个类加载器收到类加载任务,会先交给其父类加载器去完成,因此最终加载任务都会传递到顶层的启动类加载器,只有当父类加载器无法完成加载任务时,才会尝试执行加载任务。这个理解起来就简单了,比如说,另外一个人给小费,自己不会先去直接拿来塞自己钱包,我们先把钱给领导,领导再给领导,一直到公司老板,老板不想要了,再一级一级往下分。老板要是要这个钱,下面的领导和自己就一分钱没有...

2020-04-09 16:13:09 256

原创 笔试学习记录(网易2)

单例模式-双重校验锁public class SingleTon3 { private SingleTon3(){}; //私有化构造方法 private static volatile SingleTon3 singleTon=null; public static SingleTon3 getInstance...

2020-04-08 22:01:43 198

原创 笔试学习记录(网易1)

1、怎样理解一个类是线程安全的?答:判定一个线程是否安全的基础是在多线程情况下,对一个变量进行操作是否有误差。当多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问,直到该线程读取完,其他线程才可使用。这样是为了防止出现数据不一致或者数据污染的情况。举例:比如一个 ArrayList 类,在添加一个元素的时候,它可能会有两步来完成:1. 在 Items...

2020-04-03 20:08:59 220

原创 线程安全问题

a++造成运行结果错误原因分析:首先我们有两个线程,在做i++的时候,看似是一条语句,实际上是三个步骤在执行。假设最开始 i 的值是1,理论估计在经过两个线程之后,i 的值应该为3。但是实际上结果是2,那么具体的流程是怎样的呢 ?第一个线程在拿到1之后把它加了,但是并没有立刻把它写进去,导致第二个线程在拿的时候,由于第一个线程的值虽然计算完毕了,但是没有告诉任何人,因此第二个线程拿到的还是1...

2020-04-02 10:17:49 176

原创 线程属性

面试问题:

2020-04-01 08:31:50 112

原创 Thread和Object类中的重要方法详解

方法概览Wait 和 Notifypackage threadcoreknowledge.threadobjectclasscommonmethods;/** * 描述: 展示wait和notify的基本用法 1. 研究代码执行顺序 2. 证明wait释放锁 */public class Wait { public static Object object = n...

2020-03-31 14:28:31 395

原创 深入理解HashMap

哈希表核心是基于哈希值的桶和链表O(1)的平均查找、插入、删除时间致命的缺陷是哈希值的碰撞(collision)图表理解Java7中的HashMap(数组+链表)一、put操作理解。1、首先对于HashMap,我们存的是什么呢?就是key和value,表面上上我们看到的key和value是分开的,但是真正在实现的时候,HashMap会把这个key和value生成一个Entry对象,...

2020-03-30 21:24:36 252

原创 线程的生命周期

New 、Runnable、Blocked 、Waiting、Timed Waiting、Terminated查看线程的六种状态:Stream.of(Thread.State.values()).forEach(System.out::println);New代表已创建但还没启动的新线程。就是指当我们new Thread之后还没有调用start()方法。此时线程就处于new这个状态。事实...

2020-03-30 10:31:28 180

原创 错误停止线程

被弃用的stop、suspend、resume方法。为什么Thread.stop会被弃用从SUN的官方文档可以得知,调用Thread.stop()方法是不安全的,这是因为当调用Thread.stop()方法时,会发生下面两件事:即刻抛出ThreadDeath异常,在线程的run()方法内,任何一点都有可能抛出ThreadDeath Error,包括在catch或finally语句中。...

2020-03-29 15:42:53 144

原创 正确停止线程

原理介绍:使用interrupt来通知,而不是强制 核心:想要停止线程其实是如何运用interrupt来通知那个线程,以及被停止的线程如何配合。我们作为想停止线程的一方,根本没有能力去强行停止。由于我们想要终端的是其他的线程,这个线程很有可能不是我们来写的,我们或许对这个正在运行的线程的业务逻辑根本就不熟悉,我们想让它停止,其实是希望他完成了一系列的保存、交接工作再停止,而不希望它立刻停...

2020-03-29 10:26:48 255

原创 start()方法和run()方法

一、start()方法1、start()方法含义 1、启动新线程。当我们执行了start()方法之后这个线程不一定会立刻执行,其实是在告诉jvm中的线程调度器在合适的时间去启动。例如:我们可能会创建两个线程,分别是线程1和线程2,但线程1先调用start()方法,线程2后调用,缺发现线程2先执行,这其实是不违背启动顺序的。也就是说调用start()方法的顺序并不能决定执行的顺序。2、一个...

2020-03-28 20:48:54 4040

原创 鹅厂一面凉经------也许这就是成长吧!

一、面试前本人大三,双非院校(三本),大二自学JAVA,专业类比赛有过获奖,仅此而已!无意中在牛客的官网上看到了腾讯的提前批招聘信息,于是抱着侥幸的心理投递了后台开发岗,过了两天收到了面试的短信,当时既开心又紧张。开心的是我的简历竟然也获得了面试资格(笑嘻嘻),紧张不言而喻!于是开始了一天半的准备时间!根据牛客网友的分享我也大约准备了 40 几道面试题,但是好像并没有什么※用!二、面试中...

2020-03-26 18:11:51 3103 2

原创 LeetCode---2.两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 ## 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 ## 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ...

2020-03-20 08:51:10 1300

原创 快速排序---效率极高

代码实现:package sort;public class quickSort { public static void main(String[] args) { int arr[] = {6, 3, 7, 9, 5, 1, 4, 8}; quickSort(arr, 0, arr.length - 1); for (int ...

2020-03-17 17:29:18 1509

原创 Trie字典树 (处理字符串)

主要用于处理字符串,将字符串一个一个拆开。import java.util.TreeMap;public class Trie { private class Node{ public boolean isWord; public TreeMap<Character, Node> next; public Node(...

2020-03-16 16:16:54 1280

原创 线段树(区间树)

为什么使用线段树?什么是线段树?每一个节点存储的是一个区间中相应统计值

2020-03-16 13:00:32 1275

原创 实现多线程的正确姿势

网上和书籍的各种方法:鱼龙混杂

2020-03-09 18:20:15 1407

原创 HTTP缓存

2020-03-09 10:25:35 1134

原创 Http管理状态:Cooki与Session

2020-03-09 10:11:07 1191

原创 DNS域名解析和HTTP事务处理过程

2020-03-09 09:41:40 1154

原创 透过TCP/IP看HTTP

经过三次握手后,客户端和服务端都确认了各自的发送和接收能力是无误的。也就是说想要建立连接至少要三次握手!

2020-03-08 14:13:13 1109

原创 解析配置文件redis.conf

参数说明redis.conf 配置项说明如下:Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为637...

2020-02-19 16:26:31 3502

原创 Redis的客户端Jedis

Jedis所需要的jar包 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifact...

2020-02-19 16:23:54 3616

原创 Redis五大数据类型

Redis键String(字符串)string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512MString...

2020-02-19 11:22:17 5173

原创 Redis安装(Linux)

1、将下载好的安装包放/opt目录下2、查看并解压3、安装及运行执行make命令如果make完成后继续执行make install设置开启后台进程 编辑redis.conf将原来的redis.conf文件拷贝到自己新建的myredis目录中运行及测试查看进程 用shutdown命令关闭redis...

2020-02-18 11:51:54 6147

原创 Redis入门概述(相关概念)

1、Nosql是什么?2、能干嘛?易拓展 大数据量高性能 多样灵活的数据模型 RDBMS(传统关系型数据库 VS NOSQL 3、去哪下?4、怎么玩?5、互联网的3v+3高...

2020-02-18 09:58:31 6205

原创 当下的NoSQL的经典应用(Sql+NoSql)

阿里巴巴中文站商品信息如何存放一、阿里巴巴架构的发展历程1、演变过程2、第五代架构3、第五代架构使命

2020-02-18 09:56:28 6426

原创 Nosql入门概述(互联网时代下,为什么要用 Nosql)

1、单机mysql的美好年代2、Memcached(缓存)+Mysql+垂直拆分3、Mysql主从复制读写分离4、分表分库+水平拆分+mysql集群5、 Mysql的拓展性瓶颈6、今天是什么样子7、为什么要是用Nosql...

2020-02-17 16:08:39 7517

原创 Lombok的使用

简介实现原理注解的两种解析方式运行时解析:在程序运行时,通过反射来获取这些注解值,但是有个缺点,只有在程序运行的时候,才能获取到这些注解值,导致时的代码效率很低。并且,如果我们想要在编译阶段,利用这些注解进行检查,这样是无能为力的。编译时解析:运用在编译时。java也提供了两种解决方案注解处理器的工作原理流程图Lombok常用注解Lombok的优缺点Maven依赖引入...

2020-02-17 13:42:33 7540

原创 Swagger2快速上手

1、背景相信无论是前端还是后端开发,都或多或少地被接口文档折磨过。前端经常抱怨后端给的接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。其实无论是前端调用后端,还是后端调用后端,都期望有一个好的接口文档。但是这个接口文档对于程序员来说,就跟注释一样,经常会抱怨别人写的代码没有写注释,然而自己写起代码起来,最讨厌的,也是写注释。所以仅仅只通过强制来规范大家是不够...

2020-02-17 11:42:15 7652

原创 优先队列的实现

基于堆的优先队列package MaxHeap;import Queue.Queue;public class PriorityQueue<E extends Comparable<E>> implements Queue<E> { private MaxHeap<E> maxHeap; public PriorityQ...

2020-02-16 15:20:21 7814

原创 堆的操作

向堆中添加元素上浮操作代码: public void swap(int i, int j) { if (i < 0 || i >= size || j < 0 || j >= size) throw new IllegalArgumentException("Index is illegal."); ...

2020-02-15 16:28:07 9571

空空如也

空空如也

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

TA关注的人

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