首页 > 其他分享 >面试小结

面试小结

时间:2022-10-07 21:01:20浏览次数:38  
标签:缓存 java 沟通 数据库 面试 线程 消息中间件 小结

想换个对技术要求比较高的岗位和有发展的工作环境,当然,得到一个与技能相匹配的薪资也是一个很重要的原因

 

面试了8家公司,就总结一下

面试中重要的几个方面:

1、技能。作为技术人员,这个是干活的家伙什

2、沟通。见啥人说啥话,不同的面试人员,要从不同的抽象层面进行沟通

 

高级技能:分布式、缓存(一级缓存、二级缓存)、消息中间件(性能、事务、积压时的解决办法)、数据库的分库分表,主从数据库、集群

高并发、高性能(并发是两个任务共享时间段,分时系统在一个cpu上跑就是并发;并行是两个任务在同一时间发生,即在不同的cpu核心上同时运行)

 

行业背景:互联网。现在硬件成本降低,手机、平板都可以进行满足日常生活的所有消费,即这是一个新的消费通道。
网站或app,直接面向消费者,这样就产生对高并发、高性能的需求

 

技术篇:

作为java作为主技术能的dev,

jvm:jvm结构、哪些对象需要回收、如何回收、什么时候回收
多线程:线程的状态转换图、如何启动线程、线程池(如何用、内部如何实现--任务一项技术都不是万能药,只有在合适的地方使用,才能没有意外发生)、线程之间如何通信(多个线程都能操作的东西,都可以作为媒介)

锁:
java中的锁:既然有多线程,在共享数据时,肯定要有个协调机制,不然结果就是不可控的。技术是为业务服务的,业务规则都是确定的,一定要有顺序。这个顺序在java中就是使用锁来协调的。

java中的锁:
synchronized,ReentrantLock,ReentrantReadWriteLock。如果没有wait的场景,能用synchronize就用。
如果需要wait或需要对同步可控,则可以使用ReentrantLock;
如果读多写少的场景,就使用ReentrantReadWriteLock

还有一种场景就是一个任务中间有些部分可以用多线程解决,只有多个线程都结束,才能进行下一步,这种情况使用invokeAll、CountDownLatch 、CyclicBarrier

 

IO:InputStreamReader,OutputStreamWriter,可以设置编码

 

消息中间件:各个消息中间件的比较,p2p,jms Publish/Subscribe。消息中间件嘛,数据丢失了怎么处理

分布式
nginx--tomcat,这是对请求的分发
ehcacher、redis缓存的处理,数据库就不单独写了,整体和Cahce写到一块吧。读数据时,Business不用考虑是从缓存中获取,还是从数据库中获取

Map中get和put的逻辑

数据库优化的途径

Spring bean scope,aop,mvc,transaction,

 

排序、查找算法

 

最后就是沟通了,和管理干部或HR沟通,与技术人员沟通的方式是不同的。

沟通时,讲些对方世界里的内容,是沟通的前提

谈薪资,说个高价,再讨价还价也可以。坚持自己的期望也可以。
找工作这个事,和找女朋友差不多,双方谈妥了,什么都好说;
如果差点啥,就是降低标准,也不一定能勾搭在一块

一专多长。一定要有一个能拿得出手的

Best wishes!

 



标签:缓存,java,沟通,数据库,面试,线程,消息中间件,小结
From: https://blog.51cto.com/u_15147537/5734970

相关文章

  • python基础之周末小结
    python基础之周末小结目录一、与用户交互1.获取用户输入2.输出内部信息二、格式化输出三、基本运算符1.数学运算符2.简化写法3.比较运算符四、常用赋值赋1.链式赋值2.交叉......
  • 周末小结
    数据类型与内置方法字符串操作与内置方法(1).类型转换str(其他数据类型)ps:可以转任意数据类型(只需要在前后加引号即可)1.移除字符串首位的指定字符,可以选择方向st......
  • 前端面试总结14-开发环境与运行环境
    1.git:最常用的代码版本管理工具常用git命令:gitadd.gitcheckoutxxxgitcommit-m"xxx"gitpushoriginmastergitpulloriginmastergitbranchgitcheckout......
  • MySQL面试题(三)
    27、索引的底层实现原理和优化B+树, 经过优化的B+树主 要是在所有的叶子结点中增加了指向下一个叶子节点的指针,  因此InnoDB建 议 为大部分表使用默认自增的主键作为......
  • redis 面试题汇总
    什么是RedisRedis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API的非关系型数据库......
  • Java 面试题 10 - 海量数据处理算法
    大数据处理中的分治思想哈希映射:如果数据太大,不能全部放入内存中,就可以利用映射函数将每条数据映射到一个小文件中,例如%1000可以将大文件映射成1000个小文件。相同的......
  • Java 面试题 11 - 分布式系统常见问题
    分布式ID的实现分布式ID需要满足哪些需求?基本需求:全局唯一高性能:生成速度快,对本地资源消耗小。高可用:生成分布式ID的服务要保证高可用性。方便易用:使用方便......
  • Java 面试题 09 - 计算机网络
    TCP&UDPTCP和UDP的区别有什么?TCP面向连接,UDP无连接。TCP提供可靠的传输,在传递数据之前,需要通过三次握手建立连接,在传递数据时,有确认、窗口、重传、拥塞机......
  • Java 面试题 08 - 计算机网络
    进程什么是系统调用?根据进程访问资源的特点,可以把进程的运行状态分为两个级别:用户态:只能读取用户程序的数据;内核态:可以访问几乎一切资源。用户程序基本都运行在用户......
  • 2022 HTTP面试题都在这里
    HTTP常见面试题Http与Https的区别:Http与Https的区别:HTTP的URL以http://开头,而HTTPS的URL以https://开头HTTP是不安全的,而HTTPS是安全的HTTP标准端口是80,而HTTPS......