面试:Java基础 2

举报
一条coding 发表于 2021/10/19 23:26:24 2021/10/19
【摘要】 请你讲讲&和&&的区别? &按位与;&&逻辑与。 &&运算符是短路与运算。如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。应注意&&前后表达式的顺序不能交换。 例如在验证用户登录时判定用户名不是null而...

请你讲讲&和&&的区别?

&按位与;&&逻辑与。

&&运算符是短路与运算。如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。应注意&&前后表达式的顺序不能交换。

例如在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。

 基本数据类型和封装数据类型有哪些,有什么区别?

为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,

Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。。包装类必须实例化之后才能使用,当new一个包装类时,实际上是产生一个指针指向该对象,存储的是地址,数据存储在对内存,基本数据类型直接存值。
Java 为每个原始类型提供了包装类型:
- 原始类型: boolean(),char,byte,short,int,long,float,double
- 包装类型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

基本类型 默认值
byte 1个字节 0
short 2个字节 0
int 4个字节 0
long 8个字节 0L
float 4个字节 0.0f
double 8个字节 0.0d
char 2个字节 ‘\u0000’
boolean 这个试编译环境而定  false

装箱和拆箱

请你说明String 、StringBuffer、StringBuilder的区别

在 Java 中字符串属于,Java 提供了 String 类来创建操作字符串

需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。

 StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象

StringBuffer :线程安全,效率低。

StringBuilder:线程不安全,效率高,使用较多。

初始化上的区别,String可以空赋值,后者不行,报错 

StringBuffer s = null; //结果警告: 

文章来源: blog.csdn.net,作者:一条coding,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/skylibiao/article/details/95902831

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。