首页 > 编程语言 >每天5道Java面试题(第四天)

每天5道Java面试题(第四天)

时间:2023-11-06 21:34:02浏览次数:36  
标签:面试题 Java String int StringBuilder 第四天 StringBuffer new Integer

1. Integer和int的区别?

1、Integer是int的包装类,int则是java的一种基本数据类型 

2、Integer变量必须实例化后才能使用,而int变量不需要 

3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值。

4、Integer的默认值是null,int的默认值是0。

2. new Integer(1)和Integer a=1有什么区别?

Integer a=1;

Integer变量指向的是 java 常量池中的对象

new Integer(1);

new Integer() 的变量指向堆中新建的对象,两者在内存中的地址不同。

3. Integer a=128,b =128;System.out.println(a==b)结果是fasle,为什么?

直接使用Integer包装类赋值,范围在[-128,127]之间不会生成新的对象,查看Integer的源码中可以看到调用的是Integer.ValueOf()方法,就相当于直接int赋值,直接把Java常量池中的对象拿来用,超过了范围就会申请在堆中new一个对象。

4. Java 中操作字符串都有哪些类?它们之间有什么区别?

操作字符串的类有:String、StringBuffer、StringBuilder。

String 和 StringBuffer、StringBuilder 的区别在于 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。

StringBuffer 和 StringBuilder 最大的区别在于,StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。

5. String str="i"与 String str=new String("i")一样吗?

不一样,因为内存的分配方式不一样。String str="i"的方式,Java 虚拟机会将其分配到常量池中;而 String str=new String("i") 则会被分到堆内存中。

标签:面试题,Java,String,int,StringBuilder,第四天,StringBuffer,new,Integer
From: https://blog.51cto.com/kongxiaolong/8217682

相关文章

  • Java:SpringBoot实现JDK动态代理和CGLIB动态代理
    (目录)需要代理的对象//接口publicinterfacePayService{voidpay();}//实现publicclassAliPayServiceimplementsPayService{@Overridepublicvoidpay(){System.out.println("AliPayService");}}1.JDK动态代理在JDK动态代......
  • JAVA多线程并发查询百万数据的内存占用问题?
    在Java中使用多线程并发查询百万数据时,内存占用是一个需要考虑的重要问题。以下是一些解决该问题的方案:分批查询:将数据分成较小的批次进行查询,而不是一次性加载全部数据。这样可以减少每个线程需要处理的数据量,降低内存占用。可以将查询结果分组或按需加载,以保持内存占用的合理范......
  • java中 Calendar日历方法使用
    java中Calendar日历方法使用Calendar类抽象类Calendar提供了一组方法,允许把以毫秒为单位的时间转换成一些有用的时间组成部分。Calendar不能直接创建对象,但可以使用静态方法getInstance()获得代表当前日期的日历对象,如:Calendarcal=Calendar.getInstance(); Calen......
  • javaweb-- Mybatis参数传递
     Mybatis提供了ParamNameResolver类进行封装 传入多个参数时,mybatis会将参数封装成Map集合map.put("arg0",参数值1)map.put("param1",参数值1)map.put("arg1",参数值2)map.put("param2",参数值2) ......
  • java怎么去入门,用java怎么开发一个简单的安卓程序?
    Java是一种广泛使用的编程语言,特别适合于安卓应用开发。如果你想入门Java并使用它来开发安卓应用,你可以遵循以下步骤:入门Java学习Java的基础知识:数据类型、变量、运算符控制流(if/else语句、switch语句、循环)方法(函数)面向对象编程(类、对象、继承、多态性)异常处理集合框......
  • java接口实现是什么意思,通俗易懂的方式让你去理解,不信你看不懂
    Java接口(Interface)可以被理解为一个合约或者是一组规则。当一个类签署这样一个合约时,它就同意遵守这些规则,也就是实现这个接口中声明的所有方法。可以用一家餐厅来做一个比喻:假设“接口”是一家餐厅提供的菜单,菜单上列出了一系列的菜品,但是菜单上并没有说明这些菜品如何制作(即接......
  • java类是什么意思,给你做个比喻你就懂了,小白必看
     Java中的类(Class)可以比作是一个蓝图或者是一个模板,它用来创建具体的对象(Object)。类定义了一组属性和方法,对象则是根据这个蓝图创建出来的,拥有类中定义的属性和方法。做一个比喻:想象一下你有一个饼干模具,这个模具决定了饼干的形状、大小以及模具上的图案。在这个比喻中,饼干模......
  • java对象是什么意思,还有方法是什么,给你做个详细的比喻
     在Java编程语言中,“对象”和“方法”是面向对象编程(OOP)的两个基本概念。让我用一个比喻来解释这两个概念,然后给出一个简单的例子。对象(Object)想象一下一个真实世界中的机器,比如一辆汽车。一辆汽车可以看作是一个“对象”。它有一些特性,如品牌、颜色、车轮数量等,这些在编程中我......
  • java访问数据库的步骤,把每一步骤都讲解出来
    Java访问数据库通常是通过JDBC(JavaDatabaseConnectivity)API实现的。JDBC是一个JavaAPI,可以统一地访问各种关系型数据库。使用JDBC访问数据库的步骤如下:1.加载数据库驱动首先,需要加载你要连接的数据库对应的JDBC驱动。这一步通常通过调用Class.forName()方法实现。Class.for......
  • java如何生成一个随机数,并写出生成原理和执行过程
     在Java中,生成随机数通常可以通过以下几种方式:使用 Math.random() 方法使用 Random 类使用 SecureRandom 类(更安全的随机数)1.使用 Math.random() 方法Math.random() 方法返回一个 double 类型的值,范围在0.0(含)至1.0(不含)之间的随机数。这个方法实际上是 java.u......