自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

黑马程序员广州中心的专栏

这是一个神奇的博客。

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

原创 JavaEE基础(01):Servlet实现方式,生命周期执行...

一、Servlet简介Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。使用Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。二、实现方式1、继承HttpServletAPI简介继承自 GenericServlet. 遵守 HTTP协议实现,以设计模式的角度看,HttpServ...

2020-02-28 10:17:03 101

原创 品HashMap(java8)

前言 作为java开发人员,HashMap可谓是业务中的一把利器,9龙再次捡起这老生常谈的知识点,深入源码,细细品味。 首先,我们抛出几个关于HashMap的问题,带着问题去学习,就像捉迷藏一样有意思。 1、为什么要使用HashMap?HashMap有什么特性? 2、HashMap的主要参数有哪些?都有什么作用?...

2020-02-28 10:12:13 104

原创 Java学习笔记(7)---流(Stream),文件(File)

1.Stream流a.定义: Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。 Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。 一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。 Java 为 I/...

2020-02-28 10:05:36 194

原创 Java搭建WebSocket的两种方式

下面分别介绍搭建方法:一、直接使用Java EE的api进行搭建。一共3个步骤:1、添加依赖<dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> &lt...

2020-02-28 09:55:54 4652 1

原创 b+树的原理

Java 内存区域Heap线程公有存放实例对象是GC主要管理区域,因此可以更细致的划分为:新生代、老年代再细致一点划分:Eden区、From Survivor区、To Survivor区内存空间:可以物理上不连续、逻辑上连续即可。Method Area线程公有主要存储:类信息、常量、静态变量、编译后的代码运行时常量池主要存储:编译期的字面量以及符号引用具有动态性,即可以在运行时将常量放入池中。VM...

2020-02-28 09:38:44 188

原创 RabbitMQ 整合 SpringCloud实战

RabbitMQ 整合 SpringCloud实战 RabbitMQ 整合 SpringCloud实战 rabbitmq-common 子项目 rabbitmq-springcloud-consumer 子项目 rabbitmq-springcloud-producer 子项目 RabbitMQ 整合 SpringCloud实战...

2020-02-28 09:24:41 240

原创 JavaScript小技巧 - 数组篇

去重巧用Set特性[JavaScript]纯文本查看复制代码? 1 const arr = [1, 2, 2, 3, 4, 7, 7]const uniqueArr = [...new Set(arr)]console.log(uniqueArr)// [1, 2, 3, 4, 7]某一个位置插入元素 ...

2020-02-28 09:19:24 150

原创 数据库事务

数据库事务1.说到数据库事务,人们脑海里自然不自然的就会浮现出事务的四大特性、四大隔离级别、七大传播特性。四大还好说,问题是七大传播特性是哪儿来的?是Spring在当前线程内,处理多个数据库操作方法事务时所做的一种事务应用策略。事务本身并不存在什么传播特性,不要混淆事务本身和Spring的事务应用策略。(当然,找工作面试时,还是可以巧妙的描述传播特性的)2.一说到事务,人们可能又...

2020-02-28 09:15:06 222

原创 怎么保证RabbitMQ和kafuka集群的高可用性?

rabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式 RabbitMQ的高可用性 RabbitMQ是比较有代表性的,因为是基于主从做高可用性的,我们就以他为例子讲解第一种MQ的高可用性怎么实现。 rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式 1)单机模式 就是demo级别的,一般就...

2020-02-28 09:01:40 160

原创 线程中start与run方法的主要区别

区别一: 在于当程序调用start方法一个新线程将会被创建,并且在run方法中的代码将会在新线程上运行, 然而在你直接调用run方法的时候,程序并不会创建新线程,run方法内部的代码将在当前线程上运行。 大多数情况下调用run方法是一个bug或者变成失误。 因为调...

2020-02-27 15:57:00 89

原创 class.forName() 和 classLoader 的区别

相同点: java中class.forName() 和 classLoader 都可用来对类进行加载不同店: 1、class.forName()除了将类的 .class 文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法 2、classLoader只干一件事情,就是将 .class 文件加载到jvm...

2020-02-27 15:40:16 72

原创 Spring Cloud服务的注册与发现(Eureka)

一、spring cloud简介 spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。另外对...

2020-02-27 15:30:53 140

原创 怎么保证RabbitMQ和kafuka集群的高可用性?

rabbitMQ有三种模式:单机模式,普通集群模式,镜像集群模式 RabbitMQ的高可用性 RabbitMQ是比较有代表性的,因为是基于主从做高可用性的,我们就以他为例子讲解第一种MQ的高可用性怎么实现。 rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式 1)单机模式 就是demo级别的,一般就...

2020-02-27 15:10:59 89

原创 线程中start与run方法的主要区别

区别一: 在于当程序调用start方法一个新线程将会被创建,并且在run方法中的代码将会在新线程上运行, 然而在你直接调用run方法的时候,程序并不会创建新线程,run方法内部的代码将在当前线程上运行。 大多数情况下调用run方法是一个bug或者变成失误。 因为调用者的初...

2020-02-27 11:10:22 465

原创 class.forName() 和 classLoader 的区别

相同点: java中class.forName() 和 classLoader 都可用来对类进行加载不同店: 1、class.forName()除了将类的 .class 文件加载到jvm中之外,还会对类进行解释,执行类中的static块,还会执行给静态变量赋值的静态方法 2、classLoader只干一件事情,就是将 .class 文件加载到jvm...

2020-02-27 10:31:40 57 1

原创 Spring Cloud服务的注册与发现(Eureka)

一、spring cloud简介spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解。另外对于“微服务架构” 不了解的话,可以通过搜索...

2020-02-27 10:19:19 135

原创 Spring Cloud服务消费者(rest+ribbon)

在上一篇文章,讲了服务的注册和发现。在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。在这一篇文章首先讲解下基于ribbon+rest。一、ribbon简介Ribbon is a client side load balancer ...

2020-02-27 10:03:40 85

原创 Kafka、RabbitMQ、RocketMQ、ActiveMQ

一、资料文档 Kafka:中。有kafka作者自己写的书,网上资料也有一些。rabbitmq:多。有一些不错的书,网上资料多。zeromq:少。没有专门写zeromq的书,网上的资料多是一些代码的实现和简单介绍。rocketmq:少。没有专门写rocketmq的书,网上的资料良莠不齐,官方文档很简洁,但是对技术细节没有过多的描述。activemq:多。没...

2020-02-27 09:45:10 246

原创 Python--继承、封装、多态

大概每个人在学生时代开始就使用Java了,我们一直在学习Java,但Java中总有一些概念含混不清,不论是对初级还是高级程序员都是如此。所以,这篇文章的目的就是弄清楚这些概念。读完本文你会对这些概念有更深入的了解,还能弄清楚一切灰色的东西。在本书中,我们将讨论匿名内联类、多线程、同步和序列化。1匿名类Java匿名类很像局部类或内联类,只是没有名字。我们可以利用匿...

2020-02-26 11:55:17 152

原创 TreeMap简介

在Map集合框架中,除了HashMap以外,TreeMap也是常用到的集合对象之一。与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序;不同于HashMap的哈希映射,TreeMap实现了红黑树的结构,形成了一颗二叉树。TreeMap继承于AbstractMap,实现了Map,...

2020-02-26 11:47:01 294

原创 TreeMap简介

在Map集合框架中,除了HashMap以外,TreeMap也是常用到的集合对象之一。与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序;不同于HashMap的哈希映射,TreeMap实现了红黑树的结构,形成了一颗二叉树。TreeMap继承于AbstractMap,实现了Map,...

2020-02-26 11:39:26 462

原创 Spring基础——IOC九种bean声明方式

Spring简介Spring不是服务于开发web项目的功能,或业务。而是服务于项目的开发,方便各层间的解耦调用,方便对类的批量管理,是提高软件开发效率,降低后期维护成本的框架。Spring的核心思想是IOC(控制反转),AOP(切面编程)两点。IOC:即不再需要程序员去显式地New一个对象,而是把Spring框架把框架创建出的对象拿来用。因为是spring框架创建的对象,对象都在spring...

2020-02-26 11:27:53 325

原创 JVM简述

JVM的东西太多了,我们刚开始学java的时候,就会接触堆、栈,还有方法区,因为我们要知道new出来的对象放在哪里,局部变量放在哪里,static修饰的变量放在哪里。 我从网上截一个图: 这里有三大部分: classloader runtime data area e...

2020-02-26 11:18:04 156

原创 Servlet的Cookie对象

Cookie的介绍: Cookie 定义:Cookie 用于浏览器端的数据存储,解决了不同请求之间需要数据共享的问题。例如,可以将用户的登录信息接收并设置为Cookie,对其进行相关操作以使得用户在特定时间内向某服务器发送请求时,无需再次输入这些数据。 Cookie 应用场景:记住密码、特定期限内免登录等。 Cookie 数据存储:Cook...

2020-02-26 11:07:29 72

原创 线程中start和run方法的区别

先说java中实现多线程常用的两种方式: 1:继承Thread类,并重写run()方法 2:实现Runnable接口,实现run方法实际上Thread类也是实现了Runnable接口[Java]纯文本查看复制代码? 1 2 3 public class Thread implements Runnable { ....

2020-02-26 10:56:49 137

转载 Sleep(0)的妙用

原文地址:https://blog.csdn.net/qiaoquan3/article/details/56281092/Thread.Sleep(0) 表示挂起0毫秒,你可能觉得没作用,你要写Thread.Sleep(1000) 就有感觉了。似乎毫无意义。MSDN的说明:指定零 (0) 以指示应挂起此线程以使其他等待线程能够执行。Thread.Sleep(0) 并非是真的要线程挂起0毫秒...

2020-02-26 10:53:05 342

原创 docker安装

1.使用 yum 安装docker(CentOS 7下):Docker 要求 CentOS 系统的内核版本高于 3.101.首先通过 uname -r 命令查看你当前的内核版本 指令:uname –r 2.使用su root切换用户权限到root 指令:su root 输入你root权限的密码(密码是你安装虚拟机时设置的超级管理密码...

2020-02-26 10:42:05 197

原创 服务链路追踪(Spring Cloud Sleuth)

一、简介一个分布式系统由若干分布式服务构成,每一个请求会经过多个业务系统并留下足迹,但是这些分散的数据对于问题排查,或是流程优化都很有限。要能做到追踪每个请求的完整链路调用,收集链路调用上每个服务的性能数据,计算性能数据和比对性能指标(SLA),甚至能够再反馈到服务治理中,那么这就是分布式跟踪的目标。在业界:淘宝的鹰眼, 京东的Hydra实现了这个目标,这里要介绍的是twitter 的 zip...

2020-02-26 10:39:40 192

原创 Android 7.0终极开发者预览版全攻略!

近日,Google的工程部副总裁Dave Burke在官方博客上正式发布开发者预览版5,此预览版是android 7.0 “牛轧糖”正式发布前最后一个预览版,同时也是在性能、功能上等多方面的表现上最接近Android 7.0正式版的预览版。对于Android N 的新特性解析,黑马程序员早在Google I/O大会之际就全网首家强势推出了针对开发者的Android N 新特性深度解析...

2020-02-25 11:24:20 168

转载 Spring定义Bean的两种方式:和@Bean

前言: Spring中最重要的概念IOC和AOP,实际围绕的就是Bean的生成与使用。 什么叫做Bean呢?我们可以理解成对象,每一个你想交给Spring去托管的对象都可以称之为Bean。 今天通过Spring官方文档来了解下,如何生成bean,如何使用呢? 1.通过XML的方式来生成一个bean ...

2020-02-25 11:05:13 243

原创 Java生成随机图片验证码

前台html代码[Java]纯文本查看复制代码? 01 02 03 04 05 06 07 08 09 10 <div style="margin-top: 50px;"> <span>验证码:</span>&...

2020-02-25 10:46:14 113

原创 mysql中in和exist的区别

mysql中in和exists的区别 -- in写法 select * from A where A.id in (select bid fromB ) and A.name in (select bname fromB ) ; ​ -- exits写法 select * from A where...

2020-02-25 10:38:43 255

原创 Java多线程基础详解

基础概念进程进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。操作系统中,几乎所有运行中的任务对应一条进程(Process)。一个程序进入内存运行,即变成一个进程。进程是处于运行过程中的程序,并且具有一定独立功能。描述进程的有一句话非常经典的话——进程是系统进行资源分配和调度的一个独立单位。进程是系统中独立存在的实体,拥有自己独立的资源,拥有自己...

2020-02-25 10:30:16 73

原创 Redis实现高并发分布式锁

分布式锁场景 在分布式环境下多个操作需要以原子的方式执行 首先启一个springboot项目,再引入redis依赖包: <!--https://mvnrepository.com/artifa ... -starter-data-redis--> <dependency> <groupId...

2020-02-25 10:28:18 243

原创 Mybatis中#{}与${}的区别

在开发中使用Mybatis经常使用到#{}与${},依旧有很多开发者对二者的使用不是很清晰,正所谓好记性不如烂笔头,特此总结一下。 在mybatis中动态 sql 是其主要特性之一,在 mapper 中定义的参数传到 xml 中之后,在执行操作之前 mybatis 会对其进行动态解析。mybatis 提供了两种支持动态 sql 的语法:#{} 以及 $ {},其最...

2020-02-25 09:59:48 92

原创 玩转SpringBoot用好条件相关注解,开启自...

官方提供的常用条件注解 因为Spring的核心是基于bean的,所以这些条件注解主要是影响bean的注册。 因为注册的bean不同了,最后对外呈现的行为就不同了。不就是自动配置了。 一、最常用的应该是@Profile注解了 根据不同的环境可以注册不同的bean,如下图01: ...

2020-02-25 09:39:29 259

原创 JavaEE基础:过滤器、监听器、拦截器,应用...

1、概念简介 JavaWeb三大组件:Servlet,Listener,Filter。监听器就是指在应用程序中监听相关对象状态变化的组件。 2、事件源对象 指被监听对象。 ServletContext ServletContextListener生命周期监听,它有两个方法,出生时调用contextInitialize...

2020-02-24 10:49:40 133

原创 Java为什么能够跨平台?

首先介绍一下Java的各个层级,先放一张图:    硬件,操作系统和操作系统接口:这三级不说大家都知道,操作系统有很多种,比如Windows,Linux。Windows又分为win7,win10,win xp等等;Linux有Ubuntu,CentOS;操作系统接口就是系统为开发者预留的,方便调用从而控制操作系统的硬件,它不需要让程序员知道是怎么实现的,只需要知道参数即可。但是不同的系统肯...

2020-02-24 10:47:03 262

原创 JVM如何判断对象能否被回收

•写在前面说起Java和C++,很容易想到让人疯狂的指针,Java使用了内存动态分配和垃圾回收技术,让我们从C++的各种指针问题中摆脱出来,更加专心于业务逻辑,不过如果我们需要深入了解java的JVM相关原理,我们必须要面对这些东西,深入了解JVM在内存动态分配和垃圾回收技术的原理知识,这篇文章就是来做一个先导,在jvm进行垃圾回收之前,它必须要知道回收的对象是否已“死”,这样才能保证程序的正常...

2020-02-24 10:39:09 139

原创 使用这些高效Java工具类享受开发乐趣

使用这些高效Java工具类享受开发乐趣导语在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。在开发中,使用这些工具类,不仅可以提高编码效率,还可以提高代码可读性。一,org.apache.commons.lang.StringUtilsisBlank:字符串是否为空 (trim后判断)isEmpty:字符串是否为空 (不trim并判断)...

2020-02-24 10:25:19 97

空空如也

空空如也

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

TA关注的人

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