一、&和&&的差别?



&和&&都能够用作逻辑与的运算符。表示逻辑与(and),当运算符两边的表达式的结果都为true时。整个运算结果才为true,否则,仅仅要有一方为false,则结果为false。

&&还具有短路的功能,即假设第一个表达式为false,则不再计算第二个表达式,比如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会运行,所以不会出现NullPointerException假设将&&改为&,则会抛出NullPointerException异常。

If(x==33& ++y>0) y会增长,If(x==33
&& ++y>0)不会增长

&不具有短路性质,对于if(str != null && !str.equals(“”))表达式,当str为null时。后面的表达式依旧会运行,所以会出现NullPointerException,除此之外,&还能够用作位运算符。

二、switch语句是否能作用在byte上,是否能作用在long上,是否能作用在String上?

在switch(expr1)中。expr1能够是 byte, char, short,int 以及它们的包装类 Byte ,Character,  Short, Integer,还有enum(枚举)、String(JavaSE 7添加的)

參考官网http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

三、使用finalkeyword修饰一个变量时。是引用不能变,还是引用的对象不能变?

使用finalkeyword修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是能够改变的。比如,对于例如以下语句:

final StringBuffer a=new StringBuffer("immutable");

运行例如以下语句将报告编译期错误:

a=new StringBuffer("");

可是,运行例如以下语句则能够通过编译:

a.append(" broken!");

有人在定义方法的參数时,可能想採用例如以下形式来阻止方法内部改动传进来的參数对象:

public void method(final  StringBuffer param)

{

}

实际上,这是办不到的,在该方法内部仍然能够添加例如以下代码来改动參数对象:

param.append("a");

四、当运行String str=new String("abc")。时,究竟创建了多少个String对象?

假设再网上搜答案,差点儿都是这样回答的:

假设String pool没有abc这个字符串 的话就在字符串池创建abc的对象,再是在堆里创建一个abc的对象,把堆里的abc对象地址返回给str 这个情况是创建2个对象,否则就仅仅有在堆里创建一个abc的对象

但是。我今天看到一个解说视频。他说不论什么情况都仅仅创建一个String对象。不论什么情况都不会在字符串池创建abc的对象。论据:

		String s1="hjk";
String s2=s1.intern(); //intern()的作用是假设在常量池中存在s1的字符串值“hjk”,则
//返回该字符串对象。否则在常量池加入“hjk”,并把该字符串对象返回。
System.out.println(s2==s1); //true
String s3=new String("abc");
String s4=s3.intern();
System.out.println(s3==s4); //false String s5=s3.intern();
System.out.println(s5==s4); //true

另可參考:Java面试题视频解说http://study.163.com/course/courseMain.htm?courseId=519065#/courseMain

一些Java面试题深入分析的更多相关文章

  1. 【面试必备】常见Java面试题大综合

    一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...

  2. 《OD面试》Java面试题整理

    一.面试考察点 1 主语言本身 2 数据库 3 算法 4 Spring/SpringMVC/MyBatis 5 项目经验 1)项目涉及到的技术点深挖: (1)考察候选人技术深度  (2)看候选人遇到问 ...

  3. 2019 Java面试题

    马上又是一个金九银十的招聘旺季,小编在这里给大家整理了一套各大互联网公司面试都喜欢问的一些问题或者一些出场率很高的Java面试题,给在校招或者社招路上的你一臂之力. 首先我们需要明白一个事实,招聘的一 ...

  4. Java面试题必备知识之ThreadLocal

    老套路,先列举下关于ThreadLocal常见的疑问,希望可以通过这篇学习笔记来解决这几个问题: ThreadLocal是用来解决什么问题的? 如何使用ThreadLocal? ThreadLocal ...

  5. java面试题(目录版)

    在https://www.cnblogs.com/marsitman/p/9539369.html  根据自己以往的面试经验,在该基础上做了补充和删减,均链接到相应的地址(链接失效请留言评论). 一. ...

  6. 2018年最新Java面试题及答案整理(持续完善中…)

    2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...

  7. java面试题及答案(转载)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  8. 115个Java面试题和答案——终极列表(下)

    第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...

  9. Java面试题(全)

    JAVA部分 什么是反射机制?反射机制应用(Struts中反射机制的应用) 答:运行状态中,对于任意一个类,都可以知道它的所有属性和方法,对于任意一个对象都可以调用它的任意一个方法,这种动态获取信息以 ...

随机推荐

  1. ZOJ 3256 Tour in the Castle 插头DP 矩阵乘法

    题解 这题是一道非常好的插头题,与一般的按格转移的题目不同,由于m很大,要矩阵乘法,这题需要你做一个按列转移的插头DP. 按列转移多少与按格转移不同,但大体上还是基于连通性进行转移.每一列只有右插头是 ...

  2. Codeforces Round #303 (Div. 2) A. Toy Cars 水题

     A. Toy Cars Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/545/problem ...

  3. 对于GTPv2协议头部的解析

    参考3GPP TS 29.060 GTP的头部是可变的,GTP-C(control)和GTP-U(user)共同使用一个头部. GTP Header头部: -Version 用来标识GTP协议的版本, ...

  4. 使用 dsc_extractor 导出 dyld_shared_cache_arm64

    iOS系统的全部Framework二进制被打包成一个cache文件,位于 /System/Library/Caches/com.apple.dyld 目录下,我们要想查看某个系统库的二进制需要将 dy ...

  5. IPtables/NetFilter

    前提知识 任何主机若要与非同网络中的主机通信,则必须将报文发送到默认网关: 对Linux而言,IP地址是属于主机(内核中)的,不属于网卡,只要属于当前主机的IP地址间,都可直接响应,不称为转发 私有地 ...

  6. 使用Win2D在UWP程序中2D绘图(一)

    在新的Windows UWP程序中,引入了一个新的API库: Win2D.它是一个d2d的封装,可以直接使用C#来快速实现高效2D绘图了.这个API虽然在Win8.1时代就开始着手开发了,但最近才完善 ...

  7. HDU 4671 Backup Plan (2013多校7 1006题 构造)

    Backup Plan Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total ...

  8. 【QQ输入法】QQ输入法输入的英文字母顺便空格很大

    正常的输入出来是这个样子的: 现在变成了这个样子: 怎么解决这个问题呢: 快捷键 shift+空格   即可解决

  9. Appium+python自动化15-在Mac上环境搭建

    前言 mac上搭建appium+python的环境还是有点复杂的,需要准备的软件 1.nodejs 2.npm 3.cnpm 4.appium 5.pip 6.Appium-Python-Client ...

  10. OpenShift和F5的集成手册

    OpenShift和F5的集成步骤,记录如下,如实际操作中有变更会再度编辑修改. 1.整体架构 使用BIG-IP作为Openshift的Router,能实现以下功能: 为Services创建BIG-I ...