Java基础二

continue、break 和 return 的区别是什么?

在循环结构中,当循环条件不满足或者循环次数达到要求时,循环会正常结束。但是,有时候可能需要在循环的过程中,当发生了某种条件之后 ,提前终止循环,这就需要用到下面几个关键词:
1.continue : 指跳出当前的这一次循环,继续下一次循环
2. break : 指跳出整个循环体,继续执行循环下面的语句。
return 用于跳出所在方法,结束该方法的运行。return 一般有两种用法
1.return;: 直接使用 return 结束方法执行,用于没有返回值函数的方法
2.return value;: return 一个特定值,用于有返回值函数的方法

String,Stringbuffer,StringBuilder的区别

可变性:
        String是不可变的类,一旦创建就不能被修改。每次对String进行操作时,都会创建一个新的String对象。
StringBuffer和StringBuilder是可变的类,可以动态修改字符串内容。
线程安全性:
        String是线程安全的,因为它是不可变的。多个线程可以同时访问同一个String对象而无需担心数据的修改问题。
StringBuffer是线程安全的,它的方法使用了synchronized关键字进行同步,保证在多线程环境下的安全性。
StringBuilder是非线程安全的,不使用synchronized关键字,所以在多线程环境下使用时需要手动进行同步控制。
性能:
        由于String是不可变的,每次对String进行操作都会创建一个新的String对象,频繁的字符串拼接会导致大量的对象创建和内存消耗。
StringBuffer是可变的,对字符串的修改是在原有对象上进行,不会创建新的对象,因此在频繁的字符串拼接场景下比String更高效。
StringBuilder与StringBuffer类似,但不保证线程安全性,因此在单线程环境下性能更高。

Java中的基本数据类型有哪些?它们的大小是多少?

整数类型:
byte:1字节   -128到127
short:2字节
int:4字节
long:8字节
浮点数类型:
float:4字节
double:8字节
字符类型:
char:2字节,在内存中范围为0到65535,表示一个Unicode字符
布尔类型:
boolean:1位,在内存中只能表示true或false

String类能被继承吗,为什么

在Java中,String类是被final关键字修饰的,即不可继承。final关键字表示一个类不允许被其他类继承,也就是说,String类不能被任何其他类继承。
这是因为String类具有不可变性和安全性,这些特性可以防止一些潜在的问题,如字符串池中的重用和安全性漏洞。
如果String类能被继承,子类有可能修改原字符串的值,这将破坏字符串对象的不可变性。此外,String类的方法和变量都被设计成private、final和static的,这说明它们不能被重写或隐藏。如果String类可以被继承,这些设计决策将被打破,可能产生更多的问题。

Java中变量和常量有什么区别

可变性:
变量是可以被修改的
常量是不可被修改的
声明与赋值:
变量需要先声明,并可以在声明后进行赋值。声明时需要指定变量的类型
常量在定义时需要使用final关键字进行修饰
内存空间:
变量在内存中占用一块存储空间,可以改变这个存储空间中的值。
常量通常会被编译器在编译时直接替换为对应的值,所以在内存中不会为常量分配额外的存储空间,而是直接使用常量的值。
使用场景:
变量用于存储会发生变化的数据,例如计数器、临时结果等,在程序的执行过程中可以根据需要改变其值。
常量用于表示不可变的数据,例如数学常数、配置项等,在程序中通常希望保持其固定的值,避免误操作导致值的变化。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值