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

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. 连接mysql报错Access denied for user 'root'@'localhost' (using password: YES)解决办法

    1.打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”(免密码登录),保存并关闭文件,重启MySQL服务. 2.通过命令行进入MySQL的BIN目录,输 ...

  2. java遍历实体类的属性和值

    代码如下: 实体类: public class User implements Serializable { private static final long serialVersionUID = ...

  3. Django 重写用户模型

    AUTH_USER_MODEL = 'myapp.MyUser' django——重写用户模型 Django内建的User模型可能不适合某些类型的项目.例如,在某些网站上使用邮件地址而不是用户名作为身 ...

  4. python入门(四):字符串、编码、random

    1.字符串 字符串基本有两种类型,str和bytes >>> s="a" >>> type(s) <class 'str'>     ...

  5. javaMail实现收发邮件(二)

    JavaMail API常用类 JavaMail API使用javax.mail.Message类来表示一封邮件,Message类是一个抽象类,所以我们需要使用其子类javax.mail.intern ...

  6. 《CSAPP》页表、页命中、缺页

    页表 虚拟存储器系统需要某种方法来判定一个虚拟页是否在DRAM的某个地方. 这些功能由操作系统.存储器管理单元(MMU)中的地址翻译硬件和一个存放在物理存储器中的页表数据结构联合提供. 功能 将虚拟页 ...

  7. LENGTH()和CHAR_LENGTH()区别

    LENGTH()返回以字节为单位的字符串的长度.CHAR_LENGTH()返回以字符为单位的字符串的长度.   分别对应于java中的str.getBytes().length和str.length( ...

  8. RDD认知

    1.RDD又叫弹性分布式数据集 2.抽象 3.带泛型,支持多种数据类型 4.集合是可以进行分区 例如(1,2,3,4,5,6,7,8,9)这个数组是可以进行分区的(1,2,3)  (4,5,6)  ( ...

  9. 拜托!面试请不要再问我Spring Cloud底层原理[z]

    [z]https://juejin.im/post/5be13b83f265da6116393fc7 拜托!面试请不要再问我Spring Cloud底层原理 欢迎关注微信公众号:石杉的架构笔记(id: ...

  10. 操作系统学习笔记(二) 页式映射及windbg验证方式

    页式映射 本系列截图来自网络搜索及以下基本书籍: <Windows内核设计思想> <Windows内核情景分析> <WINDOWS内核原理与实现> 一个32位虚拟地 ...