面试抽集二

面试抽集二面试抽集二

大家好,又见面了,我是你们的朋友全栈君。

nginx的权重配置

1、轮询(默认)
2、weight
3、ip_hash
4、fair(第三方)
5、url_hash(第三方)

springboot的自动配置

SpringBoot启动的时候加载主配置类(@SpringBootApplication),开启了自动配置功能 @EnableAutoConfiguration

redis有几个库

Redis默认支持16个数据库(可以通过配置文件支持更多,无上限),可以通过配置databases来修改这一数字

redis做缓存的场景

1.全页面缓存
2. 排行榜
3. Session 存储
4. 队列
5. 发布/订阅

maven的打包方式、常用命令

打包:
使用maven-jar-plugin和maven-dependency-plugin插件打包
使用maven-assembly-plugin插件打包在pom.xml中配置:
使用maven-shade-plugin插件打包在pom.xml中配置:
命令:
1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
2、mvn test 测试,并生成测试报告
3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
4、mvn pakage 打包,动态 web工程打 war包,Java工程打 jar 包。
5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用
6、mvn clean install -Dmaven.test.skip=true 抛弃测试用例打包

thymeleaf是怎么引入页面的

th:include 和 th:replace
include只是加载,replace是替换

jdk1.9的新特性

1.Java 平台级模块系统
2.Linking
3.JShell : 交互式 Java REPL
4.改进的 Javadoc
5.集合工厂方法
6.改进的 Stream API
7.私有接口方法
8.HTTP/2
9.多版本兼容 JAR

ActiveMQ执行流程

mq执行需要开启mq服务器
MQ就是我主线程可能要发送一个短信,但是这个短信不是自己的程序,如果放到主程序里面,这个短信发送失败,我整个程序都无法执行下去了.所以我们将发送短信这个功能抽取出来,在主线程中使用mq,一旦我需要发送短信的时候就创建一个生产者,创建完毕主线程就继续执行,抽取出来的功能使用监听,一旦监听到主线程生产了一条信息,就立刻执行消费将短信发送出去

用过哪些IO流,具体点

字节流的抽象基类:InputStream和OutputStream;
字符流的抽象基类:Reader和Writer。

线程的调度是抢占式的还是协作式

ava虚拟机都确保在不同的优先级之间使用抢占式线程调度,也就是说,当一个优先级低的线程正在裕兴,而一个高优先级线程准备运行时,虚拟机或早或晚暂停这个优先级低的线程,让高优先级来运行。这样高优先级线程就抢占了低优先级线程。

死锁的产生

1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用
2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。
3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源的占有。
4、循环等待,即存在一个等待队列:P1占有P2的资源,P2占有P3的资源,P3占有P1的资源。这样就形成了一个等待环路。

介绍一下什么是MVC

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式

Model(模型)表示应用程序核心(比如数据库记录列表)
View(视图)显示数据(数据库记录)
Controller(控制器)处理输入(写入数据库记录)

并行与并发的区别

并行是指同一时刻同时做多件事情
并发是指同一时间间隔内做多件事情

守护线程的特征

  • a.线程属性isDaemon的状态为true的。
  • b.当jvm应用中没有运行的用户线程时,守护线程会结束运行。
  • c.将线程变为守护线程,通过设置线程的方法 setDaemon(true)即可,但该方法必须在start()方法之前执行才可以,启动后的线程,不能中途改变线程类型
  • d.如果使用线程池框架ExecuteService,则守护线程会被改变成用户线程,线程的优先级也会被设置成普通线程的优先级。ExecuteService主要是用来管理线程的,不能创建线程。
  • e.守护线程具有传递性,当线程设置成守护线程了,那么它的子线程也是守护线程。

springboot的内置容器

内置的容器有三个分别是Undertow、Jetty、Tomcat

Java里面如何实现对象的深克隆

浅克隆:浅复制仅仅复制所考虑的对象,而不复制它所引用的对象
深克隆:深复制把要复制的对象所引用的对象都复制了一遍

父子类的异常处理

  • 1、对于子类构造器:
    1.由于无法捕获父类构造器异常,所以必须抛出大于或等于父类构造器抛出的异常
    2.可以新增其它异常
  • 2、对于子类方法:
    1.可以选择不抛出异常
    2.抛出异常则必须遵从父类方法抛出的异常(异常类型小于等于父类异常,因为在向上造型为父类类型时,调用此方法,会出现父类无法处理的异常类型)
    3.不可抛出新的异常(原因同上)
    4.当子类方法同时重写了父类和接口中的方法时,则不能抛出异常(除非接口和父类抛出的异常一样,此时可抛出这类异常,原因同第2点一样)

什么是Java序列化,如何实现Java序列化

列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。
可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。

ArrayList和LikedList分别用于哪些产品,为什么

ArrayList底层的实现是数组,所以用下标访问的速度比较快,但是插入和删除元素,会有移动元素的开销,所以速度比LinkedList差。
LikedList底层是链表实现的,所以插入和删除元素时间复杂度较LinkedList好,但是随即访问需要遍历元素,所以效率比ArrayList差。

讲一下什么是Aop

切面是一种新的模块化机制,用来描述分散在对象、类或方法中的横切关注点(crosscutting concern)。

mybatis 里面#{}、与${}的区别

使用#{}意味着使用的预编译的语句
使用${}时的sql不会当做字符串处理

mybatis里面的对象

1、SqlSessionFactoryBuilder:负责构建SqlSessionFactory,并且提供了多个build()方法的重载
2、SqlSessionFactory:创建SqlSession实例的工厂
3、SqlSession:用于执行持久化操作的对象

如何解决get,post的乱码问题

get:通过new String的方法进行字节转码
post:对请求直接进行转码或者设置字符集过滤器

spring注入bean的方式

构造方法注入
setter注入
基于注解的注入

svn与git的区别

1.svn是集中式版本控制系统,git是分布式版本控制系统
2.svn是直接与服务器进行交互,git是将文件存到本地然后再推送到服务器
3.svn必须在连网的情况下工作,git可以不连网开发
4.svn易发生冲突,git相对于svn不易发生冲突
5.svn适用于多项目并行开发,git适用于单项目开发
6.svn保存的是文件,git保存是源数据

怎么通过shiro来解决权限控制

第一种“anon”为匿名可访问,配置后,当前设置的请求则不再拦截任何人可以访问。
第二种“authc”为登录(认证)后可访问,配置后,当前请求会被拦截,验证当前请求者为登陆成功状态才会放行(可访问)。
第三种“roles[admin]”为指定角色可以访问,配置后,当前请求会被拦截,只为拥有指定角色的用户放行。
第四种“perms[user:add:*]”为指定全蝎可以访问,配置后,当前请求会被拦截,只为拥有指定权限的用户放行

在权限管理,用户与角色有什么关系

一个用户授权拥有某个角色。
一个用户可拥有多个角色。

对与数据加密有哪些了解

不可逆加密:Hash加密算法/散列算法/摘要算法。
可逆加密:有对称加密和非对称加密。

  • 对称加密:【一个秘钥:文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥】
  • 非对称加密:【两个密钥:公开密钥(publickey)和私有密钥,公有密钥加密,私有密钥解密】
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106475.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号