这是来自一位学长的 一面(技术面试)4.28上午9:30,全程大概50min
- 先自我介绍
- JDK与JRE区别
- String类型是基本类型吗?
- java基本数据类型有哪些?
- java面向对象特点
- 关于自己毕业设计的具体内容,我觉得的难点,设备选型过程,实现方案等问题
- 手撕代码:剑指offer 整数反转 easy难度
- 反问
这位学长的一面是一位非常nice的小姐姐,学长前面稍稍有些紧张,后面这位小姐姐很好的缓解了气氛,后面反问环节聊了很多内容,面试完成后过了5min就来短信说通过了
面试题的解答如下:
- JDK与JRE区别
JDK:java语言编写的程序所需的开发工具包,JDK包含了JRE,同时还javac、监控工具jconsole、分析工具jvisualvm等
是Java开发工具包,提供了Java的开发环境(提供了编译器javac等工具,用于将java文件编译为class文件)和运行环境(提供了JVM和Runtime辅助包,用于解析class文件使其运行);
如果你下载并安装JDK,那么你不仅可以开发Java程序,也同时拥有了运行Java程序的平台;
JDK是整个Java的核心,包括了Java运行环境(JRE),一堆Java工具tools.jar和Java标准类库
JRE:java程序的运行时环境,包含了java虚拟机,java基础类库
JRE是Java的运行环境。面向Java程序的使用者,而不是开发者。
如果你只下载并安装了JRE,那么你的系统只能运行Java程序。JRE是运行Java程序所必须的环境集合,包含JVM标准实现及Java核心类库。JRE包含Java虚拟机,Java平台核心类和支持文件,不包含开发工具(编译器,调试器等)
- String类型是基本类型吗?
String不是基本的数据类型,是final修饰的java.lang.String类,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象
String 对象是 System.Char 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的
- java基本数据类型有哪些?
4型8种:
字符类型:byte char
整型:short int long
浮点型:float double
布尔型:boolean
- Java面向对象特点
面向对象是一种常见的思想,符合人们的思考习惯
面向对象可以将复杂的逻辑业务简单化,增强代码复用性
面向对象具有抽象,封装,继承,多态等特性
面向对象的编程语言主要有:C++,Java,C#等
封装:核心思想就是“隐藏细节”、“数据安全”:将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定
多态:多态指允许不同类的对象对同一“消息”做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。可以用于消除类型之间的耦合关系,Spring 的核心就是多态和面向接口编程
继承:在多个不同的类中抽取出共性的数据和逻辑,对这些共性的内容进行封装一个新的类即父类(也叫做超类或基类),让之前的类来继承这个类,那些共性的内容在子类中就不必重复定义,比如 BaseDAO、BaseAction 等
- 关于自己毕业设计的具体内容,我觉得的难点,设备选型过程,实现方案等问题
- 手撕代码:剑指offer 整数反转 easy难度
思路:
本题的有两个要点,其一是反转,其二是溢出。
反转
反转的方法有很多,针对整数我们可以直接转字符串然后调用StringBuffer/StringBuilder的reverse()方法一次性完成,也可以用取余数的方法来逐一反转。
溢出
溢出的判断才是考察的重点。由于题目要求只能有32位的有符号整数,那么超过 2147483647 或者小于 -2147483648 的数便会导致结果错误,因此需要在输出前检查结果。
- 反问