hibernate

要去面试,先刷完这16道高频面试题,阿里,字节跳动,美团任你选

╄→гoц情女王★ 提交于 2020-10-31 07:29:48
1.JDK8 新特性 Lambda 表达式-也是函数编程的一种方式(将函数做为参数) 方法的应用,应用已有的java类对象的方法或者构造器。与Lambda表达式相结合,方法应用使得语言构造更加简洁,从而减少代码的冗余 默认方法,默认方法就是一个在接口里边有了一个实现的方法 新工具-新的编译工具,如:Nashorn引擎jjs,类依赖分析器jdeps Stream API - 把真正的函数式编程风格引入到Java中。 Date Time API - 加强对日期与时间的处理 Optional 类 - Optional 类已经成为Java 8 类库的一部分,用来解决空指针异常 Base64 Java8 内置了Base64 编码的编码器和解析器 2.hashMap 底层实现?当你put一个元素时,在底层结构是如何执行的? 首先需要知道在不同的JDK版本上面hashMap 的实现是有区别的: JDK8之前: 数组 + 链表 JDK8之后:数组 + 链表 + 红黑树 当你put元素时: 执行步骤: a.计算该元素的hashCode 值 b.通过计算它的hashCode 值去确定数组下标,数组的初始化16大小,增长因子为0.75 c.当存在哈希冲突是,相同的hashCode 值得到的数组下标就是会一样的,则单纯的数组则不满足,需要链表的支持 d.链表满足长度大于8时转成红黑树,那为啥8呢

SpringBoot开发案例之整合Activiti工作流引擎

梦想的初衷 提交于 2020-10-30 13:41:37
前言 JBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baeyens离开JBoss后,JBPM的下一个版本jBPM5完全放弃了jBPM4的基础代码,基于Drools Flow重头来过,目前官网已经推出了JBPM7的beta版本;Tom Baeyens加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti。由此可以推测JBoss内部对jBPM未来版本的架构实现产生了严重的意见分歧。 搭建 花了半天的时间对比了下JBPM 和 Activit,以及两个工作流的不同版本,最终选择了 Activiti6 来实现,理由如下: JBPM 网上集成的资料甚少,且新版本相对比较笨重。 Activiti 相对丰富的资料,并且高度与 SpringBoot 集成,之所以选择 Activiti6 版本,是由于目前只有版本6的集成 starter。 创建 pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

4. Validator校验器的五大核心组件,一个都不能少

杀马特。学长 韩版系。学妹 提交于 2020-10-29 10:53:55
> 困难是弹簧,你弱它就强。本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈、MyBatis、JVM、中间件等小而美的 专栏 供以免费学习。 ✍前言 你好,我是YourBatman。 上篇文章 介绍了校验器上下文ValidatorContext,知道它可以对校验器Validator的核心五大组件分别进行定制化设置,那么这些核心组件在校验过程中到底扮演着什么样的角色呢,本文一探究竟。 作为核心组件,是有必要多探究一分的。以此为基,再扩散开了解和使用其它功能模块便将如鱼得水。但是过程枯燥是真的,所以需要坚持呀。 版本约定 Bean Validation版本: 2.0.2 Hibernate Validator版本: 6.1.5.Final ✍正文 Bean Validation校验器的这五大核心组件通过ValidatorContext可以分别设置:若没设置(或为null),那就回退到使用ValidatorFactory默认的组件。 准备好的组件,统一通过ValidatorFactory暴露出来予以访问: public interface ValidatorFactory extends AutoCloseable { . . . MessageInterpolator getMessageInterpolator ( ) ;

震惊!JVM是这样工作的?

∥☆過路亽.° 提交于 2020-10-29 10:29:10
学习JVM知识的必要性 Java语言针对内存实行的是自动管理机制,不需要程序员在代码里写释放内存,垃圾回收的代码,JVM帮助你实现了这些功能。Java虽然有垃圾回收机制,但是有些垃圾是回收不了的,还是会造成内存泄漏,内存溢出等错误,如果你对JVM内存模型及运行机制不了解的话,当项目出现问题时,会束手无措。 项目启动后,JVM是如何工作的 1、服务器启动时,源代码被Java编译器,编译为字节码文件(.class)。 2、JVM中的类加载器将所有的字节码文件加载进JVM空间。 3、JVM执行引擎执行这些字节码文件。 4、执行的过程中,产生了很多数据,这些数据固定的存在某块空间,这块空间就是我们经常提到的JVM内存。 JVM内存划分 JVM共分为五个部分,分别是栈、堆、方法区、程序计数器,本地方法栈。我们运行的每一个项目都是一个进程,一个进程包含多个线程。 栈 线程私有。 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。 在虚拟机中跑的所有的线程,每一个线程,都有一个自己的线程栈,这个栈是私有的,别人不能访问你的东西,线程栈包括了这个线程现在执行的方法,以及这个节点的相关信息。 每个线程栈由一个个的栈帧组成,每个栈帧对应一个调用的方法。 简而言之,栈执行字节码文件中的java方法。 堆 线程共享。 堆是内存最大的一块区域,解决的是数据存储的问题,存放对象的实例。

B站50K播放量,SpringBoot+Vue前后端分离完整入门教程!

爱⌒轻易说出口 提交于 2020-10-29 05:26:33
最近很多小伙伴都在学习前后端分离的知识,苦于找不到好的基础资料,于是我翻箱倒柜,找了一份好的Vue入门视频和笔记pdf,然后更是亲自录制了SpringBoot + Vue的前后端分离的综合项目,现在统统免费共享给大家! 很多小伙伴都靠这些资料成功学会了Vue,并且能自己动手写前后端分离项目了,相信你也能行! 资料介绍 Vue入门,可以先看黑马程序员的免费Vue入门课程视频,讲得很不错,4小时长,学完足以入门和写简单项目! 一个Vue的入门视频 一份Vue的PDF 然后Vue入门之后,我们来结合后端对接开发,于是我录制了一个SpringBoot + Vue的开源博客项目,并编写了详细的开发文档,包括前端和后端。只需要按照文档,结合讲解视频,就能一步一步跟着做项目了哈,相信这样能大大加快学习的效率! 后端文档: 前端文档: 讲解视频: 如何获取? 1. 识别并关注公众号「 MarkerHub 」; 2. 在下面公众号后台回复关键字「 vue 」。 👆长按上方二维码 2 秒 回复「 vue 」即可获取上面所有资料 另外:最近又上了新教程啦,主讲SpringBoot进阶,以导图的形式为大家梳理和讲解。然后B站上的视频是这样的: 视频目录: 1、课程大纲 2、SpirngBoot基本概念 3、新建SpringBoot项目 4、手动装配之注解注入、@EnableXxx注入 5、