
面试
文章平均质量分 57
霸刀苍云
java程序员
展开
-
面试题整理
1.ngibx配置2 tomcat的请求处理的3http和https原创 2022-08-29 18:10:48 · 173 阅读 · 1 评论 -
redis整理
目录一、数据类型二、 持久化策略1. RDB2. AOF3. 结合使用三、 key过期删除策略四、 回收策略五、 分布式锁六、 缓存穿透,缓存击穿,缓存雪崩一、数据类型参考:https://blog.youkuaiyun.com/Mr_FLM/article/details/97380305Redis数据类型简介: Redis支持字符串、哈希表、列...转载 2019-09-10 22:25:24 · 190 阅读 · 0 评论 -
redis面试题
转载:https://blog.youkuaiyun.com/ThinkWon/article/details/103522351?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161492902016780274147591%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161492902016780274147591&biz_id=.转载 2021-03-05 15:24:25 · 175 阅读 · 0 评论 -
synchronize底层原理
1原创 2021-03-05 09:30:38 · 220 阅读 · 1 评论 -
全网最全微服务架构—Spring Cloud详解,没有比这更详细的了!
原文地址:https://blog.51cto.com/14570694/2482244本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义。一、背景2008年以后,国内互联网行业飞速发展,我们对软件系统的需求已经不再是过去”能用就行”这种很low的档次了,像抢红包、双十一这样的活动不断逼迫我们去突破软件系统的性能上限,传统的IT企业”能用就行”的开发思想已经不能满足互联网高并发、大流量的性能要求。系统架构走向分布式已经是服务..转载 2020-05-28 09:39:58 · 249 阅读 · 0 评论 -
项目
1.项目上遇到的难题,怎么解决的2.项目上印象深刻的问题,怎么解决的3.你觉得自己薄弱点在哪,哪些方面擅长原创 2021-02-24 15:27:43 · 336 阅读 · 0 评论 -
tomcat
一、优化参考官方配置参数信息http://tomcat.apache.org/tomcat-9.0-doc/config/http.html${TOMCAT_HOME}/conf/server.xml1.线程池优化搜索<Executor name="tomcatThreadPool"】,并开启 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" .原创 2021-02-24 08:39:42 · 171 阅读 · 0 评论 -
JUC并发工具类
,原创 2021-01-13 10:31:06 · 119 阅读 · 0 评论 -
Spring,Springboot, Springcloud面试题
1. BeanFactory和FactoryBeanBeanFactory和FactoryBean都是接口 BeanFactory该接口是IoC容器的顶级接口,是IoC容器的最基础实现,也是访问Spring容器的根接口,负责对bean的创建,访问等工作 FactoryBean:是一种工厂bean,可以返回bean的实例。Spring的核心接口,Spring本身就提供了70多个FactoryBean的实现。以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean&原创 2021-02-23 10:47:07 · 1792 阅读 · 0 评论 -
锁
原创 2021-02-22 13:57:12 · 126 阅读 · 0 评论 -
JVM
名词介绍:1.新生代GC Minor GC 指发生在新生代的垃圾回收动作,因为java对象大多都是创建快死亡也快,所有Minor GC非常频繁,回收速度也快2.老年代GC Major GC 指发生在老年代的垃圾回收动作,出现了MajorGC,经常至少会伴随着一次MinorGC也就是FullGC。Major GC的速度一般较慢3.串行 指单线程进行垃圾回收工作,此时用户线程在等待4.并发 指用户线程和垃圾回收线程在同一C...原创 2021-02-22 13:56:27 · 216 阅读 · 0 评论 -
线上问题查找
线上cpu百分之百 top找到耗费cpu高的程序的进程id 利用top-hp命令查看该进程下各个线程的cpu使用情况。并找出消耗cpu高的线程id 将进程id转换为16进制 使用jstack生成所有线程快照文件 在快照文件中查找消耗cpu高的线程在执行哪块代码 根据代码分析问题 死锁 首先死锁肯定会导致线程飙升 根据线上CPU百分之百的方式去找 jstack文件中会有死锁标记(deadlock) 内存泄漏 ...原创 2021-02-22 13:55:42 · 106 阅读 · 0 评论 -
Java 面试 -> 并发
线程池状态new创建线程没有startrunnable start之后blocked线程等待锁时的状态waiting执行wait方法或者join方法TERMINATED线程执行完的状态线程池的状态 running 活跃状态能够接受任务并且处理任务 shutdown 不接收任务但是可以处理已经添加的任务,在调用shutdown方法时会转换 stop shutdown now方法会切换到此状态 不接受不处理,并且会终止 Tidying...原创 2021-02-22 13:54:55 · 155 阅读 · 0 评论 -
总结
1.为什么重新equals为什么要从写hashcode例如往map中放不仅比较值还比较hashcode。假如newuser(1,小明)newuser(1,小明)两个是同一个人,但是如果不重写hashcode的话这两的hashcode不同,比较的话则不相当,放在map中就成两人了2.String str = "abc"和String str = new String("abc")不相等intern方法将new出来的字符串假如常量池3.cas解决方案AtomicStampedRef...原创 2021-02-22 13:53:07 · 81 阅读 · 0 评论 -
Java 面试 ->Mysql
mysql 引擎类型 myslam innodb 使用了B+树的索引模型,每一索引在innodb里面都对应一颗b+树 为什么使用b+树,与hash索引有什么区别。B+ Tree是一种多路平衡查询树,所以他的节点是天然有序的(左子节点小于父节点、父节点小于右子节点),所以对于范围查询的时候不需要做全表扫描。b+树叶子节点存储数据,非叶子节点只存索引。b+树的叶子节点都是相连的,因此在遍历整颗树时只需要遍历叶子节点就好了,而b树的话可能需要深层次递归。hash索引...原创 2021-02-22 13:52:28 · 150 阅读 · 0 评论 -
Java 面试 ->Spring
spring cloud springcloud 是一系列框架的集合。他利用spring boot的开发便利性巧妙的简化了分布式系统的基础设施开发。 spring cloud Eureka 注册中心 分为Eureka server 和Eureka client Eureka server 提供三个功能 服务注册 服务提供者启动后会像Eureka client 像Eureka server 注册信息 提供注册表 服务消费者在调用服务时...原创 2021-02-22 13:51:46 · 146 阅读 · 0 评论 -
Java 面试 ->Mybatis
mybatis中 #{}和 ${}的区别:${}是字符串替换,在处理${}时,会将传入的值直接显示在生成的sql中;#{}是预编译处理,相当于将传入的值当做字符串的形式。先替换为问好,然后通过 PreparedStatement的set方法来赋值。使用#{}可以防止sql注入提高系统的安全性。但是在某些情况下还必须使用${}例如 order by。 PreparedStatement是怎么防止sql注入的:先将SQL语句中可被客户端控制的参数集进行编译,生成对应的临...原创 2021-02-22 13:49:52 · 135 阅读 · 0 评论 -
Java 面试 -> Java基础
Java集合 ArrayList和 LinkedList ArrayList :底层基于数组,根据下标随机访问数组元素效率高。但是在删除和添加时因为需要移动数组元素所以效率比较低。 LinkList :底层基于链表实现,查询慢,增加和删除快,因为删除和增加只需要移动指针即可,但是查询时需要遍历链表。 HashMap和 ConcurrentHashMap HashTable HashMap :HashMap由数...原创 2021-02-22 13:47:15 · 158 阅读 · 0 评论 -
Java 面试 ->Rocket mq
分布式事务 发送mq->消息为send_ok此时消息发送者执行本地代码db事务提交,失败的话回滚,成功的话更改消息状态为消费着可见然后下游服务去执行业务操作db提交事务成功则返回ok,失败的话进行重试。生产者保证消息不丢失1.默认情况下,可以通过同步的方式阻塞式的发送,check SendStatus,状态是OK,表示消息一定成功的投递到了Broker,状态超时或者失败,则会触发默认的2次重试。此方法的发送结果,可能Broker存储成功了,也可能没成功2.采取事务消息的投...转载 2021-02-22 13:25:29 · 179 阅读 · 0 评论 -
Java 面试 ->Redis
为什么使用redis:因为传统的数据库,并不能使用所有的场景,例如秒杀,app首页等瞬时流量高峰,很容易把数据库打崩,所以引用了缓存。目前市面上redis的风评很好,并且很好的支持了spring等框架,所以选择redis。 redis的数据结构: String底层字符数组 Hash List双向列表,插入块删块,查询慢 Set 集合底层是insert数组所有元素是整数并且个数小于512 或者 hashtable底层字典 ...转载 2021-02-22 13:24:00 · 95 阅读 · 0 评论 -
spring cloud 面试题
参考 :https://blog.youkuaiyun.com/forezp/article/details/83999882Spring Cloud是一个全家桶式的技术栈,包含了很多组件。也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件Spring Cloud核心组件:Eureka注册中心Spring Cloud核心组件:Feign各微服务之间相互调用...原创 2019-10-11 20:34:27 · 214 阅读 · 0 评论 -
spring boot 常见面试题
spring boot和spring mvc的区别1. spring boot 约定大于配置可以极少的配置或者不需要配置来启动spring2.spring boot 有内置的容器, tomcat,jetty3. spring boot 自带一些启动项,集成一些功能很方便。jpa,data,cache,Actuator(监控,很不错)说说你对spring boot 自动配置的理解...原创 2019-10-11 20:00:10 · 230 阅读 · 0 评论 -
二叉树、平衡二叉树、红黑树、跳表
。。。原创 2019-10-01 16:32:38 · 214 阅读 · 0 评论 -
java 线程池
一、ThreadPoolExecutor目录一、ThreadPoolExecutor1. 参数:2. 常用方法二、Executors三、Executor框架 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...原创 2019-08-28 00:23:31 · 281 阅读 · 0 评论 -
tomcat和jvm
目录一、配置文件优化1.线程池优化2.protocol优化二、jvm参数优化1.内存划分1)堆2)元数据区3)程序计数器4)java虚拟机栈5)本地方法栈2.参数调优3. GC算法4.jvm优化工具注:基于tomcat9 jdk8一、配置文件优化参考官方配置参数信息http://tomcat.apache.org/tomca...原创 2019-08-28 20:54:12 · 413 阅读 · 0 评论 -
java中的锁
锁是用来控制多个线程访问资源的方式。在Lock接口出现之前,java程序是靠synchronize关键字实现锁功能的,它是显式的获取锁和释放锁,拥有了获取锁和释放锁的可操作性,可中断以及延时获取锁等多种synchronize所不具备的特性。Lock接口的实现都是通过自定义了一个队列同步器(AbstractQueneSynchronizer)的子类来实现的。队列同步器使用了一个int成员变量...原创 2019-09-02 22:59:34 · 171 阅读 · 0 评论