java软件开发工程师面试题_软件开发工程师面试题

java软件开发工程师面试题_软件开发工程师面试题Java软件高级工程师笔试题【智力部分】(30分)1.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分)两头同时烧2.4,4,10,10,加减乘除,怎么出24点?四个数字分别

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Java 软件高级工程师笔试题

【智力部分】(30分)

1. 烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?(5分)

两头同时烧

2. 4,4,10,10,加减乘除,怎么出24点?四个数字分别只能用一次(5分)

(10*10-4)/4

3. 如果你有无穷多的水,一个容积为3L的和5L的提桶,你如何准确称出 4L的水?(5分)

第一步:向5L的通中放两次3L水,这时3L水桶剩1L水。

第二步:将3L水桶中的1L水倒入5L的水桶中,这时5L的水桶中有1L水。

第三步:再用3L水桶盛满水全部倒入5L的水桶,4L水就称出来了。

 

4. 一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天睡觉的时候会往下滑2尺,井深10尺,问蜗牛几天可以爬出来?(5分)

8天。

前七天是(3-1)*7 =7

第八天晚上又爬了3尺,这时已经到井口了。在井口睡觉想滑也滑不下去了。

 

5. 有一种细菌,经过一分钟分裂为2个,再过一分钟,分裂为4个,这样,将一个细菌放在一个瓶子里面,一个小时后瓶子被细菌充满了。现在假设一开始放入瓶中的为两个细菌,那么到充满瓶子要多长的时间?(10分)

59分钟。

一个放了一个细菌的瓶子经过一分钟分裂,就有两个细菌了。第二个瓶子直接就有了两个细菌,也就相当于调过了第一个瓶子在第一分钟的情况了。以后的情况就完全一致了,所以是59分钟。

 

【专业部分】(70分)

1. 简述一下面向对象的特征,并举例说明你对面向对象的理解?(5分)

面向对象是基于万物皆对象这个哲学观点,把一个帝乡抽象成类,具体就是你吧一个对象的静态特征和动态特征抽象成属性和方法,也就是把一类事务的算法和数据结构封装在一个类之中,程序就是多个对象和互相间的通信组成的。

面向对象具有封装性,继承性,多态性。封装隐蔽了对象内部不需要暴漏的细节,似的内部细节的变动跟外界脱离,只依靠接口进行通信。封装性降低了编程的复杂性。通过继承,使得新建一个类变得容易,一个类从派生类哪里获得其非私有的方法和公用属性的繁琐工作交给了编译器。而继承和实现接口和运行时的类型标定机制所产生的多态,使得不同的类所产生的对象能够对相同的消息做出不同的反映,记得提高了代码的通用性。

总之,面向对象的特性提高了大型程序的重用性和可维护性。

2. ArrayList和HsahSet的区别,HashMap和Hashtable的区别?(5分)

ArrayList和HashSet的区别:

ArrayList是一组有序的集合,存放的是对象的引用,而不是对象本身。存放的对象是可以重复的。

HashSet存放的对象是不可重复的。

 

HashMap和Hashtable的区别:

  1. 继承的类不同
  2. HashTable是线程安全的,而HashMap是非线程安全的。
  3. HashMap的key,value是允许null的,而HashTable不允许。且HashMap效率高。

 

 

 

 

 

 

3. 线程同步的关键字是什么?sleep() 和 wait() 有什么区别?怎么唤醒wait()停止的线程?(5分)

线程同步的关键字:synchronized

Sleep()和Wait()的区别:

  1. 父类不同Sleep()来自Thread类,wait()来自Objcet类
  2. 最主要的是sleep()方法没有释放锁,而wait方法释放了所,使得其他线程可以使用同步空值快或者方法。

Sleep不让出系统资源;wait是进入线程等待池等待,让出系统资源,其他线程可以占用cpu,且需要notify,notifyAlll来唤醒等待池中的线程。

  1. 使用范围:wait,notify和notifyAll只能在同步空值方法或者同步控制块里使用,而sleep可以在任何地方使用
  2. Sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常

 

 

 

4. 列举你在项目中常用的设计模式(伪代码或类图),并说明每种设计模式的具体应用场景。(5分)

单例模式

Public class Singleton{

      private static volatile Singleton singleton = null;

private Singleton(){}

public static Singleton getSingleton(){

      if(singleton == null){

        synchronized(Singleton.class){

                  if(singleton == null){

                       singleton = new Singleton();

                  }

            }

      }

     return singleton;

}

}

 

多线程中多次获取某个对象的实例,而不必每次都去new。

 

 

 

 

 

4. Spring中事务管理支持哪几种方式以及每种方式的具体使用方法。(5分)

 实现方式两种:

 编码方式;

 声明式事务管理方式。

 声明式事务管理是通过AOP技术实现的,实质就是:在方法执行前后进行拦截,然后在目标方法开始之前创建并加入事务,执行完成目标方法后根据执行情况提交后回滚事务。

声明式事务管理有两种方式:基于XML配置文件(拦截器 AOP),通过标签@Transaction注解

 

另一种答案:

1.每个bead都有一个事务代理

 

  1. Hibernate的缓存等级及其特点(5分)

一级缓存:session级别的缓存,session关闭后,缓存就没有了

二级缓存:sessionFactory级别的缓存,它缓存的是对象

查询缓存:查询缓存也是sessionFactory级别的缓存,它缓存的是sql语句

 

一般二级缓存要和查询缓存配合使用,避免N+1的问题。更建议使用mamcatched单独做缓存。

 

 

 

5. 至少写出一种11位手机号码的正则表达式。(5分)

^[1][358][0-9]{9}$

 

6. 用简短的代码实现字符串“s  tr in   g”到“s tr in g”转换。即将多个空格转换为一个空格(5分)

String s = “s  tr in  g”;

S=s.replaceAll(“ +”,” ”);

 

 

7. 使用Socket编写一个程序,客户端向服务器端发送请求(发送字符串即可),服务端接收后发送反馈信息.(10分)

TCP协议

 

网上例子很多 自己找。代码过长

8. 用SQL语句实现Oracle分页查询。(10分)

 Select * from (select ROWNUM rn,t.* from tableName T where t.rn <=40)  TT where tt.rn >=10

 Select * from tableName where userID limit 0,20;

 

 

 

  1. aa,bb表都有20个字段,且记录数量都很大,aa,bb表的X字段(非空)上有索引, 请用SQL列出aa表里面存在的X在bb表不存在的X的值,请写出认为最快的语句,并解译原因。(10分)

select a.x from aa a where not exists (select 1 from bb b where a.x = b.x)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167106.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【教程】如何批量图片文字识别软件,批量图片文字识别OCR软件系统,批量图片压缩,PDF批量转文字转图片

    【教程】如何批量图片文字识别软件,批量图片文字识别OCR软件系统,批量图片压缩,PDF批量转文字转图片软件不需要安装,直接双击打开就可以用,废话不多说直接上图好了,方便说明问题前段时间有人跟我讲说要批量图片(批量名片识别、批量照片识别等)识别,然后就下来研究了一下可以支持单页图片识别、打开一个文件夹图片批量识别(后期正计划一个文件夹内的多个文件夹分组识别,没需求就没做)PDF文件文字识别怎么弄,现将PDF拆成图片,做了个功能批量PDF拆成图片后批量导入图片再识别开发语言C#、基…

    2022年6月3日
    41
  • DNS递归和迭代过程详解

    DNS递归和迭代过程详解目录DNS原理解析DNS进化史DNS结构DNS查询流程DNS服务搭建DNS相关软件的安装服务器搭建规划手把手教你搭建基本DNS服务器搭建主DNS服务器搭建从DNS服务器参考文献DNS原理解析DNS进化史etc/hosts–&gt;NIS–&gt;DNS起初域名和ip地址之间的解析都是完全存放在一个名为hosts的文件当中…

    2022年6月6日
    49
  • runtime错误解决方案_完美解决Office1402错误

    runtime错误解决方案_完美解决Office1402错误8000401a错误解决方案(OfficeWord,Excel,PowerPoit应用程序无法访问)

    2022年8月22日
    8
  • VRR的工作流程及G-sync和Freesync的区别

    VRR的工作流程及G-sync和Freesync的区别VRR的工作流程可以分为三个阶段,第一个阶段是帧率低于刷新率,第二个阶段是帧率接近刷新率,但是没有超过刷新率,第三个阶段是帧率超过刷新率。理想状态应该是第二个阶段,显卡的输出帧稳定,并且略小于显示器的刷新率,这样显示器有足够的时间去安排VBlank的时间,这时候垂直同步开与不开,几乎没有任何的区别,你的画面不可能发生撕裂。并且显卡是全程在不断的更新画面的,画面不存在滞后的现象,几乎不会产生延迟,这个便是理想状态的G-sync和Freesync,但是如果帧率高于显示器的刷新…

    2022年6月10日
    113
  • 什么是协程_什么时候使用协程和线程

    什么是协程_什么时候使用协程和线程先搞清楚,什么是协程。你可能已经听过『进程』和『线程』这两个概念。进程就是二进制可执行文件在计算机内存里的一个运行实例,就好比你的.exe文件是个类,进程就是new出来的那个实例。进程是计算机系

    2022年8月2日
    8
  • python中for循环加速_如何提高python 中for循环的效率[通俗易懂]

    python中for循环加速_如何提高python 中for循环的效率[通俗易懂]对于某个城市的出租车数据,一天就有33210000条记录,如何将每辆车的数据单独拎出来放到一个专属的文件中呢?思路很简单:就是循环33210000条记录,将每辆车的数据搬运到它该去的文件中。但是对于3000多万条数据,一个一个循环太消耗时间,我花了2个小时才搬运了60万数据,算算3000万我需要花费100个小时,也就需要4-5天。并且还需要保证这五天全天开机,不能出现卡机的事故。因此,需要使用并行…

    2022年8月12日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号