赞
踩
我想问一下你这边有做过什么项目吗?
我觉得挑一两个比较熟练的项目去说即可
你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?
挑一个最熟的项目去说。
八大基本数据类型是什么?
byte、short、int、long、float、double、char、boolean
你说一下long类型能直接运转吗
(我觉得是问long类型的数据可以直接运算吗)long类型的数据是可以直接运算的,当你在一个表达式中混合使用 int 和 long 类型的值时,int 类型的值会被自动提升为 long 类型,以确保整个表达式的结果是 long 类型的。
你了解单例模式吗?你可以讲一下吗
单例模式(Singleton Pattern)是一种常用的软件设计模式,它的目的是确保一个类仅有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源访问,或者当实例化对象很消耗资源或很耗时,且这些资源或实例在全局只需要一个时非常有用。常见的单例模式的实现方式主要有:懒汉模式和饿汉模式。
懒汉模式跟饿汉模式有什么区别?
可以从对象的初始化时机、线程安全性以及资源利用方面等方面进行对比:
延迟加载
的单例模式。它的特点是在第一次使用时创建实例对象
,而不是在类加载时就创建。这种模式避免了在不需要实例对象时的资源浪费
,只有在需要时才进行创建。在类加载时就创建实例
的单例模式。它的特点是无论是否会被使用到,实例对象都在类加载时被创建。这种方式可以确保在任何情况下都能获取到同一个实例对象,但是可能会导致一些性能和资源上的浪费
,特别是在某些情况下实例对象并没有被使用到。非线程安全的
,因为存在多个线程同时调用getInstance()方法并同时进入判断语句的可能性,从而导致创建了多个实例。为了实现线程安全,可以在getInstance()方法上添加synchronized关键字
,但这会带来性能上的开销。此外,还可以使用双重检查锁定(Double-Checked Locking)等方式来减少同步开销。线程安全
的,因为实例对象已经在类加载时就创建好了,不存在多线程环境下的竞争问题。适用场景
说一下事务的几种特性?
说一下你在做项目的过程中都遇到过哪些异常吗?
(随便列举一些)说一下时间常用的三个类?
LocalDate、LocalTime、LocalDateTime。(随便列举三个即可)
说一下日历的三个方法?
提到与日历相关的操作时,我们通常会想到java.util.Calendar类,因为它是一个抽象类,提供了操作日历字段(如年、月、日、小时等)的方法。从Java 8开始,引入了新的日期时间API(位于java.time包下),提供了更好的日期时间处理能力。
说一下session的生命周期吧。
动态资源
时创建。只访问HTML、图片等静态资源
并不会触发Session的创建。如果需要,可以通过调用request.getSession(true)来强制生成Session。通过<session-config>标签的<session-timeout>子标签设置Session的超时时间,单位为分钟。
服务器端
,如果Session内容过于复杂或数量过多,可能会导致内存溢出。因此,应尽量减少Session中存储的数据量。你在做项目的过程中有遇到过浮点精度的丢失吗?你是怎么解决的?
那我们有一个如果通过浮点进行计算的话,你会选择哪个数据类型去进行计算?
在项目开发过程中,确实经常会遇到浮点数精度丢失的问题
,这主要是因为计算机内部使用二进制来表示浮点数
,而某些十进制小数在二进制下无法精确表示
,导致精度损失。这种问题在财务计算、科学计算等领域尤为关键。
以下是一些我遇到并解决浮点精度丢失的方法:
BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal sum = a.add(b); // 结果为 0.3
设置浮点数的精度:如果必须使用float或double类型,并且可以接受一定程度的精度损失,可以通过设置浮点数的小数点后的位数来尽量减小误差。这通常通过四舍五入等方式实现,但需要注意,这并不能完全避免精度丢失。
避免不必要的浮点数运算:在算法设计时,尽量避免不必要的浮点数运算,或者通过数学变换将浮点数运算转化为整数运算。例如,在计算百分比时,可以先将百分比乘以100转换为整数进行计算,最后再除以100得到结果。
使用第三方库:有些第三方库提供了更精确的浮点数运算功能,可以考虑使用这些库来替代Java标准库中的浮点数运算。
测试和验证:在开发过程中,对涉及到浮点数运算的代码进行充分的测试和验证,确保在各种情况下都能得到预期的结果。特别是要关注那些可能导致精度丢失的边界情况。
文档和注释:在代码中添加适当的文档和注释,说明哪些部分使用了浮点数运算,并可能存在精度丢失的问题。这样有助于其他开发人员理解代码,并在使用时采取相应的措施来避免或减轻精度丢失的影响。
通过上述方法,可以在一定程度上解决或减轻浮点数精度丢失的问题。然而,需要注意的是,由于计算机内部表示的限制,完全避免精度丢失是不可能的。因此,在开发过程中需要根据实际情况选择合适的方法来尽量减小误差。
你能说一下常用的注解吗?spring的?
你对线程了解吗?
线程跟进程有什么区别?
那你说一下什么是线程安全?
并发编程
中。它指的是在多线程环境下,一个类的实例在被多个线程同时访问时,能够表现出正确的行为,并且其内部数据在并发访问时保持一致性、完整性和原子性,不会出现数据污染等意外的副作用
。说一下==和equals的区别?
== :
equals:
总结:
所有比较是否相等时,都是用equals 并且在对常量相比较时,把常量写在前面,因为使用object在前面的话,object可能为null ,则发生空指针异常。
那你平常有用过linux吗?可以简单说一下一些常用命令吗?
cd:进入到指定目录
ls:展示目录以及目录下的文件,-a展示隐藏文件
date:系统时间命令
clear:清屏
whoami:查看当前登录用户
shutdown:关机
init 0:也表示关机
reboot:重启
init 6:关机
grep:搜索命令(通过关键字过滤搜索条件)
echo:输出指定内容
>:重定向符:将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>:重定向符:将左侧命令的结果,追加写入到符号右侧指定的文件中
wc:统计文件的行数、单词数量等
|:管道符:将管道符左边命令的结果,作为右边命令的输入(可配合grep命令和wc命令使用)
&&:左边命令执行成功,再执行右边的命令
||: 左边命令执行失败,再执行右边的命令
ps:查看进程的状态
kill:关闭进程
vi/vim:进入文本编辑器
文件操作命令
文件压缩解压
tar 压缩(解压)命令。常用组合命令
tar -xvf apache-tomcat-9.tar 解压tomcat压缩文件,显示详细过程
tar -zxvf apache-tomcat-9.tar.gz 解压zip格式的压缩文件
tar -zxvf apache-tomcat-9.tar.gz -C mydir 解压到mydir目录下。
tar -cvf my.tar apache/ 压缩apache,并命名为my.tar
-c 创建压缩包
-x 解压
-v 回显
-f <指定包名>
-z 是否使用gzip格式压缩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。