自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java虚拟机(JVM)面试题(总结最全面的面试题!!!)

文章目录Java内存模型我们开发人员编写的Java代码是怎么让电脑认识的为什么说java是跨平台语言Jdk和Jre和JVM的区别说一下 JVM由那些部分组成,运行流程是什么?说一下 JVM 运行时数据区详细的介绍下程序计数器?(重点理解)详细介绍下Java虚拟机栈?(重点理解)一个方法调用另一个方法,会创建很多栈帧吗?栈指向堆是什么意思?递归的调用自己会创建很多栈帧吗?你能给我详细的介绍Java堆...

2020-04-12 00:39:39 14586 8

原创 TCP、UDP、Socket、HTTP面试题(总结最全面的面试题!!!)

文章目录先看一天面试的经验:什么是网络编程网络编程中两个主要的问题网络协议是什么为什么要对网络协议分层计算机网络体系结构1 TCP / UDP1.1 什么是TCP/IP和UDP1.2 TCP与UDP区别:1.3 TCP和UDP的应用场景:1.4 形容一下TCP和UDP1.5 运行在TCP 或UDP的应用层协议分析。什么是ARP协议 (Address Resolution Protocol)?什么是...

2020-04-11 23:13:06 10677 4

原创 超硬核!!!一篇文章搞定BIO、NIO、AIO、Netty(详细基础内容+网络编程内容+代码示例)【网络编程 2】

BIO、NIO、AIO、NettyBIO、NIO、AIO、Netty什么是IO在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别什么是BIO什么是NIO什么是AIO什么NettyBIO和NIO、AIO的区别IO流的分类什么是内核空间五种IO模型1.阻塞IO(blocking I/O)2.非阻塞IO(noblocking I/O)3.异步IO(asynchronous I/O)4.信号驱动I...

2020-04-03 17:36:22 8872 2

原创 超硬核!!!一篇文章搞定TCP、UDP、Socket、HTTP(详细网络编程内容+现实解释三次握手四次挥手+代码示例)【网络编程 1】

什么是网络编程网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Serve...

2020-04-03 17:33:43 10782 3

原创 一篇文章掌握整个JVM,JVM超详细解析!!!

JVM先想想一些问题1 我们开发人员编写的Java代码是怎么让电脑认识的2 为什么说java是跨平台语言3 Jdk和Jre和JVM的区别4 为什么要学习JVM深入学习JVM1 JVM运行时数据区2 解析JVM运行时数据区2.1 方法区(Method Area)2.2 Java堆(Java Heap)2.3 程序计数器(Program Counter Register)2.4 Java虚拟机栈(Ja...

2020-03-30 17:23:10 123975 82

原创 【玩转Docker容器 7】基于Docker安装Jenkins实现自动化构建、部署、监控项目

什么是JenkinsJenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,它用Java语言编写而成,可持续集成、自动的构建/测试软件项目、监控外部任务的运行的web界面的平台CI/CD是什么CI(Continuous integration),中文意思是持续集成,是一种软件开发时间。持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新...

2020-03-24 14:02:30 7466 2

原创 【玩转Docker容器 6】基于Docker构建GitLab管理代码

基于Docker构建GitLab管理代码1.什么是GitLab2.Git GitHub GitLib GitLab有什么区别3.基于Docker部署GitLab环境搭建1.下载GitLab镜像文件2.创建GitLab配置3.运行GitLab容器4.设置Http访问GitLab5.将host的值改成映射的外部主机ip地址和端口6.重启GitLab容器,实现访问4.如何使用GitLab实现项目管理1....

2020-03-14 00:01:00 7476 7

原创 【玩转Docker容器 5】基于Docker搭建Maven私服,以及项目如何使用Maven私服详解

1.Nexus是什么Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。2.Nexus和Maven私服原理解释:Nexus就是Maven的私服仓库,一般大...

2020-03-13 02:21:48 4149 4

原创 【玩转Docker容器 4】基于Docker搭建Docker私服,以及如何使用Docker私服详解

1.Nexus是什么Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。我们可以在局域网搭建一个maven私服,用来部署第三方公共构件或者作为远程仓库在该局域网的一个代理。2.Nexus和Maven私服原理解释:Nexus就是Maven的私服仓库,一般大...

2020-03-12 23:42:23 3668

原创 【玩转Docker容器 3】基于Docker部署SpringBoot项目

Docker部署SpringBoot提供一个简单的项目1.修改application.yml或者application.properties文件2.打包成jar包3.上传项目到linux中4. 制作Docker镜像5.创建Docker容器6.启动自己创建的Docker容器7.外网访问项目8.测试项目提供一个简单的项目有的话就可以自己部署自己的项目我这里提供一个简单的基于SpringBoot...

2020-03-11 23:38:58 1371 1

原创 【玩转Docker容器 2】基于Docker一分钟搭建完 Jdk、Mysql、Nginx、Redis、Tomcat环境

1.配置镜像加速器在国内,阿里云、163都提供了docker仓库,但是阿里云还提供了加速功能。所以,我们选用阿里云的加速。163的仓库地址:http://c.163.com/hub#/m/home,使用阿里云,需要到阿里云进行注册,获取到自己专属的加速地址。不配置镜像加速器的话,网络非常慢,最快只有100-200k的速度配置阿里云的加速器,速度可达40-50M以上,所以有什么理由不配置1....

2020-03-10 23:44:40 5978 2

原创 【玩转Docker容器 1】Docker的详解及安装

Docker官方网址: https://docs.docker.com/ 英文地址Docker中文网址: http://www.docker.org.cn/ 中文地址1.Docker-简介Docker是基于Go语言实现的云开源项目,诞生于2013年初,最初发起者是dotClouw公司。Docker 自开源后受到广泛的关注和讨论,目前已有多个相关项目,逐断形成了围Docker的生态体系。...

2020-03-10 15:11:00 13096 2

原创 MySql面试题(总结最全面的面试题!!!)

文章目录什么是SQL?什么是MySQL?MySql, Oracle,Sql Service的区别数据库三大范式是什么mysql有关权限的表都有哪几个数据库经常使用的函数数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?怎么创建索引的,有什么好处,有哪些...

2020-04-15 11:28:09 4666 1

原创 超硬核!一篇文章彻底搞懂【二叉树】及的前序、中序、后序三种遍历

树的概念与特性1 树的概念树是类似于链表的线性结构,但又是一种典型的非线性的结构;树具有很强的层级性,相比于线性结构,其时间复杂度更低,效率更高;读者可以联系,生活中看见的树;2 树的术语先看一张树的图片如下,去除图中的箭头和相关术语,树就是一种非线性的层级结构;树的相关术语如下:根节点: 没有父节点的节点,上图 A节点;兄弟节点:具有相同的父节点的孩子节点;比如 F,G...

2020-04-15 10:00:39 1415 3

原创 排序算法(原理、Java实现、动态图)

八大排序算法Java实现文章目录八大排序算法Java实现什么是排序?排序的分类算法分析1、冒泡排序基本思想算法描述动态效果如下Java代码实现比较与总结2、选择排序基本思想算法描述动图效果如下Java代码实现比较与总结3、插入排序基本思想算法描述动态效果如下Java代码实现比较与总结4、快速排序基本思想算法描述动态效果如下Java代码实现比较与总结5、归并排序基本思想算法描述动态效果如下Java...

2020-04-15 00:40:51 1285

原创 Java基础面试题(总结最全面的面试题!!!)

文章目录什么是JavaJava 语言有哪些特点?面向对象和面向过程的区别什么是跨平台性?原理是什么==、hashcode和equals==equals()hashcode为什么要有hashcodehashcode和equals的相关规定JVM JDK 和 JRE 是什么JVMJDK和JREJava和C++的区别?基本类型字符型常量和字符串常量的区别?自动装箱与拆箱说说&和&&amp...

2020-04-14 23:30:21 2840

原创 Mybatis面试题(总结最全面的面试题!!!)

什么是数据持久化?数据持久化是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。例如,文件的存储、数据的读取等都是数据持久化操作。数据模型可以是任何数据结构或对象的模型、XML、二进制流等。 当我们编写应用程序操作数据库,对表数据进行增删改查的操作的时候就是数据持久化的操作。Mybatis框架简介MyBatis框架是一个开源的数据持久层框架。它的内部封装了...

2020-04-14 22:24:58 19635 3

原创 Java并发编程面试题(总结最全面的面试题!!!)

文章目录基础知识为什么要使用并发编程多线程应用场景并发编程有什么缺点并发编程三个必要因素是什么?在 Java 程序中怎么保证多线程的运行安全?并行和并发有什么区别?什么是多线程多线程的好处多线程的劣势:线程和进程区别什么是上下文切换?守护线程和用户线程有什么区别呢?如何在 Windows 和 Linux 上查找哪个线程cpu利用率最高?什么是线程死锁形成死锁的四个必要条件是什么如何避免线程死锁创建...

2020-04-14 11:51:58 3907 1

原创 Spring Boot面试题(总结最全面的面试题!!!)

文章目录概念什么是 Spring Boot?为什么要用SpringBootSpring Boot 有哪些优点?SpringBoot与SpringCloud 区别Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?SpringBoot Starter的工作原理Spring Boot 2.X 有什么新特性?与 1.X...

2020-04-12 02:48:29 17766 6

原创 Spring Cloud Netflix 面试题(总结最全面的面试题!!!)

文章目录什么是微服务架构为什么需要学习Spring CloudSpring Cloud 是什么SpringCloud的优缺点SpringBoot和SpringCloud的区别?Spring Cloud和SpringBoot版本对应关系SpringCloud由什么组成使用 Spring Boot 开发分布式微服务时,我们面临什么问题Spring Cloud 和dubbo区别?Eureka服务注册和发...

2020-04-12 00:55:38 30261 2

原创 设计模式面试题(总结最全面的面试题!!!)

文章目录设计模式什么是设计模式为什么要学习设计模式设计模式分类设计模式的六大原则开放封闭原则(Open Close Principle)里氏代换原则(Liskov Substitution Principle)依赖倒转原则(Dependence Inversion Principle)接口隔离原则(Interface Segregation Principle)迪米特法则(最少知道原则)(Deme...

2020-04-11 23:26:21 50715 12

原创 BIO、NIO、AIO面试题(总结最全面的面试题!!!)

文章目录BIO、NIO、AIO、Netty什么是IO在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别什么是BIO什么是NIO什么是AIO什么NettyBIO和NIO、AIO的区别IO流的分类什么是内核空间五种IO模型1.阻塞BIO(blocking I/O)2.非阻塞NIO(noblocking I/O)3.异步AIO(asynchronous I/O)4.信号驱动IO(signal b...

2020-04-11 23:24:07 13538 8

原创 Nginx面试题(总结最全面的面试题!!!)

文章目录什么是Nginx?为什么要用Nginx?为什么Nginx性能这么高?Nginx怎么处理请求的?什么是正向代理和反向代理?使用“反向代理服务器的优点是什么?Nginx的优缺点?Nginx应用场景?Nginx目录结构有哪些?Nginx配置文件nginx.conf有哪些属性模块?Nginx静态资源?如何用Nginx解决前端跨域问题?Nginx虚拟主机怎么配置?基于虚拟主机配置域名基于端口的虚拟主...

2020-04-11 23:08:48 83813 12

原创 面试题:你的缺点是什么?(为难我?怎么可能)

你的缺点是什么?我们在面试时,HR经常会问一个问题:“请简单说一下你的缺点。”对于这个问题,你会怎么机智地回答?猛人回答HR:说说你的缺点?求职者 1:我觉得我的缺点就是太拼了,导致生活和工作不协调求职者 2:我的缺点就是太爱学习了...求职者 3:我最大的缺点就是追求完美...求职者 4:我最大的缺点就是喜欢乐于助人....求职者 5:我最大的缺点就是太执着.......

2020-04-05 22:50:15 7573

原创 基于Docker搭建Redis集群(步骤超级简单,图文详解)

基于Docker搭建Redis集群1 创建文件夹 以及进入文件夹2 创建Redis镜像添加内容3 下载Redis.gz包,`注意:到此步骤才需要Redis的安装包`,上面的操作不需要4 创建打开ruby镜像添加内容4 启动Redis节点5 查看Redos节点IP地址6 启动并打开ruby容器7 ruby容器内输入8 到此Redis集群已经配置成功了!!!最近项目需要Redis集群在这里插入代码片...

2020-04-05 20:31:31 1860

原创 超硬核!!!一篇文章搞定整个JVM运行时数据区(详细解答运行时数据)

JVM运行时数据区1 JVM运行时数据区2 解析JVM运行时数据区2.1 方法区(Method Area)2.2 Java堆(Java Heap)2.3 程序计数器(Program Counter Register)2.4 Java虚拟机栈(Java Virtual Machine Stacks)2.5 本地方法栈(Native Method Stack)3 Java内存结构3.1 JVM字节码执...

2020-04-05 20:29:21 510

原创 超硬核!!!一篇文章掌握整个JVM的垃圾回收系统

JVM的垃圾回收机制JVM的垃圾回收机制1 什么是垃圾回收机制2 finalize方法作用3 新生代、老年代、永久代(方法区)的区别3.1 为什么要这样分代:3.2 Minor GC、Major GC、Full GC区别及触发条件4 如何判断对象是否存活4.1 引用计数法4.4.2 可达性分析法5 垃圾回收机制策略(也称为GC的算法)5.1 引用计数算法(Reference counting)5....

2020-04-05 20:25:17 600 1

原创 超硬核!!!一篇文章搞定BIO、NIO、AIO、Netty(详细基础内容+网络编程内容+代码示例)

BIO、NIO、AIO、NettyBIO、NIO、AIO、Netty什么是IO在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别什么是BIO什么是NIO什么是AIO什么NettyBIO和NIO、AIO的区别IO流的分类什么是内核空间五种IO模型1.阻塞IO(blocking I/O)2.非阻塞IO(noblocking I/O)3.异步IO(asynchronous I/O)4.信号驱动I...

2020-04-05 20:21:09 1080 1

原创 超硬核!!!一篇文章搞定TCP、UDP、Socket(详细网络编程内容+现实解释三次握手四次挥手+代码示例)

TCP、UDP、Socket一天面试的经验:什么是网络编程网络编程中两个主要的问题计算机网络体系结构1 TCP / UDP1.1 什么是TCP/IP和UDP1.2 TCP与UDP区别:1.3 TCP和UDP的应用场景:1.4 TCP例子:1.5 UDP例子:1.6 TCP的三次握手1.6.1 什么是TCP的三次握手1.6.2 三次握手的具体细节1.6.3 用现实理解三次握手的具体细节1.7 TCP...

2020-04-05 20:20:08 573

原创 超硬核!!!一篇文章掌握整个JVM,JVM超详细解析!!!

JVM先想想一些问题1 我们开发人员编写的Java代码是怎么让电脑认识的2 为什么说java是跨平台语言3 Jdk和Jre和JVM的区别4 为什么要学习JVM深入学习JVM1 JVM运行时数据区2 解析JVM运行时数据区2.1 方法区(Method Area)2.2 Java堆(Java Heap)2.3 程序计数器(Program Counter Register)2.4 Java虚拟机栈(Ja...

2020-04-05 20:16:04 661

原创 超硬核!!!一篇文章搞定整个JVM运行时数据区

JVM运行时数据区1 JVM运行时数据区2 解析JVM运行时数据区2.1 方法区(Method Area)2.2 Java堆(Java Heap)2.3 程序计数器(Program Counter Register)2.4 Java虚拟机栈(Java Virtual Machine Stacks)2.5 本地方法栈(Native Method Stack)3 Java内存结构3.1 JVM字节码执...

2020-04-03 19:19:04 4410

原创 超硬核!!!一篇文章搞定整个JVM的垃圾回收系统

JVM的垃圾回收机制JVM的垃圾回收机制1 什么是垃圾回收机制2 finalize方法作用3 新生代、老年代、永久代(方法区)的区别3.1 为什么要这样分代:3.2 Minor GC、Major GC、Full GC区别及触发条件4 如何判断对象是否存活4.1 引用计数法4.4.2 可达性分析法5 垃圾回收机制策略(也称为GC的算法)5.1 引用计数算法(Reference counting)5....

2020-04-03 19:12:37 5172

原创 【Java并发编程学习 9】深入锁的概念

深入锁的概念什么是锁理解数据库锁乐观锁悲观锁锁表的方式Java锁的概念重入锁读写锁CAS无锁模式原子类分布式锁什么是锁简单来说锁就是作为并发共享数据,保证一致性的工具。理解数据库锁乐观锁version(版本)方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。(注意:sql语句执行是有原子性的)例子1:五个人抢购...

2020-03-24 16:31:42 720

原创 【Java并发编程学习 8】Callable和Future详解

Callable和Future详解Callable和Future什么是CallableCallable和Runnable源码对比Callable如何使用什么是Future三者代码示例:Future常用获取结果方法Callable和Future什么是Callable在Java中,创建线程一般有两种方式,一种是继承Thread类,一种是实现Runnable接口。然而,这两种方式的缺点是在线程任务...

2020-03-24 14:49:11 887

原创 【Java并发编程学习 7】深入理解线程池

线程池什么是线程池线程池作用如何实现构建线程池什么是ThreadPoolExecutor什么是Executor线程池四种创建方式代码演示构建线程池的四种方式newCachedThreadPoolnewFixedThreadPoolnewScheduledThreadPoolnewSingleThreadExecutor自定义线程线程池线程池原理剖析如何合理分配线程池大小什么是CPU密集什么是IO密...

2020-03-23 19:55:02 515 2

原创 【Java并发编程学习 6】并发队列学习

并发队列什么是并发队列:消息队列很多人知道:消息队列是分布式系统中重要的组件,是系统与系统直接的通信并发队列是什么:并发队列多个线程以有次序共享数据的重要组件并发队列和并发集合的区别:那就有可能要说了,我们并发集合不是也可以实现多线程之间的数据共享吗,其实也是有区别的:队列遵循“先进先出”的规则,可以想象成排队检票,队列一般用来解决大数据量采集处理和显示的。并发集合就是在多个线...

2020-03-23 13:37:01 537

原创 【Java并发编程学习 5】常用的并发包与并发容器学习

常用的并发包学习1 (计数器)CountDownLatch1.1 什么是CountDownLatch1.2 CountDownLatch 的原理1.3 CountDownLatch代码示例2 (回环栅栏)CyclicBarrier2.1 CyclicBarrier代码示例3 (信号量)Semaphore3.1 Semaphore代码示例1 (计数器)CountDownLatch1.1 什么是C...

2020-03-19 15:22:45 334

原创 【Java并发编程学习 4】多线程之间实现通讯及Lock锁

多线程之间实现通讯1 什么是多线程之间的通讯2 通讯需求及实现2.1 代码实现基本实现2.2 使用synchronized解决线程安全问题2.3 改变需求2.4 wait、notify和方法2.6 修改代码2.7 wait与sleep区别3 Lock锁3.1 Lock写法3.2Lock锁示例代码4 synchronized与Lock的区别1 什么是多线程之间的通讯在并发编程中,我们需要处理两个...

2020-03-19 03:10:41 388

原创 【Java并发编程学习 3】理解Java内存模型,多线程之间通信,重排序

Java并发编程学习-31 线程之间如何通信及线程之间如何同步2 Java内存模型3 Volatile3.1 什么是Volatile3.2 代码示例3.3 Volatile特性3.5 volatile 性能4 重排序4.1 什么是重排序4.2 重排序实际执行的指令步骤4.3 重排序遵守的规则4.4 模拟重排序问题代码示例4.5 怎么解决多线程重排序的问题4.6 什么是happens-before原...

2020-03-19 02:07:56 326

原创 【Java并发编程学习 2】多线程线程安全问题

什么是线程安全当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题。但是做读操作是不会发生数据冲突问题。案例:需求现在有100张火车票,有三个窗口同时抢火车票,请使用多线程模拟抢票效果。package com.lijie;public class ThreadTrain implements Runnable { private int...

2020-03-18 21:24:20 417

空空如也

空空如也

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

TA关注的人

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