网上一些没有标准答案的面试题,我自己做的解答总结,有任何异议可以提出来~^_^,不断更新中...

Springboot除了自动配置与传统的spring还有哪些不同

  1. 传统的springweb项目需要部署在tomcat这样的容器才能运行,springboot集成了tomcat容器,可以直接通过他提供的main方法直接运行,或者打成jar包或war包直接运行
  2. springboot提供了很多第三方打包的插件,可以很方便的引用pom,通过简单配置来集成第三方插件,像redis,jpa等

hashmap线程不安全的出现场景

  1. 在多线程环境下,同时put一个全局的hashmap,此时若hashmap刚好进行扩容,进入rehash方法,线程1执行了一部分然后挂起,被线程2抢走cpu继续运行,可能导致链表的循环引用,当下次get这个key值时,会造成死循环

Object中hashcode方法重写了,equals方法要不要改;equals方法重写了,hashcode方法要不要改?

  1. 首先从原理上将,hashcode存在是为了快速的定位像在hashmap中键值得位置,当hashcode重写,仅仅影响的是不同的键值hashcode值变了,并不影响键值得存取和判重
  2. 但是如果equals方法变了,影响的是值,要判断值是否相同,不止需要equals相同,hashcode也要相同,所以equals变了,hashcode方法也要变

线上服务cpu很高怎么办?可以采取哪些措施?

  1. 首先,top一下,判断哪个进程占用cpu很高
  2. 然后top -Hp pid判断该进行哪个线程最占用cpu,目的是找到哪个方法栈最占用cpu
  3. 找到线程pid后,进行16进制转换
  4. 然后用jstack 进程id | grep 线程id 来打印栈信息,可以找到哪个类或方法占用了最高cpu,就可以去查程序代码的原因

TCP与UDP有什么不同?TCP是如何保证可靠传输的?

  1. TPC是面向连接的,UDP是无连接的
  2. TPC是可靠服务,保证数据完整不丢失,不重复,有序,无差错。UDP不保证数据完整性
  3. TPC是一对一连接,UDP可以有一对一,一对多,多对一,多对多

  4. TCP提供了丢包重试机制,应答机制,有序接收机制保证数据可靠性

网关能够为后端服务带来哪些好处?

  1. 首先是隐藏后端ip地址
  2. 方便进行负载均衡
  3. 提供统一的地址管理,调用监控,安全过滤

java相关技术问答(一)的更多相关文章

  1. java相关技术问答(二)

    String为什么是final的 首先是为了安全性,final表示不可变,不可被继承,不能修改其方法保证安全 在多线程环境下,final类型的String保证线程安全 String支持字符串常量池,相 ...

  2. 在Eclipse中使用Maven插件 博客分类: Java相关技术

    简介 本文介绍如何在Eclipse中通过maven插件编写java项目和web项目. 安装Maven 下载Maven最新版本,见:maven.apache.org/download.html 当前版本 ...

  3. JAVA相关技术

    开发服务器环境: 1.Linux系统 CentOS 6.5\7 2.JDK1.8 3.tomcat 9 4.mysql 5.7 开发环境: 1.开发集成工具:idea 2.构建工具maven 仓库暂时 ...

  4. java -相关技术

    地址:      http://www.codeyyy.com/java/11-35-52.html

  5. Java后端技术微信交流群!工作、学习、技术、资源等!期待你的加入!

    <Java后端技术>专注Java相关技术:SSM.Spring全家桶.微服务.MySQL.MyCat.集群.分布式.中间件.Linux.网络.多线程,偶尔讲点运维Jenkins.Nexus ...

  6. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境

  7. https://stackoverflow.com/与程序相关的IT技术问答网站

    https://stackoverflow.com/ Stack Overflow是一个与程序相关的IT技术问答网站.用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HT ...

  8. 目前最全的IT技术问答、社区、科技服务网站合集

    资源网站 推荐一个资源丰富齐全的网站:风云社区(SCOEE),主要特点是提供的是纯净.优质.无广告.无附加东西的资源.资源很丰富,包括各类软件资源(mac.Windows.ios.ipad.安装等软件 ...

  9. JAVA相关基础知识

    JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...

随机推荐

  1. linux下启动tomcat服务

     Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/local ...

  2. Java Bug -- java.util.ConcurrentModificationException

    java.util.ConcurrentModificationException at java.util.ArrayList$ArrayListIterator.next(ArrayList.ja ...

  3. linux check

    建议安装chkrootkit.rkhunter.Lynis.ISPProtect这类安全工具,定期做扫描

  4. Beta冲刺——第三天

    beta冲刺:第三天 各个成员今日完成的任务 成员 冯晓.马思远 彭辉.王爽 吴琼.郝延婷 今日完成任务 ·管理员管理功能模块下角色管理功能的完善测试 ·角色和权限部分代码规范 ·博客撰写 ·后台系统 ...

  5. vue 初始化data中的数据

    Object.assign(this.$data, this.$options.data());

  6. H5相关网址

    html5中国 http://www.html5cn.org/   HTML 5 教程 http://www.w3school.com.cn/html5/index.asp   http://www. ...

  7. ProxyHandler处理器(代理设置)

    很多网站会检测某一段时间某个IP的访问次数(通过流量统计,系统日志等),如果访问的次数多得不像正常人,它会禁止这个IP的访问. 所以我们可以设置一些代理服务器,每个一段时间换一个代理,就算IP被禁止, ...

  8. IO高级应用关于字符码表

    ASCII码表: 计算机里只有数字,我在计算机软件里的一切都是用数字来表示,屏幕上显示的一个个字符也不例外.计算机诞生在美国,最开始所用到字符就是我们现在键盘上的一些符号和少数几个特殊的符号,每一个字 ...

  9. 【python深入】装饰器理解及使用

    装饰器,其实就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下额外增加功能,装饰器的返回是一个函数对象. 用一个例子来说明一下什么是函数对象: 从这里可以看到,直接在函数后面加bar(),就 ...

  10. 725. Split Linked List in Parts把链表分成长度不超过1的若干部分

    [抄题]: Given a (singly) linked list with head node root, write a function to split the linked list in ...