Java程序员笔试题含答案

1.《兴业银行》真实笔试经历 在顺序存放的情况下,数组A的元素是按行优先排列的。最后一个元素A57的下标为(5,7),也就是第6行第8列(因为下标从0开始)。 阅读详情
  1. 谈谈final, finally, finalize的区别。

    final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)

    finally 则是 Java 保证重点代码一定要被执行的一种机制。我们可以使用 try-finally 或者 try-catch-finally 来进行类似关闭 JDBC 连接、保证 unlock 锁等动作。

    finalize 是基础类 java.lang.Object 的一个方法,它的设计目的是保证对象在被垃圾收集前完成特定资源的回收。finalize 机制现在已经不推荐使用,并且在 JDK 9 开始被标记为 deprecated

2.Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
内部类,存在于另一个类内部的类,而匿名内部类,顾名思义,就是没有名字的内部类。
怎么实现匿名内部类?
匿名内部类的实现非常简单,如有一接口
Interface A{
public void method();
}
这时你可以写一个如下的语句得到接口A的实现类的对象
A a=new A(){ public void method(){System.out.println(“hehe”);} };
而其中的{ public void method(){System.out.println(“hehe”);} };
就是定义了一个匿名内部类

结论:以上可以看出匿名内部类在实现时必须借助一个类或一个接口,若从这个层次上讲它是可以继承其他类也可以实现接口的,但若是通过extends或implements关键字那是不可能的。

3.&和&&的区别

&和 | 既是逻辑运算符也是位运算符,而&&和||只是逻辑运算符。

4.HashMap和Hashtable的区别。

HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。
HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。
由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。
HashMap不能保证随着时间的推移Map中的元素次序是不变的。

5**.Collection 和 Collections的区别。**

Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。

Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,服务于Java的Collection框架。

6.sleep() 和 wait() 有什么区别?

sleep()方法可以在任何地方使用;
wait()方法则只能在同步方法或同步块中使用;

sleep()是线程线程类(Thread)的方法,调用会暂停此线程指定的时间,但监控依然保持,不会释放对象锁,到时间自动恢复;
wait()是Object的方法,调用会放弃对象锁,进入等待队列,待调用notify()/notifyAll()唤醒指定的线程或者所有线程,才会进入锁池,不再次获得对象锁才会进入运行状态;

7.数组有没有length()这个方法? String有没有length()这个方法?

数组的length是数组的属性,且在Java底层是:public final int length,即不可修改.但是这样明显违背了面向对象的封装性。 而String底层是一个char数组,作为一个对象,String的设计人员不希望客户端程序员直接调用常量,因为这样破坏了封装性,所以使用String.length()方法封装起来char[].length,当然代价就是调用方法需要入栈,导致时间上有部分缺陷,如果对时间很看重的话,建议使用手动变量存储长度,只调用一次length()方法。

结论:数组中没有length()这个方法,但是数组中有length这个属性。用来表示数组的长度。
 String中有length()这个方法。用来得到字符串的长度。

8.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

方法的重写Override和重载Overload是Java多态性的不同表现。
override是方法覆盖,用在父子类中,是方法名字相同,参数列表也相同,声明形式都相同,但是子类方法的权限不允许小于父类,不允许抛出比父类更多的异常。调用子类的方法与父类的同名方法无关,在子类中完全覆盖了父类的方法。
overload是方法重载,用在同一个类中,是几个方法的名字相同,返回值相同,但是参数列表不同,举例来说就像构造函数,可以有多个构造函数,并且每个的参数列表都不同,这样可以用多种方式构造对象。
还可以这么理解:如果在子类中定义某个方法有相同的名称和参数,我们说该方法被重写。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如果被屏蔽了。如果在一个类中定义了同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。
Overloaded的方法是可以改变返回值的类型的。

9.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?

1、什么是Set?(what)
Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象。
2、如何来区分重复与否呢?(how)
“ 用 iterator() 方法来区分重复与否 ”,这是在网上流传的答案,个人认为这是个错误的答案。JPI中写的很明白:“set 不包含满足e1.equals(e2) 的元素对 e1 和 e2 ”,由此可见回答使用equals()区分更合适。
3、为什么用equals()而不用==来区分?(why)
应该从它俩的区别谈起,==是用来判断两者是否是同一对象(同一事物),而equals是用来判断是否引用同一个对象。再看一下Set里面存的是
对象,还是对象的引用。根据java的存储机制可知,set里面存放的是对象的引用,所以当两个元素只要满足了equals()时就已经指向同一个对象,

	结论:应该用equals()来判断

10.error和exception有什么区别?

Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。

Exception(异常)表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

11.List, Set, Map是否继承自Collection接口?
List和Set是继承自Collection接口的接口,Set不允许重复的项目,List允许重复项目,Set接口派生的类有TreeSet,HashSet,LinkedHashSet。 List接口派生的类有ArrayList,Vector等。 Map是独立的接口,不继承Collection接口。

结论:List,Set继承自Collection接口,Map否

12.abstract class和interface有什么区别?

12.1.抽象类可以有构造方法,接口中不能有构造方法。
12.2.抽象类中可以有普通成员变量,接口中没有普通成员变量
12.3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
12.4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然 eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
12.5. 抽象类中可以包含静态方法,接口中不能包含静态方法
12.6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

13.构造器Constructor是否可被override?

Constructor不能被继承,所以Constructor也就不能被override,但是可以overload,所以你可以看到有多个构造函数这种情况

14.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

 不能,一个对象的一个synchronized方法只能由一个线程访问。 
对象的synchronized方法不能进入了,但它的其他非synchronized方法还是可以访问的。

15.编程题: 写一个Singleton出来。

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 一般Singleton模式通常有几种种形式: 

第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
 
    private Singleton(){
 
    } 
  //在自己内部定义自己一个实例,是不是很奇怪? 
  //注意这是private 只供内部调用 
  private static Singleton instance = new Singleton(); 
  //这里提供了一个供外部访问本class的静态方法,可以直接访问   
  public static Singleton getInstance() { 
    return instance;    
  } 
} 

第二种形式: 
public class Singleton { 
  private static Singleton instance = null; 
  public static synchronized Singleton getInstance() { 
      //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次      
      //使用时生成实例,提高了效率! 
      if (instance==null){
            instance=new Singleton(); 
        }			
        return instance;   
    } 

发帖不易,请读者多多支持

兴业银行数据开发的笔试题答案(2025) 网关层,负责处理Web通信,通常位于一个或多个Web服务器上,将信息从Web服务器传输到其他服务器. 网关层组件包括用于Kerberos的CGI程序、Internet Server Application Program Interface (ISAPI) 或 Apache Modules (apache_mod)ETL(Extract, Transform, Load)是数据仓库和数据集成过程中常用的一种方法,用于从不同的数据源提取数据,进行清洗、转换,然后将数据加载到目标数据存储中。 阅读详情

相关推荐

java面试题笔试常见选择题大全含答案

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。java面试题笔试常见选择题大全含答案。...

m0_67393413的博客 1184

2020 兴业银行Java笔试题

2020 兴业银行Java笔试题,记得几道题目,各位有兴趣的同学下载看看。

Java 部分笔试题解析

合法的 try 语句块必须包含 try 块,并且至少包含一个 catch 块或一个 finally 块。给定一个长度为n的数组,数组中的每个元素,表示一根水管的长度,水管可以在任意位置锯开。调用 sleep() 方法、创建新线程、高优先级线程进入就绪状态只会暂停或抢占线程的执行,而不会终止线程的运行。A.抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。接口中的成员变量必须是常量(static final),而抽象类可以有普通成员变量。

博客 2522

2021兴业数金Java笔试题面经

最近收到了内推,做了一下数金Java在线笔试题,头一回在牛客上笔试。不过大概率是没戏了,因为都没做过笔试训练,笔试做的有点糟糕。对面试做一下回顾吧,希望能帮到后面的人。 笔试范围 时长:120分钟 网站:牛客网 内容:Java基础(40道单选+20道多选)+ 1道简单算法题 注意事项 Java基础部分都来自牛客网,多刷下牛客网的专项训练Java部分即可,算法题的话比较简单,我考试时候题目是[编程题]加一,但也是比较坑的一部分,用的是ACM模式,需要自定义输入输出,这部分就坑了我。可以先在OJ在线编程

m0_67402774的博客 1976

2022Java笔试题选择题整理(附答案解析)走过路过不要错过了喂!

2022Java笔试题选择题

weixin_43474701的博客 1万+

兴业数金牛客java笔试题

记一次牛客java笔试题 40道单选 20道多选 一道编程 选择题考点: 1.中序遍历 2.CVE 3.外键 4.序列化 5.sleep和wait 6.jsp页面,保存数据范围由小到大是pageContext 7.内部类 8.MD5是不是杂凑算法 9.数组复制 10.并发操作,数据一致性吧 11.String s; System.out.print(“s”+s); 12.SLF4J 12.Dispatchservelt 13.哪一项参数不是存储过程中接受的参数 14.关系模式 15.PL/SQL,哪一部分对

qq_46703390的博客 7431

JAVA中why无返回值_Java程序员笔试题含答案

谈谈final, finally, finalize的区别。final 可以用来修饰类、方法、变量,分别有不同的意义,final 修饰的 class 代表不可以继承扩展,final 的变量是不可以修改的,而 final 的方法也是不可以重写的(override)finally 则是 Java 保证重点代码一定要被执行的一种机制。我们可以使用 try-finally 或者 try-catch-fin...

weixin_36131257的博客 144

Java开发实习面试笔试题含答案

分享一家广州中大公司笔试面试题目给大家做参考。

weixin_73144915的博客 2643

Java程序员精选高频面试笔试题全家桶,通往BAT必备法宝!《附赠PDF》

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动? 最近这波互联网裁员浪潮下,许多朋友被裁之后几周内陆陆续续找到工作,但也有部分现在还在求职中,其中重要区别就是在于平时是否坚持积累和成长。 面对工作,与其选择满不情愿,最后收获痛...

qq_42982923的博客 249

阿里巴巴2016校招笔试题含答案

阿里巴巴2016校招笔试题含答案) 1、(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改变几次 答案:2次 2、以下程序输出结果是( ) class A { public:         virtual void func(int val = 1)         {                  std::cout  "

LzyRapX 2万+

java ee开发工程师笔试题_Java中级开发工程师笔试题答案2016

Java中级开发工程师笔试题答案201618)在JavaEE中,HttpServletRequest对象是由( A )创建的. (选择一项)a) 由Servlet容器负责创建,对于每个HTTP请求,Servlet容器都会创建一个由HttpServletRequest对象b) 由Java Web应用的Servlet或JSP组件负责创建,当Servlet或JSP组件响应HTTP请求时,先创建HTTP...

weixin_31782323的博客 353

Java最全Java27岁了——我与Java初识(1),2024Java笔试题

无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。最后我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。本文已被。

2401_84585205的博客 1003

java类初始化顺序-阿里笔试题

阿里笔试题之写出程序输出结果: package com.patrick.bishi; public class TestVar { public static int k = 0; public static TestVar t1 = new TestVar("t1"); public static TestVar t2 = new TestVar("t2"); public st

忍耐 568

Java程序员经典笔试题目大全

本文还有配套的精品资源,点击获取 简介:Java笔试是评估程序员技术水平的关键环节,特别是在求职面试中。本压缩包收录了大量经典Java编程题目及答案,覆盖基础语法、面向对象、异常处理、集合框架、IO流、多线程、反射机制、JVM原理、设计模式、Java EE技术、数据库操作和算法与数据结构等多个知识点。它不仅适用于求职者准备面试,也适合开发者自我提升,帮助巩固和检验Java编...

weixin_32311823的博客 1329

Java笔试题编程题大全(有详细答案)

本文介绍Java常见的笔试题中的编程题。

IT利刃出鞘的博客 1万+

Java笔试题大全(附带答案

一、单选题 1.下列哪一种叙述是正确的(D) A.abstract修饰符可修饰字段、方法和类 B. 抽象方法的body部分必须用一对大括号{ }包住 C. 声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.如下代码 public class Test { public int aMethod() { static int i = 0; i++; return i; } public static void main (String args[]) { Test test = new Test

web13618542420的博客 1万+
上一篇: 分布式系统中接口的幂等性该如何保证?比如不能重复扣款?
下一篇: 设计模式-策略模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值