自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java发送邮件,java面试问项目流程

以QQ邮箱为例,其他邮箱作为发送人时与此差距不大。首先需要获取到QQ邮箱的授权码,操作如下:进入qq邮箱,设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,开启POP3/SMTP服务—>生成授权码引入依赖org.springframework.bootspring-boot-starter-mail一、配置yml通过JavaMailSender发送spring:mail:配置smtp地址host: smtp.qq.com发送者邮箱

2021-11-08 11:44:56 462

原创 java中的线程&创建线程的三种方式,java编程基础实验报告

终止状态: 线程执行完或者出现异常或者调用API强制结束。java中的线程周期Java语言中线程共有六种状态,分别是:NEW(初始化状态) : Java刚创建出来的Thread对象。RUNNABLE(可运行/运行状态) : Thread执行start()方法。BLOCKED(阻塞状态),WAITING(无时限等待),TIMED_WAITING(有时限等待) : RUNNABLE状态的线程调用wait()、join()、sleep()方法。TERMINATED(终止状态): .

2021-11-08 11:42:45 252

原创 Java中this讲解,操作系统原理与linux实践教程申丰山

(1)在第一次遇到一个类的时候,对这个类要进行加载,只加载一次。(2)创建对象,在堆中开辟空间(3)对对象进行初始化操作,属性赋值都是默认的初始值。(4)new关键字调用构造器,执行构造方法,在构造器中对属性重新进行赋值this:从上面的效果能够看到:this指代的就是当前对象:内存:this关键字 用法:(1)this可以修饰属性:总结:当属性名字和形参发生重名的时候,或者 属性名字 和局部变量重名的时候,都会发生就近原则,所以如果我要是直接使用变量名字的话就指的是离的近的那个形参

2021-11-08 11:40:24 190

原创 JavaWeb快速入门--Filter&Listener,mybatis源码分析pdf百度云

关于拦截:拦截路径配置:1. 具体资源路径: /index.jsp 只有访问index.jsp资源时,过滤器才会被执行2. 拦截目录: /user/* 访问/user下的所有资源时,过滤器都会被执行3. 后缀名拦截: *.jsp 访问所有后缀名为jsp资源时,过滤器都会被执行4. 拦截所有资源:/* 访问所有资源时,过滤器都会被执行过滤器的四种拦截方式:REQUEST、FORWARD、INCLUDE、ERROR| 拦截方式 | 功能描述 || — | — || REQUEST |

2021-11-08 11:38:13 147

原创 JavaWeb之Filter和Listener技术(五),最全指南

定义一个类,实现接口Filter复写方法在web.xml中配置拦截路径1.3、字符编码过滤器编写一个字符编码过滤器,我们想要通过过滤器来解决中文乱码问题先编写一个没有配置编码的 ServletShowServlet.javapublic class ShowServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse res...

2021-11-08 11:36:31 83

原创 Java-8新特性:学习如何使用Lambda表达式(二,我凭着这套“神级PDF文档”吊打面试官

构造函数参考构造函数引用与方法引用相同,只是方法名称为new。例如,Button::new是类的构造函数引用Button。将调用哪个构造函数取决于上下文。想象一下,您想要将字符串列表转换为按钮数组。在这种情况下,您应该在每个字符串上调用构造函数。它可能是这样的:List strs = …;Stream stream = strs.stream().map(Button::new);List buttons = stream.collect(Collectors.toList());有关stream

2021-11-08 11:34:23 172

原创 JAVA 语法 - 关键字 - volatile,java技术说明文档

2). 一个指针可以是volatile 吗?解释为什么。3). 下面的函数被用来计算某个整数的平方,它能实现预期设计目标吗?如果不能,试回答存在什么问题:1234int square(volatile int *ptr){return *ptr**ptr;}下面是答案:1). 是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。2). 是的。尽管这并不很常见。一个例子是当一个中断服务子程

2021-11-08 11:32:57 124

原创 Java泛型最全解析,nginx源码分析书

复制代码变长参数列表也可以使用泛型参数:public static List toList(T… args) {List l = new ArrayList(args.length);for (T e : args) {l.add(e);}return l;}复制代码当调用一个可变参数方法时,会创建一个数组来存放可变参数,若参数的类型是泛型的,那么将创建泛型的数组,但Java不是允许直接使用泛型创建数组吗?这里java做了一些妥协允许为可变参数创建一个泛型数组。但可变参数列表的入参是

2021-11-07 16:59:59 382

原创 Java模拟面试总结,Javaweb面试宝典

AOF和RDB;AOF:记录每次写请求的命令,以追加的方式在文件尾部追加,直接在尾部追加,效率比较高。 对于操作系统来说,不是每次写都直接写到磁盘,操作系统自己会有一层cache,redis写磁盘的数据会先缓存在os cache里,redis每隔1秒调用一次操作系统的fsync操作,强制将os cache中的数据刷入AOF文件中。当redis重启的时候,就把AOF中记录的命令重新执行一遍就可以了,但是如果文件很大的话,执行会耗费较多的时间,对于数据恢复来说耗时会多一点。RDB:是快照文件,每隔一定时间

2021-11-07 16:58:00 359

原创 Java并行程序基础,springboot的启动过程面试

public static void main(String[] args) throws InterruptedException {Thread t1 = new Thread(()->{while (true) {if (Thread.currentThread().isInter【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 免费领取rupted()) {System.out.println(“Inte

2021-11-07 16:54:14 148

原创 Java岗大厂面试百日冲刺【Day42】— 实战那些事儿3 ,程序员VS产品经理

课间休息,来秀一下来自咱们群里同学搬砖工地附近的夜市。作者:山一程雪一更面试题2:在微服务中你是如何实现不同服务间session 共享的?================================================================================================在微服务中,一个完整的项目被拆分成多个不相同的独立的服务,各个服务独立部署在不同的服务器上,各自的 session 被从物理空间上隔离开了,但是经常,我们需要在不同微服..

2021-11-07 16:52:01 120

原创 Java岗大厂面试百日冲刺【Day42】— 实战那些事儿3 (1)

本栏目Java开发岗高频面试题主要出自以下各技术栈:Java基础知识、集合容器、并发编程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL数据库、Redis缓存、RabbitMQ消息队列、Linux操作技巧等。面试题1:如果用mybatis批量插入数据时需要返回主键,你是怎么做的?=================================================================================================.

2021-11-07 16:49:50 231

原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day14】

4.0版本及以下,MySQL中varchar长度是按字节展示,如varchar(20),指的是20字节;5.0版本及以上,MySQL中varchar长度是按字符展示。如varchar(20),指的是20字符。当然,行总长度还是65535字节,而字符和字节的换算,则与编码方式有关,不同的字符所占的字节是不同的。编码划分如下:GBK编码:一个英文字符占一个字节,中文2字节,单字符最大可占用2个字节。UTF-8编码:一个英文字符占一个字节,中文3字节,单字符最大可占用3个字..

2021-11-07 16:47:29 393 1

原创 Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day13】

坐标:上海 魔都。车票面试题1:HTTP 与 HTTPS 有什么不同?正经回答:追问1:HTTPS的工作原理是什么样的?面试题2:你了解对称加密和非对称加密么?说一下工作原理正经回答:面试题3:说一下你对Session、Cookie的理解吧正经回答:追问1:请介绍一下Session的生命周期吧追问2:Session和Cookie的有效期都是怎么设置的?追问3:你知道Cookie中要哪些属性么?都是干什么用的?追问4:S

2021-11-07 16:45:18 105

原创 Java基础知识总结(超详细整理),java从入门到精通pdf

数组数组是数据的集合,一个容器,用来存储任何类型的数据,包括原始数据类型和引用数据类型,但是一旦指定了数组的类型之后,就只能用来存储指定类型的数据。数组声明的三种方式:数据类型[] 数组名 = new 数据类型[长度];数据类型[] 数组名 = {数据,数据,…,数据};数据类型[] 数组名 = new 数据类型长度[] {数据,数据,…,数据};一维数组:数组变量的声明:语法:数据类型[] 数组名;,如:int[] num;、double[] d;、String[].

2021-11-07 16:41:27 2810 1

原创 Kubernetes实战(一)-Kubernetes集群搭建

临时关闭$ getenforce$ setenforce 0永久关闭$ vim /etc/selinux/config改:7SELINUX=enforcing     #前面的7,表示文档中第7行。方便你查找为:7SELINUX=d【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 免费领取isabled$ reboot配置转发参数配置转发相关参数,否则可能会出错$ c

2021-11-06 17:13:15 333

原创 Kubernetes官方java客户端之六:OpenAPI基本操作

https://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;概览本文是《Kubernetes官方java客户端》系列的第六篇,以下提到的java客户端都是指client-jar.jar;前文《Kubernetes官方java客户端之五:proto基本操作 》已经提到,java客户端的基本功能由两个主要脉络组成,第一个是proto,主要功能是使用ProtoClient类提供的增删

2021-11-06 17:11:50 1024

原创 Kerberos原理--经典对话

Athena: 我猜到了。请讲。Euripides: 当服务解密一张票的时候,它如何知道它是被正确的解密的?Athena: 我不知道。Euripides: 也许你应该在票里包含有服务的名字。这样当服务解密票的时候,它就可以通过能否在票中找到自已的名字来判断解密是否正确。Athena: 很好。那票就应该是这个样子:(她把下面的东西写在了一张纸上)票-{用户名:服务名}Euripides: 那票就只包含用户名和服务名?Athena: 用服务的口令加密。Euripides: 我不认为这些信息就可

2021-11-06 17:10:07 173

原创 Kafka中的这只“千里眼”,你需要知道

Consumer-coordinator-metrics消费者组协调器相关的监控指标。Consumer-fetch-manager-metrics消费组消息拉取相关的监控指标Consumer-node-metrics以broker节点为维度的统计信息,消费端向多个broker节点拉取消息等监控指标。Kafka-metrics-count接下来将分别展开,详细介绍其各个指标的含义,并给出一些实践指导。1.1 消费者组协【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲.

2021-11-06 17:08:32 224

原创 Kafka、RabbitMQ、RocketMQ消息中间件的对比 —

分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。那么,消息中间件性能究竟哪家强?带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka、RabbitMQ、RocketMQ)做了性能比较。Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache定级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的

2021-11-06 17:06:20 175

原创 JVM学习

3)问题辨析垃圾回收是否涉及栈内存?不需要。因为虚拟机栈中是由一个个栈帧组成的,在方法执行完毕后,对应的栈帧就会被弹出栈。所以无需通过垃圾回收机制去回收内存。栈内存的分配越大越好吗?不是。因为物理内存是一定的,栈内存越大,可以支持更多的递归调用,但是可执行的线程数就会越少。方法内的局部变量是否是线程安全的?如果方法内局部变量没有逃离方法的作用范围,则是线程安全的如果局部变量引用了对象,并逃离了方法的作用范围,则需要考虑线程安全问题4)内存溢出Java.lang.stackOv.

2021-11-06 17:04:39 150

原创 JVM 的垃圾回收器

简述及运行过程 CMS (Concurrent Mark Sweep)收集器是一种 **以获取最短回收停顿时间** 为目标的收集器。非常适用于关注服务的响应时间,细外系统停顿时间尽可能短,以给用户带来很好的交互。基于 标记-清除 算法实现 整体过程分为四个步骤包括 1.初始标记(CMS initial mark) (STW) 仅仅只是标记一下GC Roots能直接关联到的对象,速度很快 2.并发标记(CMS concurrent mark) 从直接关联对象开始遍历

2021-11-06 17:02:48 218 1

原创 JDK源码——利用模板方法看设计模式

======一次性实现一个算法的不变的部分,将可变的行为留给子类实现也就是将各子类中公共行为被提取出来并集中到一个公共父类中,从而避免代码重复。还是拿上面大象放进冰箱里面的例子,打开冰箱和关上冰箱都是不变的行为,我们可以将其放在公共父类实现。但是放大象,怎么放?是先放背对着冰箱放,还是面对着冰箱放。不想放大象,放老虎或者其他动物呢?这些就是我们可变的行为,这个就放入子类中实现。可以说,模板方法提供了一个很好的代码复用平台三、JDK中的模板方法模式=============![JDK源码——利用模板

2021-11-06 17:00:32 97

原创 JDK新特性——Stream代码简洁之道

6. 消费5.2 终止操作1. 循环:forEach2. 计算:min、max、count、sum3. 匹配:anyMatch、 allMatch、 noneMatch、 findFirst、 findAny4.收集器:toArray、collect六、Stream的方法摘要七、总结一、概述Stream 是一组用来处理数组、集合的API,Stream API 提供了一种高效且易于使用的处理数据的方式。Java 8 中之所以费这么大的功夫引..

2021-11-06 16:58:21 111

原创 Java中高级核心知识全面解析——数据结构(布隆过滤器【原理介绍

举个简单的例子:如图所示,当字符串存储要加入到布隆过滤器中时,该字符串首先由多个哈希函数生成不同的哈希值,然后在对应的位数组的下表的元素设置为 1(当位数组初始化时 ,所有位置均为0)。当第二次存储相同字符串时,因为先前的对应位置已设置为1,所以很容易知道此值已经存在(去重非常方便)。不同的字符串可能哈希出来的位置相同,这种情况我们可以适当增加位数组大小或者调整我们的哈希函数。综上,我们可以得出:布隆过滤器说某个元素存在,小概率会误判。布隆过滤器说某个元素不在,那么这个元素一定不在。三、布隆过滤器

2021-11-06 16:56:15 149

原创 Docker编排利器DockerCompose,java我要自学网视频教程

[]()二、DockerCompose详解[]()1. 使用DockerCompose步骤使用 Dockerfile 构建自定义镜像上传服务器,一般需要修改初始镜像行为时才需要使用。使用 docker-compose.yml 文件定义需要部署的应用程序服务,这样它们可以在隔离环境中一起运行,以便执行脚本一【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 免费领取次性部署。最后执行 docker-c.

2021-11-04 20:55:24 133

原创 docker下,极速搭建spark集群(含hdfs集群),面试真题解析

[root@hedy ~]# docker exec -it master spark-shell --executor-memory 512M --total-executor-cores 22019-02-09 17:13:44 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform… using builtin-java classes where applicableSetting de

2021-11-04 20:53:52 1541

原创 Docker下Prometheus和Grafana三部曲之二:细说Docker编排

version: ‘2’services:node-exporter:image: prom/node-exporter:v0.17.0-rc.0container_name: node-exporterrestart: unless-stoppedports:‘9100:9100’command:‘–path.procfs=/host/proc’‘–path.sysfs=/host/sys’‘–collector.filesystem.ignored-mount-po

2021-11-04 20:51:37 202

原创 Docker下Prometheus和Grafana三部曲之二:细说Docker编排(1)

version: ‘2’services:node-exporter:image: prom/node-exporter:v0.17.0-rc.0container_name: node-exporterrestart: unless-stoppedports:‘9100:9100’command:‘–path.procfs=/host/proc’‘–path.sysfs=/host/sys’‘–collector.filesystem.ignored-mount-po

2021-11-04 20:49:15 168

原创 Docker下,两分钟极速体验Nacos配置中心,java项目面试难点

先不在Naocs上配置任何信息,调用config-demo的web接口返回的是代码中写的默认值;在Naocs上增加一个配置项,让config-demo能读取到该配置,再调用此web接口时返回的就是Naocs的配置项的内容;在Nacos上修改配置项的值,再次访问config-demo的web接口,看刚才修改的配置项能否在config-demo上立即生效;[]()极速体验执行以下命令即可完成部署,包括Nacos server、从Nacos获取配置的demo应用:wget http..

2021-11-04 20:47:02 106

原创 Docker 从入门到实践系列三 - Docker 常用命令,netty源码剖析与实战笔记

镜像删除容器命令搜索镜像下载镜像运行容器端口映射启动做端口映射的容器端口映射格式查看端口映射小结查看容器停止容器启动容器重启容器删除容器其他重要命令查看容器日志连接到正在运行容器在运行的容器中执行命令查看容器中正在运行进程查看容器内部细节容器和宿主机互相拷贝文件更多操作命令常用命令小结[]()帮助命令查看docker版本docker vers..

2021-11-04 20:45:26 452

原创 DL4J实战之四:经典卷积实例(GPU版本),java进阶路线图

使用CPU还是GPU,具体操作步骤非常简单:切换不同的依赖库即可,下面分别介绍如果您用CPU做训练,则依赖库和版本如下:org.deeplearning4jdeeplearning4j-core1.0.0-beta6org.nd4jnd4j-native1.0.0-beta6如果您用GPU做训练,且CUDA版本是9.2,则依赖库和版本如下:org.deeplearning4jdeeplearning4j-core1.0.0-beta6org.deep..

2021-11-04 20:43:07 334

原创 Dijkstra求最短路算法 ( 超级超级详细的 ) 不断更新中

然后我们用1号结点去更新其他点到起点的最近距离,1结点到2结点距离g[1][2]=2,小于0x3f,则dist[2]=2,1结点到3结点距离g[1][3]=4,小于0x3f,则dist[3]=4。用1号结点将所【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】浏览器打开:qq.cn.hn/FTf 免费领取有点的距离更新完毕后,此时S集合中有1号结点,接下来我们让距离我们刚加入的1号结点最近的点加入集合,显然为2号结点,2号结点进入S集合,此时S集合中有1,2号

2021-11-04 20:40:50 389

原创 SSM框架-SpringMVC详解,java编译运行原理

Controller执行完成后返回ModelAndView,提示:Model(模型数据,即Controller处理的结果,Map) View(逻辑视图名,即 负责展示结果的JSP页面的名字)处理器适配器(HandlerAdapter)将controller执行的结果(ModelAndView)返回给前 端控制器(DispatcherServlet);(4) .前端控制器(DispatcherServlet)将执行的结果(ModelAndView)传给视图解析 器(ViewReslover)视图解析器

2021-11-01 17:35:39 228

原创 spring面试题集锦:注解+MVC,Nacos服务心跳和健康检查源码介绍

private String name;@Autowiredpublic void setName(String name) {this.name=name;}public string getName(){return name;}}@Qualifier 注解有什么用?当您创建多个相同类型的 bean 并希望仅使用属性装配其中一个 bean 时,您可以使用@Qualifier 注解和 @Autowired 通过指定应该装配哪个确切的 bean 来消除歧义。例如,这里我们分别有两个类,

2021-11-01 17:33:57 182

原创 Spring常用API:Spring类及相关面试点,java基础语法思维导图

4.1直接赋值法实例化String对象直接赋值方式创建对象是在方法区的常量池需要注意的是,字符串常量池的位置在 JDK 1.7 有所变化:JDK 1.7 之前,字符串常量池存在于常量存储(Constant storage)中JDK 1.7 之后,字符串常量池存在于堆内存(Heap)中str1在堆内存上创建新的String对象,由于是直接赋值的方式,该String对象被加入JVM的"对象池"中,而后str2,str3再通过直接赋值的方式访问相同的字符串对象"hello",访问到

2021-11-01 17:32:22 141

原创 SpringCloud快速入门(二),java多线程锁面试题

@GetMapping(“user/{id}”)User queryById(@PathVariable(“id”) Long id);}首先这是一个接口,Feign会通过动态代理,帮我们生成实现类。这点跟mybatis的mapper很像@FeignClient,声明这是一个Feign客户端,类似@Mapper注解。同时通过value属性指定服务名称接口中的定义方法,完全采用SpringMVC的注解,Feign会根据注解帮我们生成URL,并访问获取结果改造原来的调用逻辑,调用Us

2021-11-01 17:30:10 174

原创 springCloud学习四之通过Eureka实现服务调用

Demo project for Spring Boot<java.version>11</java.version><spring-cloud.version>2020.0.3</spring-cloud.version>org.springframework.bootspring-boot-starter-weborg.springframework.cloudspring-cloud-starter-netflix-eureka-

2021-11-01 17:28:29 1093

原创 SpringCloudRPC核心原理:RxJava响应式编程框架,创建型操作符

(8)never():创建一个不弹射任何数据的Observable主题对象。接下来以just、from、range、interval、defer五个操作符为例进行介绍。just操作符========Observable的just操作符用于创建一个Observable主题,并且会将实参数据弹射出来。just操作符可接收多个实参,所有实参都将被逐一弹射。just操作符的演示代码如下:package com.crazymaker.demo.rxJava.basic;import lombok.ex

2021-11-01 17:26:38 90

原创 SpringCloud+OAuth2统一权限验证,java泛型原理

max-active: 8max-idle: 8min-idle: 0datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=trueusername: rootpassword: 1219320druid:

2021-11-01 17:24:22 358

空空如也

空空如也

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

TA关注的人

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