1. 数组(Array)和列表(ArrayList)的区别?什么时候应该使用Array而不是ArrayList?

    • Array和ArrayList的不同点: Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
    • Array大小是固定的,ArrayList的大小是动态变化的。
    • ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
    • 对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢。
  2. 解释什么是值传递和引用传递?
    值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量. 引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。 所以对引用对象进行操作会同时改变原对象. 一般认为,java内的传递都是值传递.

  3. 什么是自动拆装箱?
    自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。
    如: Integer a = 3; 编译器将 int 类型的 3 自动转换成 Integer 类型

  4. 解释为什么会出现4.0-3.6=0.40000001这种现象?
    2进制的小数无法精确的表达10进制小数,计算机在计算10进制小数的过程中要先转换为2进制进行计算,这个过程中出现了误差。

  5. 说明符号“”比较的是什么?
    “”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“”操作将返回true,否则返回false。“”如果两边是基本类型,就是比较数值是否相等。

  6. 解释Object若不重写hashCode()的话,hashCode()如何计算出来的?
    Object 的 hashcode 方法是本地方法,也就是用 c 语言或 c++ 实现的,该方法直接返回对象的 内存地址

  7. 解释为什么重写equals还要重写hashcode?
    HashMap中,如果要比较key是否相等,要同时使用这两个函数!因为自定义的类的hashcode()方法继承于Object类,其hashcode码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。HashMap中的比较key是这样的,先求出key的hashcode(),比较其值是否相等,若相等再比较equals(),若相等则认为他们是相等的。若equals()不相等则认为他们不相等。如果只重写hashcode()不重写equals()方法,当比较equals()时只是看他们是否为同一对象(即进行内存地址的比较),所以必定要两个方法一起重写。HashMap用来判断key是否相等的方法,其实是调用了HashSet判断加入元素 是否相等。重载hashCode()是为了对同一个key,能得到相同的Hash Code,这样HashMap就可以定位到我们指定的key上。重载equals()是为了向HashMap表明当前对象和key上所保存的对象是相等的,这样我们才真正地获得了这个key所对应的这个键值对。

  8. Syncronized锁,如果用这个关键字修饰一个静态方法,锁住了什么?如果修饰成员方法,锁住了什么?
    synchronized修饰静态方法以及同步代码块的synchronized (类.class)用法锁的是类,线程想要执行对应同步代码,需要获得类锁。 synchronized修饰成员方法,线程获取的是当前调用该方法的对象实例的对象锁。

  9. Query接口的list方法和iterate方法有什么区别?
    ①list()方法无法利用一级缓存和二级缓存(对缓存只写不读),它只能在开启查询缓存的前提下使用查询缓存;iterate()方法可以充分利用缓存,如果目标数据只读或者读取频繁,使用iterate()方法可以减少性能开销。
    ② list()方法不会引起N+1查询问题,而iterate()方法可能引起N+1查询问题

  10. 解释hashCode()和equals()方法有什么联系?
    Java对象的eqauls方法和hashCode方法是这样规定的:
    ➀相等(相同)的对象必须具有相等的哈希码(或者散列码)。
    ➁如果两个对象的hashCode相同,它们并不一定相同。

  11. 说明JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
    在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和finally。
    。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。用try来指定一块预防所有”异常”的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的”异常”的类型。throw语句用来明确地抛出一个”异常”。throws用来标明一个成员函数可能抛出的各种”异常”。Finally为确保一段代码不管发生什么”异常”都被执行一段代码。可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一个try语句,”异常“的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种”异常”进行处理,堆栈就会展开,直到遇到有处理这种”异常”的try语句。

  12. 谈谈StringBuffer和StringBuilder有什么区别,底层实现上呢?
    StringBuffer线程安全,StringBuilder线程不安全,底层实现上的话,StringBuffer其实就是比StringBuilder多了Synchronized修饰符。

  13. 说明Collection 和 Collections的区别
    Collection是集合类的上级接口,继承与他的接口主要有Set 和List.
    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

Java SE 知识点相关推荐

  1. JAVA基础--JAVA SE(知识点总结 Ⅴ )

    前面内容请见: JAVA基础–JAVA SE(知识点总结 Ⅰ ) JAVA基础–JAVA SE(知识点总结 Ⅱ ) JAVA基础–JAVA SE(知识点总结 Ⅲ ) JAVA基础–JAVA SE(知识 ...

  2. ⑦Java SE知识点回顾与小结(面向对象)

    Java SE 面向对象 一.面向对象的优点: ​ 1)面向对象的思维方式更贴近于现实生活的思维方式 ​ 2)面向对象思维方式更体现于管理者,面向过程体现于执行者 ​ 3)可以将复杂的问题简单化 二. ...

  3. JAVA SE知识点总结

    总结 1.1                知识点总结 l  数据类型转换 n  数据类型范围从小到大排序(byte < char < short < int < long & ...

  4. 零基础学JAVA]Java SE基础部分-01. Java发展及JDK配置

    1.课程名称:Java发展及JDK配置 本季介绍了JAVA的发展过程,包括JDK的发展历程,path路径的配置和classpath的配置及作用.并简单讲解了一个简单的JAVA程序,并通过此程序讲解了J ...

  5. Java四大知识点讲解,初学者必看

    自学Java的初学者先弄清这些Java的基本概念也是必不可少的,死记硬背肯定是不行的,重在理解,理解它们之间的区别与联系,分别有哪些应用.想想这些代码中用到了哪些知识点.不要一味地照着书本敲代码.而不 ...

  6. java综合知识点总结基础篇

    一.JDK常用的包 java.lang: 这个是系统的基础类,比如String.Math.Integer.System和Thread,提供常用功能. java.io: 这里面是所有输入输出有关的类,比 ...

  7. 【JAVA SE】 JAVA基础强袭之路 数据类型及其转换和提升全面讲解(猛男细节+保底一个收藏)

    本章目录 温馨提示 开篇介绍( 说的多一点 耐心看完哦!) 本章重点 正文开始 1. 变量和类型 1.1 常量 1.2 变量 1.2.1 变量的作用域 1.2.2 变量的命名规则(阿里巴巴开发手册) ...

  8. Java SE 8: 从入门到上瘾

    目录 1.前言 2.怎么学? 3.IDE 4.官方资料 文字教程 API文档 1.前言 最近决定转行做开发,于是开始学java.(之前一直狂学数学,想在量化投资界吃点肉,后来觉得还是老实一点比较好) ...

  9. Java小结|Java入门知识点

    Java入门知识点 Java入门知识点 Java的起源与演变 Java的起源 Java的演变 Java 体系与特点 Java体系 Java能做什么 Java的特性 Java 跨平台原理 Java 技术 ...

最新文章

  1. html li padding,求大神来看为li元素设置相同的padding为何padding-bottom和padding-right为多出一部分_html/css_WEB-ITnose...
  2. 比较高明的暗部提亮方法:选取暗部,滤色叠加
  3. 【组合数学】指数生成函数 ( 指数生成函数求解多重集排列示例 )
  4. redhat6.5 yum register 问题
  5. sql server中将一个字段根据某个字符拆分成多个字段显示
  6. 抖音提示需要转换为mp4_如何将MP4文件转换为MP3格式?万兴优转帮你轻松完成转换...
  7. hadoop mysql 存储过程_hadoop 存储过程
  8. android WIFI信息获取
  9. sqlite数据库备份还原、导出导入
  10. python类型检查_python【数据类型检查】
  11. s7200cpu224xp手册_S7-200 PLC DC224XP DC DC DC的接线图说明
  12. 程序员转行适合做什么?
  13. 数据分析 学习小结记录
  14. 哪些人适合转行学习IT技术呢
  15. 初学 Python 需要安装哪些软件?
  16. Android 垂直与水平滚动条:Scrollview与HorizontalScrollView
  17. 国内从事计算机视觉(CV)领域的公司
  18. Unity3D动作类游戏中两种相机抖动
  19. 电机调速制动matlab,鼠笼式三相异步电机:起动、调速、制动(原理与Simulink仿真)...
  20. Docker: windows下跑windows镜像

热门文章

  1. LOJ#2542. 「PKUWC2018」随机游走
  2. P2167 [SDOI2009]Bill的挑战
  3. 牛客题霸 [滑动窗口的最大值] C++题解/答案
  4. 牛客题霸 [ 未排序数组中累加和为给定值的最长子数组长度] C++题解/答案
  5. 【学习笔记】Miller-Rabin(米勒-拉宾)素性测试,附常用表
  6. CodeForces:643(VK cup)
  7. Ybtoj-排列计数【矩阵乘法,分块幂】
  8. P4852-yyf hates choukapai【单调队列优化dp】
  9. P5675-[GZOI2017]取石子游戏【博弈论,dp】
  10. jzoj6343-[NOIP2019模拟2019.9.7]Medium Counting【记忆化dfs,dp】