Java基础常见的面试题
JavaSE常见的面试题
- 接口和抽象类的异同点
- 相同点
- 不同点
- 重载(overload)和重写(overwrite)区别
- 重写的规则
- 重载的规则(两同一不同)
- StringBufferStringBuilderString区别
- 什么是值传递和引用传递?
- 解释一下数据库连接池
- 空字符串(“”)和null的区别
接口和抽象类的异同点
相同点
都不能创建对象
都可以定义抽象方法,并且一定要在子类中重写
不同点
关键字不同 抽象类是abstract 接口是 interface
抽象方法中既可以有抽象的方法也可以有普通的方法
接口中中所有的方法都是抽象方法
抽象类的方法可以任意权限,接口中方法只能是public
抽象类只能单继承,接口可以多实现
重载(overload)和重写(overwrite)区别
重写的规则
子类和父类,子类重写了父类的方法
- 方法名、参数列表必须和父类完全一致
- 返回值类型要么相同,要么子类方法的返回值类型是父类方法返回值类型的子类!
- 访问修饰符要么相同,要么子类访问修饰符范围大于父类
- 方法中抛出的异常,要么相同。要么子类方法抛出的异常比父类被重写方法抛出的异常更小或相同!
-
重载的规则(两同一不同)
1)同一个类中
2)方法名相同
3)参数列表不同(个数,列表,类型)
4)和返回值无关
StringBufferStringBuilderString区别
String字符串常量不可变使用字符串拼接时会开辟新空间
StringBuffer字符串变量可变线程安全字符串拼接直接在字符串后追加
StringBuilder字符串变量可变非线程安全字符串拼接直接在字符串后追加
1.StringBuilder执行效率高StringBuffer,高于String.
2.String是一个常量,是不可变的,所以对于每一次+=赋值都会创建一个新的对象, StringBuffer和StringBuilder都是可变的,当进行字符串拼接时采用append方 法,在原来的基础上进行追加,所以性能比String要高,
StringBuffer是线程安全的而StringBuilder是线程非安全的,所以StringBuilder的效率高于StringBuffer.
3.对于大数据量的字符串的拼接,采用StringBuffer,StringBuilder.
什么是值传递和引用传递?
(1)值传递:形参类型是基本数据类型,方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形参值得改变不影响实际参数的值
(2)引用传递:形参类型是引用数据类型参数,也称为传地址,方法调用时,实际参数是对象(或数组),这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留下来,所以方法执行中形式参数的改变将会影响实际参数。
解释一下数据库连接池
概念:一种关键的有限的昂贵的资源
影响因素:最大连接数,最小连接数
功能:分配、管理和释放数据库连接
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个,释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
原理
连接池基本的思想是在系统初始化的时候,将数据库连接作为对象储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况。
空字符串(“”)和null的区别
空字符串是"",会创建一个对象,内容是"",有内存空间。
而null,不会创建对象,没有内存空间
空字符串是String类的一个对象,而null是指一个引用变量没有引用对象,在值为null的引用变量上调用方法或变量,将会导致NullPointerException。通过以下代码来验证变量x是否为null,x==null,通过”".equals(x)来验证x是否为空字符串。
Java基础常见的面试题相关推荐
- Java 基础常见知识点面试题总结(上)
基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...
- Java 基础常见知识点面试题总结(上),2022 最新版
基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...
- Java 基础常见知识点面试题总结(上),2022 最新版!
基础概念与常识 Java 语言有哪些特点? 简单易学: 面向对象(封装,继承,多态): 平台无关性( Java 虚拟机实现平台无关性): 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操 ...
- 面试必备:《Java 最常见 200+ 面试题全面解析》
春招在即,想让面试官在短短的几十分钟内就认可你的能力? 想在最快的时间内收获 Java 技术栈最核心的知识点? 想要更全面.更深入的了解 Java 技术? 这里能够给你想要的所有答案? 给准备面试的大 ...
- 2020年 Java 最常见200+ 面试题全解析:面试必备
Java 最常见200+ 面试题全解析:面试必备 如想了解更多更全面的Java必备内容可以阅读:所有JAVA必备知识点面试题文章目录: JAVA必备知识点面试题 序 言 在本篇文章开始之前,我想先来回 ...
- niit java证书_NIIT认证Java基础全真模拟试题
NIIT认证Java基础全真模拟试题 一.判断题(每题2分,共16分) 1. Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定. ( ) 2.Java的源代码中定义几个类, ...
- Java 最常见 200+ 面试题全解析(基础必备)
序言 在本篇文章开始之前,我想先来回答一个问题:我为什么要写这样一篇关于面试的文章?原因有三个:第一,我想为每一个为梦想时刻准备着的"有心人",尽一份自己的力量,提供一份高度精华的 ...
- Java基础常见知识面试题总结(上)
最近也要开始找实习了,这一年22届的都没太多找到工作,我一个23非科班的再去尝试一波,三月底的时候海投了很多,但大都不招,因为学校暑假可能放假放得早,有更多时间来实习.再就是因为一些个人原因,想在济南 ...
- JAVA基础常见的知识点
1, 这是技术是什么? --java是什么?一门编程语言. 2, 这个技术有什么用? --java有什么用? 能够编写程序,最后形成软件.软件能卖钱.钱能给我们和家人带来一个幸福的人生. 3, 这个技 ...
最新文章
- 中国人口将迎来负增长,这是旷视们的机会
- Quartz.NET基础知识概述
- 网络通信基础:ICMP基础通识
- Java-Runoob-高级教程-实例-字符串:13. Java 实例 - 字符串格式化
- RotateAnimation 详解
- 数字电路技术可能出现的简答题_数字电子技术复习题(本科)
- 解决Can 't connect to local MySQL server throug
- TimerTask定时任务
- Nginx支持比Apache高并发的原因
- C++中全局变量的使用
- 剑指offer面试题27. 二叉树的镜像(递归)
- 今天给同学写5个数据结构算法的题...感觉很有价值的几个题..感兴趣的坐下。。...
- Rhythmk 学习 Hibernate 03 - Hibernate 之 延时加载 以及 ID 生成策略
- pythom打包文件太大_PDF太大,不让上传怎么办?教你1分钟将100M的PDF变成10M
- 揭开虚拟主机供应商的面纱
- Electron播放 RTMP流 实现
- 眼睛中的密码-虹膜识别
- 基于西门子S7-1200PLC的步进电机控制
- VUE中自定义步骤条
- TensorFlow搭建CNN实现时间序列预测(风速预测)
热门文章
- leetcode 92 python
- 面向对象之信息传递为何是调用方法
- Java多态性练习——几何图形
- 递归——黑白棋子的移动(洛谷 P1259)
- Java-字符与字符串的转化
- c语言字符串提取第二个字符,c语言如何复制字符串(取前n个字符)strncpy()函数的应用实例...
- MySQL 8.0.22 源码编译安装全过程
- 连载一:Oracle迁移文档大全
- 阿里云吕漫漪:深度解析国内首个云原生数据库POLARDB的“王者荣耀”
- 存储成本降低80%,“大智慧”的选择