自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

原文:https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A 一、HTTP的历史早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上,用户端通过浏览器访问url地址来获取网页的显示内容,但...

2018-08-23 11:34:57 377

原创 对象在内存中的初始化过程

参考:1.https://blog.csdn.net/WantFlyDaCheng/article/details/81808064 2.《深入理解java虚拟机》 Student s = new Student() 为例 1.首先查看类的符号引用,看是否已经在常量池中,在说明已经加载过了,不在的话需要进行类的加载,验证,准备,解析,初始化的过程。 2.上诉过程执行完毕以后,又将Stude...

2018-08-18 14:00:42 892

转载 Java基础-对象的内存分配与初始化(一定要明白的干货)

首先,什么是类的加载?类的加载由类加载器执行.该步骤将查找字节码(classpath指定目录),并从这些字节码中创建一个Class对象。Java虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。一旦某个类的Class对象被载入到内存,他就被用来创建这个类的所有对象。类的加载会发生在什么时候呢?所有的类都是在其第一次使用的时候,动态加载到JVM的。当程...

2018-08-18 13:40:14 1654

原创 volatile的原理和实现机制 系统级别原理 MESI协议 总结笔记

https://blog.csdn.net/jjavaboy/article/details/77164474 http://www.infoq.com/cn/articles/ftf-java-volatilevolatile原理底层是靠一个lock指令来保证顺序性和 可见性 1.lock指令会引起处理器中的工作缓存的数据强制写回到工作内存 2.lock指令会令其它CPU的工作...

2018-08-16 15:30:54 1148

原创 Java面试通关要点汇总 答案参考

原文:Java面试通关要点汇总1.基本功~GET和POST两种基本请求方法的区别答:https://www.cnblogs.com/logsharing/p/8448446.html 1.GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 GET和POST还有一个重大区别,简单的说: GET产...

2018-08-16 14:51:36 325

原创 线程的生命周期 笔记

1.新建 new Thread()进入此状态 2.Thread.start()进入就绪状态 或者 在运行状态执行yield()放弃CPU的执行转到就绪状态 或者是阻塞状态转入 3.阻塞状态 sleep() 同步锁获取失败进入阻塞状态 执行了wait方法进入一个等待状态(图中没有 https://blog.csdn.net/watering_sea/article/detail...

2018-08-16 09:31:47 185

原创 ReenTrantLcok Condition 原理笔记

参考:深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理 https://blog.csdn.net/javazejian/article/details/750434221.Condition节点 waitStatues:等待队列中结点的状态只有两种即CANCELLED和CONDITION,前者表示线程已结束需要从等待队列中移除,后者表...

2018-08-15 22:54:02 225

原创 java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueu 笔记总结

参考链接:深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueuArrayBlockingQueue1.基于数组实现,保证并发的安全性是基于ReetrantLock和Condition实现的。其中有两个重要的成员变量putindex和takeindex,这两个需要搞懂,putindex就是指向数组中上一个添加完元素的位置的下一个地方,比...

2018-08-15 10:36:42 566

原创 CopyOnWriteArrayList和CopyOnWriteArraySet 原理总结

参考链接: 聊聊并发-Java中的Copy-On-Write容器 Java并发编程与技术内幕:CopyOnWriteArrayList、CopyOnWriteArraySet源码解析前言:CopyOnWriteArrayList和CopyOnWriteArraySet 感觉非常简单,其中CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,只有add的...

2018-08-14 20:14:27 3040

原创 ThreadLocal 原理 总结

1.首先看了 Java并发编程:深入剖析ThreadLocal 这篇文章,这篇文章首先用用一个数据库连接的例子,如多个线程同时进行连接和关闭数据库操作,有可能会导致某个线程刚打开的数据库连接操作,被另一个线程打开的数据库关闭操作给关闭了。然后往下再看没看明白。 2.接着看了ThreadLocal工作原理这篇文章 这篇文章看完了了解了个大概意思:ThreadLocal 定义了多个Threadl...

2018-08-14 18:22:33 292

原创 Semaphore Exchanger 原理总结

参考链接: http://ifeve.com/concurrency-exchanger/ http://ifeve.com/concurrency-semaphore/ https://www.cnblogs.com/nullzx/p/5270233.htmlSemaphore概念:用来控制并发线程数,好比当前道路只能容纳100辆车,未到达100的时候,就可以进去,到了100的话,...

2018-08-14 14:32:35 305

原创 CountDownLatch CyclicBarrier 原理 总结

参考链接:http://ifeve.com/talk-concurrency-countdownlatch/ https://www.cnblogs.com/nullzx/p/5271964.html https://blog.csdn.net/zzg1229059735/article/details/61191679 https://www.jianshu.com/p/060761df1...

2018-08-14 14:09:18 2007 1

原创 Java多线程 面试必看 整合版

Java并发编程:Callable、Future和FutureTask 什么时候使用CountDownLatch 你真的理解CountDownLatch与CyclicBarrier使用场景吗? JAVA多线程和并发基础面试问答 40个Java多线程问题总结 并发工具类(一)等待多线程完成的CountDownLatch 并发工具类(二)同步屏障CyclicBarrier 并发工具类(...

2018-08-14 10:01:49 236

转载 HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

前言Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据。本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 HashMap,没有它就不会有后面的 ConcurrentHashMap。HashMap众所周知 HashMap 底层是基于 数组 + 链表&nbs...

2018-08-13 21:53:55 298

原创 Finally 到底实在return之前还是之后执行的?

结论:1.finally是在return返回之前执行的,也就是说finally必执行(当然是建立在try执行的基础上) 2.finally修改的基本类型是不影响返回结果的。(传值的) 3.修改list ,map,自定义类等引用类型时,是影响返回结果的。(传址的)对象也是传址的 4.其中例如return b+=10 这条语句先执行,也就是说b的值已经成了b+10了然后再去执行finally...

2018-08-13 19:29:52 1596

原创 HashMap HashSet 原理详解 与 对比

参考链接: HashSet与HashMap的区别 深入Java集合学习系列:HashMap的实现原理 Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例 Java HashSet的实现原理详解Hashmap1.原理数组链接结构,put原理:首先计算key的hash值,找到table数组中的位置,找到table[i]位置后,这个链表找是否有这个key值,...

2018-08-13 17:03:33 2300

转载 HashMap的工作原理

本文由 ImportNew - 唐小娟 翻译自 Javarevisited。欢迎加入翻译小组。转载请见文末要求。HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面...

2018-08-13 10:53:00 173

原创 ReenTranReadWriteLock 读写锁 笔记

参考博客链接: 1.https://blog.csdn.net/qq_19431333/article/details/70568478 2.https://blog.csdn.net/yanyan19880509/article/details/52435135背景知识继承AQS的类都需要使用state变量代表某种资源,ReentrantReadWriteLock中的state代...

2018-08-13 09:56:01 686

原创 Java线程池实现原理 整合版

参考链接: https://www.cnblogs.com/zhaojinxin/p/6668247.html https://www.cnblogs.com/dongguacai/p/6030187.html https://www.jianshu.com/p/87bff5cc8d8c https://github.com/crossoverJie/Java-Interview/blob...

2018-08-12 21:52:17 221

原创 java面试 面经 链接整合

https://www.suilengea.com/show/xazcigxaxa.html 【纯干货】关于Java面试,你应该准备这些知识点 https://juejin.im/entry/58f2e3bf0ce463006baf31a1 关于 Java 面试,你应该准备这些知识点...

2018-08-12 19:05:30 851

原创 AQS原理 自己浅显理解

http://ifeve.com/java-special-troops-aqs/ 这篇博客讲的很好,通篇看完收获不少,精简一下自己的收获 1.AQS是一个基于状态(state)的链表管理方式 reentracntlock这个锁是基于AQS实现的子类sync这个来完成锁 2.获取锁的时候,当前线程会去更新状态state的值,如果为0才去更新,通过CAS进行更新,如果成功更新为1,那么获取到...

2018-08-12 18:04:34 617

转载 一个学渣的阿里之路

前言最近有些朋友在面试阿里,加上 Java-Interview 项目的原因也有小伙伴和我讨论,近期也在负责部门的招牌,这让我想起年初那段长达三个月的奇葩面试经历。本来没想拿出来说的,毕竟最后也没成。但由于那几个月的经历让我了解到了大厂的工作方式、对候选同学的考察重点以及面试官的套路等都有了全新的认识。当然最重要的是这段时间的查漏补缺也让自己精进不少。先交...

2018-08-12 11:19:54 467

转载 漫画:什么是 CAS 机制?

https://blog.csdn.net/bjweimengshu/article/details/78949435点击上方“程序员小灰”,选择“置顶公众号”有趣有内涵的文章第一时间送达!—————  第二天  ————...

2018-08-12 08:59:57 194

转载 JAVA CAS原理深度分析

看了一堆文章,终于把JAVA CAS的原理深入分析清楚了。感谢GOOGLE强大的搜索,借此挖苦下百度,依靠百度什么都学习不到! 参考文档:http://www.blogjava.net/xylz/archive/2010/07/04/325206.htmlhttp://blog....

2018-08-11 23:56:01 156

转载 白话经典算法系列之七 堆与堆排序

 堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点...

2018-08-11 19:28:05 158

原创 Lintcode 464. 整数排序 II 归并排序递归与非递归实现 java

实现思路:https://blog.csdn.net/morewindows/article/details/6678165 OJ链接:https://www.lintcode.com/problem/sort-integers-ii/description AC代码:public class Solution { public void sortIntegers2(int[]...

2018-08-11 12:17:53 865

原创 Lintcode 464. 整数排序 II 冒泡排序三种实现 直接插入排序 直接选择排序 java

一.冒泡排序实现思路:https://blog.csdn.net/morewindows/article/details/6657829 Lintcode:https://www.lintcode.com/problem/sort-integers-ii/description冒泡第一种冒泡排序是非常容易理解和实现,,以从小到大排序举例:设数组长度为N。1.比较相邻的...

2018-08-10 17:10:54 956

原创 Lintcode 快排递归与非递归实现 464. 整数排序 II java

https://blog.csdn.net/morewindows/article/details/6684558 这个链接是快排讲解很好 以下是AC代码 题目链接:https://www.lintcode.com/problem/sort-integers-ii/descriptionpublic class Solution { /** * @param A: an ...

2018-08-10 00:39:31 1093

转载 Java面试通关要点汇总

基础篇基本功面向对象的特征final, finally, finalize 的区别int 和 Integer 有什么区别重载和重写的区别抽象类和接口有什么区别说说反射的用途及实现说说自定义注解的场景及实现HTTP 请求的 GET 与 POST 方式的区别session 与 cookie 区...

2018-08-10 00:32:24 221

原创 《深入理解java虚拟机》 第二章

1.运行数据区域1.1线程私有1.1.1 程序计数器字节码解释器通过程序计数器里的数值来寻找下一条要执行的指令 执行native方法无程序计数器值 无OOM1.1.2 java虚拟机栈每一个方法运行时都会建立一个栈帧,栈帧用来存储局部变量表(基本类型,对象引用),操作数栈等信息,每一个方法执行到推出对应在虚拟机栈中入栈出栈。1.1.3 本地方法栈类似虚拟...

2018-08-09 14:22:06 269

原创 java面试必看书单

编程之法 https://legacy.gitbook.com/book/wizardforcel/the-art-of-programming-by-july/details

2018-08-09 10:42:01 8041 4

转载 程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦

                程序员面试、算法研究、编程艺术、红黑树、机器学习5大经典原创系列集锦与总结 (七月在线:https://www.julyedu.com/,面试 &&nbs...

2018-08-09 10:38:08 253

转载 程序员如何快速准备面试中的算法

    程序员如何快速准备面试中的算法  准备面试、学习算法,特别推荐最新出版的新书《编程之法:面试和算法心得》,已经上架京东等各大网店前言    我决定写篇短文,即为此文。之所以要写这篇文章,缘于微博上常有朋友询问,要...

2018-08-09 10:36:45 268

转载 教你如何迅速秒杀掉:99%的海量数据处理面试题

      教你如何迅速秒杀掉:99%的海量数据处理面试题本文经过大量细致的优化后,收录于我的新书《编程之法:面试和算法心得》第六章中,新书目前已上架京东/当当作者:July出处:结构之法算法之道blog前言   一般而言,...

2018-08-09 10:29:27 12497

转载 两个Java项目之间的通信

两个java项目,他们之间进行信息的通信前提:必须知道要通信的java项目(接收请求方)的服务器的IP地址和访问路径。其实两个java项目之间的通信还是使用HTTP的请求。主要有两种方式:①使用apache的HttpClient方式。②使用JDK自带的java.net包下的HttpURLConnection方式。HttpURLConnection方式:HttpURLConn...

2018-08-09 09:30:39 3045

转载 两个项目之间如何通信

不同项目之间的通信方式分为,http、socket、webservice;其中socket通信的效率最高,youtube就采用的是原始的socket通信,他们信奉的原则是简单有效。一、http通信:    Http通信主要有两种方式POST方式和GET方...

2018-08-09 09:28:52 4113

转载 漫画:什么是ZooKeeper?

var write_sceen_time = (+new Date()); 漫画:什么是ZooKeeper? ...

2018-08-07 14:00:25 404

原创 理解GC日志 & 虚拟机一些重要的参数 《深入理解java虚拟机》

1

2018-08-06 15:55:11 194

原创 《深入理解java虚拟机》第三章

本章解决一下三个问题!!!1.哪些内存需要回收(安全点 四种引用 )2.什么时候需要回收3.如何回收?(垃圾收集算法 垃圾收集器)一.那些内存需要回收?答;死去的内存需要回收,那么问题来了如何判断哪些内存死去了? 引用计数法 已经过时,主流虚拟机不再使用,目前使用可达性分析算法1.引用计数法引用计数法实现:对象添加一个引用计数器,每当有一个地方有引用,...

2018-08-05 20:03:45 382

原创 《深入理解Java虚拟机》第四章

JDK的bin目录下自带一些工具,有jps,jstat,jinfo,jmap,jhat,jstack,jconsole,HSDISjps 虚拟机进程状况工具类似linux的ps命令,列出虚拟机进程,与进程关联的执行主类名,以及进程的ID(本地虚拟机唯一ID LVMID) jsp [option] [hostid] []中的内容代表可有可无 option代表参数,hostid虚拟机...

2018-08-04 20:42:54 318

空空如也

空空如也

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

TA关注的人

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