本人小菜鸟一个,学的java后端,老家江西坐标上海,20届普本软件工程毕业生,种种原因导致21年1月底才开始找工作,基础学的一般,开个贴记录下面试遇到的问题,慢慢提升自己,大部分答案都是百度的
2021.1.29 收到一家创业外包offer 待遇福利不错(可能是大饼)
2021.2.2 过了两家小公司的面试
2021.2.3 过了一家科技公司的技术面和hr面,待遇谈完等offer中
2021.2.4 去了科技公司,offer已签,965,实习期三到六个月
2021.2.22 办理入职中,中午迎新吃了顿饭,原来公司是966,我之前听错了,顺便说句运维的只有兄弟真惨,上午入职,下午电脑到手就开干了
2021.3.4 原来只有运维的兄弟是966,java开发部门的是965。。。
总结
人生第一次找到工作,耗时一星期,boss投了147,拉钩没有统计不过估计差不多,总共5个offer,三家外包,一家定制网页,一家科技公司(我也不太懂公司的性质这些的)。先这样吧,技术一般就不挑剔了,先入行才是重点,看了下牛客上大厂的面经自己还是差很多,努力吧。
2022.9.8 三月份已经转行golang开发了,java开发太能卷了,天天搞到晚上八九点
目录
- 自我介绍
- java基础
-
- 讲讲访问修饰符public、private、protect、default
- 重写和重载的区别
- jdk1.8新特性
- =和equal的区别
- hashcode()的作用
- 重写hashcode()的原因
- get和post的区别
- wait()和notify()
- 类和抽象类的区别
- Java类加载机制
- 简述下io流
- 谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞
- Java类和对象的初始化顺序
- Java中的泛型是什么 ? 使用泛型的好处是什么?
- 简述TCP三次握手和四次挥手流程
- String字符串反转顺序怎么做
- stringbuffer和stringbuilder
- cookie被禁止后怎样使用session的解决方案?
- jvm调优会吗,讲讲
- jvm内存模型
- JVM里面哪些区域是线程安全
- mysql
- spring
- springmvc
- mybatis
- springboot
- juc
- redis
- 项目
- 其他
- 反问环节
自我介绍
面试官,您好!我叫xx。能熟练使用Springboot+vue2.0+elementui快速开发。我参与了一个分布式电子交易系统的开发,分布式服务架构,使用SpringBoot+Mybatis-Plus,完成了商品系统模块的分类维护,品牌 管理,模糊查询功能,用户可以通过拖动级联选择器的子节点到相应位置,来调整商品所属的三级分类,通过模糊查询搜索 分组添加修改来完成品牌管理维护上新,用对象存储OSS处理品牌logo,用SpringCloud Gateway统 一处理前端请求及跨域问题。生活中我是一个比较积极乐观的人,一般会通过健身的方式来放松。我非常想加入贵公司,我觉得贵公司的文化和技术氛围我都非常喜欢,期待能与你共事!
java基础
讲讲访问修饰符public、private、protect、default
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不
仅可以跨类访问,而且允许跨包(package)访问。
private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以
及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、
属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访
问。
重写和重载的区别
重载(Overload)是让类以统一的方式处理不同类型数据的一种手段,实质表现就是多个具有不同的参数个数或者类型的同名函数(返回值类型可随意,不能以返回类型作为重载函数的区分标准)同时存在于同一个类中,是一个类中多态性的一种表现(调用方法时通过传递不同参数个数和参数类型来决定具体使用哪个方法的多态性)。
重写(Override)是父类与子类之间的多态性,实质是对父类的函数进行重新定义,如果在子类中定义某方法与其父类有相同的名称和参数则该方法被重写,不过子类函数的访问修饰权限不能小于父类的;若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法,如需父类中原有的方法则可使用 super 关键字。
jdk1.8新特性
Lambda表达式(箭头函数)
Stream API
=和equal的区别
==比较的是内存地址,而equal比较的是值
hashcode()的作用
hashCode() 方法用于返回字符串的哈希码。
重写hashcode()的原因
hashset在存储一个元素的时候会调用equals()和hashcode()进行判断,如果返回值不一致就会将数据存储在不一样的位置,然后添加成功
get和post的区别
1、传送方式:get通过地址栏传输,post通过报文传输。
2、传送长度:get参数有长度限制(受限于url长度),而post无限制
3、GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
4、get不安全,post安全
wait()和notify()
类和抽象类的区别
抽象类不能被实例化
抽象类可以有抽象方法,抽象方法只需申明,无需实现
含有抽象方法的类必须申明为抽象类
抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类
抽象方法不能被声明为静态
抽象方法不能用private修饰
抽象方法不能用final修饰
Java类加载机制
类加载的过程包括了加载、验证、准备、解析、初始化五个阶段。
简述下io流
Java对数据的操作是通过流的方式,IO流用来处理设备之间的数据传输,上传文件和下载文件,Java用于操作流的对象都在IO包中
谈谈Java IO里面的常见类,字节流,字符流、接口、实现类、方法阻塞
输入流就是从外部文件输入到内存,输出流主要是从内存输出到文件。
IO里面常见的类,第一印象就只知道IO流中有很多类,IO流主要分为字符流和字节流。字符流中有抽象类InputStream和OutputStream,它们的子类FileInputStream,FileOutputStream,BufferedOutputStream等。字符流BufferedReader和Writer等。都实现了Closeable, Flushable, Appendable这些接口。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。
java中的阻塞式方法是指在程序调用改方法时,必须等待输入数据可用或者检测到输入结束或者抛出异常,否则程序会一直停留在该语句上,不会执行下面的语句。比如read()和readLine()方法。
Java类和对象的初始化顺序
因为类的加载肯定是第一步的,所以类的初始化在前。大体的初始化顺序是:
类初始化 -> 子类构造函数 -> 父类构造函数 -> 实例化成员变量 -> 继续执行子类构造函数的语句
Java中的泛型是什么 ? 使用泛型的好处是什么?
提供了编译期的类型安全,确保你只能把正确类型的对象放入 集合中,避免了在运行时出现ClassCastException
简述TCP三次握手和四次挥手流程
三次握手
第一次:
客户端 - - > 服务器 此时服务器知道了客户端要建立连接了
第二次:
客户端 < - - 服务器 此时客户端知道服务器收到连接请求了
第三次:
客户端 - - > 服务器 此时服务器知道客户端收到了自己的回应
四次挥手
数据传输完毕后,双方都可以释放连接.
此时客户端和服务器都是处于ESTABLISHED状态,然后客户端主动断开连接,服务器被动断开连接.
1, <