1.”==“和equals方法的区别?

1.   ==操作符,对于基本数据类型变量,比较的是两个值是否相等,而对于引用类型,比较的是引用的内存的首地址,即引用同一个对象。1

  • Obeject的equals方法,根据具体业务由开发者对其进行重写,没有重写,默认使用==。(Object类有两种方法来推断对象的标识:equals()和hashCode()。如果根据equals()方法判断两个对象是相等的,那么对这两个对象中的每一个调用hashCode()方法都必然生成相同的整数结果。但是反过来,如果两个hashCode()返回的结果相等,两个对象的equals()方法却不一定相等。在默认情况下equals()方法用来比较两个对象的地址值,而原始的hashCode()方法用来返回其所在对象的物理地址)
  • String重写了equals方法,有三种情况
    • 比较对象与当前对象是同一个对象(Object中的equals方法),返回true;
    • 传入的对象是String类型,比较两个字符串长度,不同返回false,若长度相同,则对每一位字符进行比较,每一位都相同返回true;
    • 传入的对象不是String类型,直接返回false。

2. ==和equal注意

  • 包装类的“==”运算在不遇到算术运算的情况下不会自动拆箱
  • 包装类的equals()方法不处理数据转型

2.String,StringBuilder,StringBuffer区别

    • String是内容不可变的字符串,底层使用 final char[]数组StringBuffer和StringBuilder底层使用的数组没有final关键字。
    • 对String的修改其实是new了一个StringBuilder并调用append方法,然后调用toString返回一个新的String。
    • StringBuffer是在StringBuilder基础上加锁,加锁是一个重量级的操作,需要调用操作系统内核来实现,比较耗时。因此效率明显有:String<StringBuffer<StringBuilde但是这个并不是绝对的,因为JVM会对String进行优化,譬如String str = "i"+"love"+"java";其中的字符串在编译时就能确认,编译器会直接将其拼接成一个字符串放在常量池:"i love java";但是若是String a = "i";    String b = "love";   
      String c = "java";String str = a+b+c;   只有运行时才能确认str最终是什么,编译器并不会进行优化,是通过StringBuilder实现的

3.ArrayList和LinkedList的区别和使用场景

  • ArrayList和LinkedList都实现了java.util.List(支持泛型,可存放各种类型的对象),Cloneable(支持克隆), java.io.Serializable(支持序列化)。
  • 都不是线程安全的,若要在多线程中调用他们,可使用Collection.synchronizedList方法
  • ArrayList底层使用数组,LinkdLlist底层使用链表,数组具有随机访问特点,能查询特定的元素,但是插入删除和修改比较慢

4.变量初始化问题

  • 类变量在不设置初始值时,会进行默认值赋值,而局部方法中声明的局部变量和final声明的变量则必须进行手动初始化,不会进行默认值赋值。
  • Java中基本数据类型默认值为:   short: 0   int: 0   long:0   float: 0.0   double: 0.0   char:0   String:null   Java中对象引用默认值为:null

5.java文件中公共类和main方法

  • 一个文件中,可以有多个public class,即,外部类为public,还可以有public的内部类。

    public class Main { public class Inner{
    
        }
    }
  • 一个文件中可以有多个类,可以是多个并列的类,也可以是外部类、内部类结合。
  • 一个类中,可以有多个main方法,这是重载,但是public static void main(String[] args)的方法只能有一个。
  • 类中,可以有main方法,也可以没有main方法,而有一个main()方法的时候,也可以是任意访问权限。因为这个类不一定要执行,可以只是辅助类。

    public class MainTest { void main(){
    }
    }

5.数组的声明

(1)在java 中,声明一个数组时,不能直接限定数组长度,只有在创建实例化对象时,才能对给定数组长度.。

java基础面试题常出现(一)的更多相关文章

  1. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

  2. 一份最贴近真实面试的Java基础面试题

    这是一份Java基础知识的面试题.在网上的关于Java的面试题数不胜数,但认真看过感觉大多数都没有实用性,有很多是面试官根本就不会问到的,那些已经脱离了实际开发的技术问题.而这份资料来源自一份个人觉得 ...

  3. 经典的Java基础面试题集锦

    经典的Java基础面试题集锦,欢迎收藏和分享. 问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用 ...

  4. Java基础机试题

    package day8;import java.util.Scanner;/** * Java基础机试题 * @author:lyrand * */public class convert {   ...

  5. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  6. 大数据学习--day04(选择结构、循环结构、大数据java基础面试题)

    选择结构.循环结构.大数据java基础面试题 switch: 注意: byte short int char String(jdk1.7支持) 不能是 long float double boolea ...

  7. 最新28道java基础面试题-上

    28道java基础面试题 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪 ...

  8. 28道java基础面试题-下

    28道java基础面试题下 15.Java语言如何进行异常处理,关键字:throws.throw.try.catch.finally分别如何使用? 答:Java通过面向对象的方法进行异常处理,把各种不 ...

  9. Java基础面试题集(一)

    Java基础面试题 一.面向对象编程(OOP) 7 二.常见的Java问题 7 2.1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? 7 2.2.JDK和JRE的区别是什么? ...

随机推荐

  1. HTML的input类型为hidden导致无法reset改字段的value问题

    问题关键:根据HTML规范,hidden是非ui类元素,不接受用户处理.所以form的 reset并不影响它. http://stackoverflow.com/questions/6367793/w ...

  2. Java WebDriver 使用经验

    0x00 背景 WebDriver作为Selenium项目的工具之一,可以高效的操作各类主流浏览器包括诸如:chrome.IE.Firefox.Safari,并同时支持windows和*nux系统.W ...

  3. 2016_NENU_CS_3

    贴一下比赛的代码,  其中 I 题代码源于final大神 ok_again http://acm.hust.edu.cn/vjudge/contest/127444#overview I /***** ...

  4. js數字

    js數字只有一種類型:不是類型語言. js的數字可以使用科學計數法或者不使用科學計數法: js都是64位的, 如果是整數,(不使用科學計數法或者是小數點)最大15位的: 如果是浮點數,最大17位的,浮 ...

  5. AC自动机-HDU2896-模板题

    http://acm.hdu.edu.cn/showproblem.php?pid=2896 另一道AC自动机的模板题,不过这题需要记录一下具体的匹配情况. /*------------------- ...

  6. spoj COT - Count on a tree (树上第K小 LCA+主席树)

    链接: https://www.spoj.com/problems/COT/en/ 思路: 首先看到求两点之前的第k小很容易想到用主席树去写,但是主席树处理的是线性结构,而这道题要求的是树形结构,我们 ...

  7. 【刷题】BZOJ 2407 探险

    Description 探险家小T好高兴!X国要举办一次溶洞探险比赛,获奖者将得到丰厚奖品哦!小T虽然对奖品不感兴趣,但是这个大振名声的机会当然不能错过! 比赛即将开始,工作人员说明了这次比赛的规则: ...

  8. 【BZOJ3551】【BZOJ3545】 【ONTAK2010】 Peaks (kruskal重构树+主席树)

    Description ​ 在\(Bytemountains\)有\(~n~\)座山峰,每座山峰有他的高度\(~h_i~\). 有些山峰之间有双向道路相连,共\(~m~\)条路径,每条路径有一个困难值 ...

  9. 点分治模板(洛谷P4178 Tree)(树分治,树的重心,容斥原理)

    推荐YCB的总结 推荐你谷ysn等巨佬的详细题解 大致流程-- dfs求出当前树的重心 对当前树内经过重心的路径统计答案(一条路径由两条由重心到其它点的子路径合并而成) 容斥减去不合法情况(两条子路径 ...

  10. Windows 10中设置自动登录

    步骤 使用WinKey+R打开运行,输入netplwiz. 在打开的用户账户对话框-用户选项卡-取消勾选要使用本计算机,用户必须输入用户名和密码(E). 点击应用按钮,在弹出的自动登录对话框中输入相关 ...