面经
文章平均质量分 73
一蓑烟雨任平生2024
这个作者很懒,什么都没留下…
展开
-
kafka如何保证顺序消费?
使用synchronized进行加锁的话,会影响无关联的insert和update的数据消费能力,如id=1的insert和id=2的update,在synchronized的情况下,无法并发处理,这是没有必要的,我们需要的是对于id=1的insert和id=1的update在同一时间只有一个在处理,所以使用细粒度锁来完成加锁的操作。现有Topic-insert和Topic-update,数据唯一标识为id,对于id=1的数据而言,要保证Topic-insert消费在前,Topic-update消费在后。原创 2024-02-25 16:08:00 · 986 阅读 · 0 评论 -
Java OOM问题如何排查
目录OOM 问题 什么是OOM 导致OOM问题的原因 排查手段 实战 MAT分析 OOM 问题什么是OOMOOM为out of memory的简称,来源于java.lang.OutOfMemoryError,指程序需要的内存空间大于系统分配的内存空间,OOM后果就是程序crash;可以通俗理解:程序申请内存过大,虚拟机无法满足,然后自杀了。导致OOM问题的原因为什么会没有内存了呢?原因不外乎有两点:1)分配的少了:比如虚拟机本身可使用的内存(一般通过启动时原创 2021-06-26 19:45:20 · 2411 阅读 · 4 评论 -
什么是TCP粘包?怎么解决这个问题
在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那么这样一来,接收端就必须使用高效科学的拆包机制来分辨这些数据。1.Q:什么是TCP粘包问题?TCP粘包就是指发送方发送的若干包数转载 2021-06-26 19:30:41 · 157 阅读 · 0 评论 -
Java中字符串有长度限制吗?
字符串有长度限制吗?是多少?首先字符串的内容是由一个字符数组char[] 来存储的,由于数组的长度及索引是整数,且String类中返回字符串长度的方法length() 的返回值也是int ,所以通过查看java源码中的类Integer我们可以看到Integer的最大范围是2^31 -1,由于数组是从0开始的,所以数组的最大长度可以使【0~2^31-1】通过计算是大概4GB。但是通过翻阅java虚拟机手册对class文件格式的定义以及常量池中对String类型的结构体定义我们可以知道对于索引定义了.转载 2021-04-02 13:45:26 · 529 阅读 · 1 评论 -
Java中ArrayList和LinkedList区别 时间复杂度 与空间复杂度
ArrayList 是线性表(数组)get() 直接读取第几个下标,复杂度 O(1)add(E) 添加元素,直接在后面添加,复杂度O(1)add(index, E) 添加元素,在第几个元素后面插入,后面的元素需要向后移动,复杂度O(n)remove()删除元素,后面的元素需要逐个移动,复杂度O(n)LinkedList 是链表的操作get() 获取第几个元素,依次遍历,复杂度O(n)add(E) 添加到末尾,复杂度O(1)add(index, E) 添加第几个元素后,需要先查找到第几个元素原创 2021-03-24 09:13:53 · 833 阅读 · 0 评论 -
SpringCloud 和SpringBoot 的区别与相互依赖关系
SpringCloud 和SpringBoot 的区别与相互依赖关系一 . SpringBoot1.简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。Spri...转载 2021-02-10 10:08:01 · 3897 阅读 · 0 评论 -
redis快速和支持高并发的原因
一.Redis的高并发和快速原因1.redis是基于内存的,内存的读写速度非常快;2.redis是单线程的,省去了很多上下文切换线程的时间;3.redis使用多路复用技术,可以处理并发的连接。非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间。二.为什么Redis是单线程的1.官方答案因为Redis是基于内存的操作,CPU不是Redis的瓶颈,.转载 2021-02-03 14:55:13 · 909 阅读 · 1 评论 -
单链表反转
/** * 迭代法 */ public ListNode reverseList_1(ListNode head) { ListNode newHead = null; while (head != null){ ListNode temp = head.next; head.next = newHead; newHead = head; hea...原创 2020-10-19 14:28:52 · 136 阅读 · 0 评论 -
土巴兔10.16Java校招腾讯会议一面
自我介绍项目、实习介绍(用到的技术栈、实习内容)自己做的项目遇到的问题(我学会了分页)ArrayList的特点(随机访问的时间复杂度是多少?答案是:O(1)我说了O(n))访问数组中的下标来访问内存中存储的元素,访问任何一个位置的数组元素,时间复杂度是O(1),线程创建几种方式int 和Integer的区别之处(装箱拆箱机制、== 比较) int b = 1; Integer B = new Integer(1); Syste.原创 2020-10-16 15:35:46 · 353 阅读 · 7 评论 -
Spring注解事务不支持 protected private 方法的原因
疑惑@Transactional注解只能应用于 public方法,如果你在 protected、private 或者默认可见性的方法上使用 @Transactional 注解,这将被忽略,也不会抛出任何异常。大神说是由于Spring AOP 的本质决定的,暂时还不明白为什么。验证pom依赖 <dependencies> <dependency> <groupId>org.springframework.boot</gr..转载 2020-10-16 15:22:51 · 6914 阅读 · 0 评论 -
面试题:List<Integer> list = new ArrayList<>() 里面可以放String类型的数据吗?
可以通过反射将String放入List中。那什么是反射呢?在运行过过程中获取类的名称,方法,属性,注解,类型等。 获取任意对象的方法,属性等。并且可以改变对象属性 判断一个对象所属的类 实例化任意一个类的对象其实就是java提供的reflect包回到一开始的那个问题,List list = new ArrayList<>()里面可以放String类型的数据吗?很显然是可以的,因为list是一个对象,而反射可以获取对象的属性方法,并且改变对象属性。那我们就可以通过list原创 2020-10-16 14:58:40 · 5029 阅读 · 0 评论 -
String字符串逆转
package String;import java.util.Stack;/** * @author root * @Description: * @Package String * @date 2020/10/10 14:43 */public class ReverseString { public static void main(String[] args) { String str = "ABC123"; reverse1(str);.原创 2020-10-10 19:58:53 · 504 阅读 · 0 评论 -
【Java面试题】List如何一边遍历,一边删除?
这是最近面试时被问到的1道面试题,本篇博客对此问题进行总结分享。1. 新手常犯的错误可能很多新手(包括当年的我,哈哈)第一时间想到的写法是下面这样的:public static void main(String[] args) { List<String> platformList = new ArrayList<>(); platformList.add("博客园"); platformList.add("CSDN"); platfor转载 2020-10-10 08:57:56 · 308 阅读 · 1 评论 -
10.8 富士康java开发 微信视频面试(HR+技术面 两个女面试官)
HR面自我介绍学校主修课程有哪些聊了一下简历上的写的项目、实习经历(大致描述了一下)未来三年规划技术面数据库冗余和备份(答了个分库分表,直接说不会跳过了)stringbuilder和stringbuffer的区别常用的集合类(list、set、map,哔哩啪啦说了一堆没有提问)常见的异常(Throwable、Exception、error)spring注入一个bean的几种方式(@Autowired、@Resource)spring常用注解spring的.原创 2020-10-08 12:18:45 · 2013 阅读 · 1 评论 -
HR面常问问题
1.你最大的缺点问题分析:考察候选人的自我认知能力,个人优点是否符合岗位要求。参考建议:第一,不宜说自己没有缺点,只要是人就有缺点,这么说一定会令人反感。第二,年轻经验不足、缺乏磨炼、有些着急、对待效率低下的人缺乏耐心等根据以上的关键点,缺点参考回复:首先,我刚毕业,经验方面不足,我会在工作中积极完成工作,积累各方面经验其次,性子急,对待效率低下的人缺乏耐心,但是我平时和别人聊天的时候会控制自己语速和讲话,慢慢培养自己耐心,避免浮躁。(遵循一个原则避重就轻)Tips:利用你原创 2020-09-29 15:09:13 · 1949 阅读 · 0 评论 -
9.24 20:00 南京烽火星空 java校招 QQ视频一面
上来直接问,自我介绍都省了问了大四毕设方向(还没决定,学校还没公布,打算做一个springcloud项目)进入正题:ArrayList和vector的区别怎么实现线程安全的List(collections.synchronized(new ArrayList()) CopyOnWriteArrayList)List怎么实现“百家姓”赵钱孙李这种排序(说了一下List怎么去重,再加一个sort()排序?打得不是很好)jdk1.7和jdk1.8 HashMap的变化(头插法尾插法、死循.原创 2020-09-24 21:11:49 · 738 阅读 · 1 评论 -
9.23浩鲸科技java开发校招电话一面
1.spring bean的生命周期、bean的几种注入方式(1.xml配置<constructor-arg>构造器注入 ;2.<property>setter getter setter方法; 3.注解注入@Autowired @Resource 二者区别 4.@Bean )2.spring容器的加载方式(ApplicationContext 和beanfactory 以及二者区别)spring的作用范围(singleton、prototype(可以保证线程安全)、re原创 2020-09-23 13:31:18 · 1150 阅读 · 4 评论 -
9.19浙江大华股份有限公司java开发岗位电话一面+9.22南京凤凰台饭店线下技术二面+线下HR面
1.自我介绍2.String类有哪些常用的方法?3.给定一个子串怎么匹配另一个串是否包含它?(KMP算法、contains()、单个字符进行比对匹配)4.深拷贝和浅拷贝5.ArrayList和LinkedList的区别?6.用过哪些关系型数据库?redis主要用于做什么?7.前端会吗?...原创 2020-09-20 10:38:56 · 586 阅读 · 0 评论 -
9.8扇贝一面
http和https的区别?为什么selectcount(*)fromt,在InnoDB引擎中比MyISAM慢?Strings=newString(“hello);创建了几个对象?Integer的最大范围是多少?堆的底层是什么?Mysql索引底层原理?mysql 慢查询,怎么解决查询慢的问题?hashMap常用的类型?TreeMap底层原理?redis RDB和AOFredis bitmap了解吗Redis String数据类型底层原理是什么...原创 2020-09-08 15:00:30 · 194 阅读 · 0 评论