JavaEE第二阶段面试题总结(3)

目录

基础语法与算法a++ 与 ++a的区别?&和&&的区别***说说jvm***GC是什么? 为什么要有GC?数组有没有length()这个方法?String有没有length()这个方法?面向对象什么是多态?Integer封装类可以被继承吗?String可以被继承吗?int 和 Integer有什么区别?extends和implements区别构造器Constructor是否可被override?接口是否可以继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的main方法?类的加载机制(类加载机制)据下方代码,写出打印结果:(类加载机制)查看如下代码,写出打印结果:请简述面向对象的一些基本概念java中的常用类,不少于6个?集合List, Set, Map是否继承自Collection接口?HashMap的数据结构 存放数据的机制和扩容问题谈谈HashSet的存储原理list和map的应用场景常用集合的的底层实现?Map怎么实现有序Set和Map的底层hashmap和hashtable的区别?Collections vs CollectionList vs Set集合的工具类有哪些?如何实现集合排序?不使用工具类的话怎么排序?ArrayList vs LinkedListSet vs MapConcurrentHashMap vs HashMap vs LinkedHashMapIO流与异常运行时的异常和一般异常有什么异同?try-catch中return和finally哪个优先执行请说出常见的运行异常有用过NIO吗?NIO的优点在哪里?NIO是什么他跟IO有什么区别?多线程,网络编程线程池有没有用过,怎么用的,在哪里用的?SimpleDataFormat是线程安全的吗?启动一个线程用的是start()还是run()?sleep()和wait()有什么区别?谈谈创建多线程的方式谈谈你对线程安全的理解?如何解决线程的安全问题?Synchronized加在普通方法和静态方法的区别同步代码块和同步方法的区别谈谈线程的生命周期谈谈对线程池的理解?jdk提供了哪几种线程池?他们有什么区别?对多线程的了解?在什么地方使用到过多线程?是否有用过线程池?用的什么线程池?UDP和TCP的区别网络的分层什么是tcp协议Http和Https的区别Http的报文里有什么反射与解析解析XML有几种方式反射你是怎么理解的?编程题请写出下面代码的运行结果给定一个不重复的自然数数组{3,5,9,7,4,13,15,0,2,20},已知其最大值20,请将其按从小到大的方式顺序输出,要求算法复杂度为1对于1-100范围内的整数I(包括100),找出满足I,I+4,I+10(I+10也在100范围)都是素质的整数I,计算这样I的个数cnt和这些整数的和sum用java代码找出A数组中不存在于B数组的项,例如:A[1,2,3],B[4,2]单例具体实现请在如下函数体中补充完成代码,实现根据输入字符串返回该字符串的倒序形式。如输入“ABC”返回“CBA”。下面的程序代码输出的结果是多少?写一个函数,2 个参数,1 个字符串,1 个字节数,返回截取的字符串,要求字符串中的中文不能出现乱码:如(“我ABC”,4)应该截为“我AB”,输入(“我ABC 汉DEF”,6)应该输出为“我ABC”而不是“我ABC+汉的半个”。给定的一个文件“a.txt”,找出所有符合“Japanes”字符串的个数,并修改为“Japanese”智力题

基础语法与算法

a++ 与 ++a的区别?

a++: 后置自增,先计算表达式的值,变量值后+1 
++a: 前置自增,变量值先+1,再计算表达式的值

&和&&的区别

&有两个用法:

  • 第一个是作为逻辑运算符使用,被当成逻辑运算符时有一个非短路的特性,即当第一个操作数为false,那么第二个操作数仍然执行。
  • 第二个是作为位运算符使用。

&&只有一个用法:

  • 只能作为逻辑运算符使用,和&的区别在于&&有一个短路的特点,即当第一个操作数为false时(因为这个时候已经可以确定表达式的最终结果已经是false),那么第二个操作数不会执行。

 

大家觉得本次面试题总结的写得不错的朋友,大家可以转发+关注,然后扫描下方二维码获取更多面试题以及答案— 扫描添加暗号:【CSDN】

***说说jvm

jvm: java虚拟机, 
用法1:可以将字节码解释成不同平台都能识别的指令 
用法2:在jvm中的垃圾回收机制,可以自动回收系统中的无用内存

***GC是什么? 为什么要有GC?

GC为垃圾回收器,系统中开辟了大量空间,当这些空间无用时,可通过GC进行释放;提高系统执行性能

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

数组没有length()方法,只有length属性; 
String有length()方法;

面向对象

什么是多态?

概念:多态是面向对象的基本特征之一。在java中一个对象的类型可以分为两种,即编译时类型与运行时类型。当一个对象的编译时类型和运行时类型不相同的时候,就发生了所谓的多态。

理解:换句话说,在Java中用一个父类(父接口)的变量指向之类的对象时,就发生了多态。比如 A a = new B(), 其中A是B的父类或者父接口。为什么会有这样的特性?为什么不是子类的变量指向父类的对象?我们可以换一个生活中的例子来理解。比如现在想要一个动物,先声明一个动物的变量: 
Animal a; 
但是在实际生活中,根本没有一个具体的物种叫动物,所以其实我们需要创建的一个具体的动物的对象,比如狗(动物是狗的父类): 
new Dog(); 
最后将一条狗给与正需要一个动物的‘你’是一个非常合理的行为: 
Animal a = new Dog(); 
反过来却不成立,同样也不合理,你没办法把随便一个动物给一个正需要狗的人。

作用:多态在面向对象编程中有着非常重要的作用。很多架构搭建,设计模式都使用到了多态的特性。多态的最大作用在于,使用一个父类的变量调用方法时,本质上调用的是子类的重写方法。换而言之,让一个Animal a执行 '叫喊'的行为,本质上我们听到的应该是“旺、旺、旺”,因为这个动物其实是Dog。这个特点让多态广泛的运用在架构与程序设计之中,极大的增强了程序的拓展性与维护性。

Integer封装类可以被继承吗?

不能,因为它是final修饰的类。 
sun在设计Integer类时添加了final关键字,意为不让其他人随意的拓展和覆盖Integer本来的行为方法。这么设计的作用在于Integer是int类型的包装类,是对基本类型在面向对象的一个补充,很多基础类和第三方的工具类大量引用了这个类型的变量。如果随意覆盖本来的方法会导致这些基础类无法达到预想的结果,从而破坏了底层的实现效果(比如破坏了自动装箱和自动拆箱)。这是sun公司不愿意看到的。如果要对Integer有任何拓展,完全可以通过自定义一个类对Integer进行封装来实现,无需继承。

String可以被继承吗?

不能,同上

int 和 Integer有什么区别?

int为基本类型,Integer为引用类型。 
Integer是int类型的包装类,对于int类型在面向对象中的补充。在很多时候没办法直接使用int基本类型,这个时候就需要用到Integer了,比如泛型时,是不能填写基本类型的,必须使用包装类。另外在很多实体类的设计时&#

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当然!下面是一些常见的JavaEE面试题整理: 1. 什么是JavaEE?它是什么样的技术栈? JavaEEJava Enterprise Edition)是一套用于开发企业级应用程序的Java平台。它包括了一系列的规范和API,用于构建分布式、可伸缩、可安全性的应用程序。JavaEE的技术栈包括Servlet、JSP、EJB、JPA、JMS等。 2. Servlet是什么?它与JSP有什么区别? Servlet是JavaEE中处理Web请求的基本组件,它可以接收HTTP请求并生成HTTP响应。与之相比,JSP(JavaServer Pages)是一种基于HTML的模板语言,用于生成动态内容。Servlet通常用于处理业务逻辑,而JSP则用于显示数据。 3. 什么是EJB?它的作用是什么? EJB(Enterprise JavaBeans)是JavaEE中的一种组件模型,用于开发分布式事务处理应用程序。它提供了容器管理、事务管理、安全性等服务,简化了开发者的工作。EJB主要分为会话Bean、实体Bean和消息驱动Bean。 4. JPA与Hibernate有什么关系? JPA(Java Persistence API)是JavaEE中用于对象关系映射(ORM)的规范,它定义了一套标准的API用于操作数据库。而Hibernate是一个实现了JPA规范的ORM框架,它提供了丰富的功能和灵活性。 5. 什么是连接池?为什么要使用连接池? 连接池是一种用于管理数据库连接的技术,它通过预先创建一定数量的数据库连接并将其保存在连接池中,供应用程序使用。使用连接池可以避免频繁地创建和销毁数据库连接,提高数据库访问的性能和效率。 这只是一些常见的JavaEE面试题,希望对你有帮助!如果还有其他问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值