当前位置: 首页 > news >正文

Java 基础知识

1、&和&&的区别?

答:&和&&都可以用作逻辑与的运算符,表示逻辑与(and);

&&还有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式;

&是位运算符,表示按位与运算。

 

2、用最有效率的方法算出2乘以8等於几?

答:2 << 3

 

3、==和equals方法的区别?

String a=new String("abc");
String b=new String("abc");

这两行代码创建了两个对象,这是两个不同的对象,它们的首地址是不同的。

所以,表达式a==b返回false,而这两个对象中的内容是相同的,a.equals(b)将返回true。

 

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

答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型

 

5、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

答:会执行,在return前执行

 

6、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

答:是值传递。Java 编程语言只有值传递参数。

当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.

 

7、ArrayList和Vector的区别,HashMap和Hashtable的区别?

答:就ArrayList与Vector主要从二方面来说.

  一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的

  二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半

就HashMap与HashTable主要从三方面来说。

  一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现

  二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的

  三.值:只有HashMap可以让你将空值作为一个表的条目的key或value

 

8、GC是什么? 为什么要有GC?

答:GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。

 

9、String与StringBuffer的区别?

答:String的长度是不可变的,StringBuffer的长度是可变的。

如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法

 

10、运行时异常与一般异常有何异同?

答:异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。

  java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

 

11、说出ArrayList,Vector, LinkedList的存储性能和特性

答:ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。

Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差。

LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

 

12、HashMap和Hashtable的区别?

答:HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

  HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

  HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。

  最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。

 

13、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?

答:字节流,字符流。字节流继承于InputStream OutputStream,字符流继承于InputStreamReader OutputStreamWriter。在java.io包中还有许多其他的流,主要是为了提高性能和使用方便。

 

14、List、Map、Set三个接口,存取元素时,各有什么特点?

答:List 以特定次序来持有元素,可有重复元素。

  Set 无法拥有重复元素,内部排序。

  Map 保存key-value值,value可多值。

转载于:https://www.cnblogs.com/liuzhenping/p/7781507.html

相关文章:

  • javaWeb中怎么获取提交表单里面的值
  • 阿里、腾讯、百度、华为、京东、搜狗和滴滴最新面试题汇集【转】
  • 《C程序设计语言》笔记 (二)类型运算符与表达式
  • 怎么在页面中引入外部模板
  • django--权限管理day1
  • Alpha 冲刺 (7/10)
  • 找零问题
  • 自动化java+webdriver常用的一些脚本
  • 一些 Ubuntu 使用的小技巧
  • java 单点登录机制
  • 最长上升子序列nlogn算法
  • JAVA配置环境
  • C# 后台模拟请求一般处理程序
  • Windows平台,Oracle Database和Client并存方式
  • tomcat乱码问题1 (
  • 30秒的PHP代码片段(1)数组 - Array
  • java概述
  • jQuery(一)
  • Making An Indicator With Pure CSS
  • MobX
  • socket.io+express实现聊天室的思考(三)
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • XForms - 更强大的Form
  • Zsh 开发指南(第十四篇 文件读写)
  • 从PHP迁移至Golang - 基础篇
  • 给github项目添加CI badge
  • 前端面试题总结
  • 前端相关框架总和
  • 入门到放弃node系列之Hello Word篇
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​比特币大跌的 2 个原因
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ​业务双活的数据切换思路设计(下)
  • #if和#ifdef区别
  • #stm32整理(一)flash读写
  • $.ajax()参数及用法
  • $.ajax()方法详解
  • (52)只出现一次的数字III
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (二)linux使用docker容器运行mysql
  • (十一)手动添加用户和文件的特殊权限
  • (四)linux文件内容查看
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转) 深度模型优化性能 调参
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .Net 高效开发之不可错过的实用工具
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证