java知识点总结(二)

承接上文知识点链接

java知识点总结(一)

1.final 在Java中的作用?

~final修饰的类叫最终类,该类不能被继承。 ~final修饰的方法不能被重写。
~final修饰的变量叫常量,常量必须初始化,初始化后不能被修改。

2.Java中Math.round(-1.5)等于多少?

等于-1,因为在数轴上取值时,中间值(0.5)向右取整,所以正0.5是往上取整,负0.5是直接舍弃的。

3.关于Java中的Math.round , floor, ceil方法的区别?

Math.floor(11.3) : 11;
Math.floor(-11.3) : -12;
Math.ceil(11.3): 12;
Math.ceil:(-11.3) : -11;
Math.round(11.3):11;
Math.round(-11.3):-12;
*Math.round(X)相当于Math.floor(X+5)

4.String属于基础数据类型么?

String不属于基本类型,基本类型有8种:byte,boolean,char,short,int,float,long,double,string属于对象。

5.java中操作字符串都有哪些类?他们之间的区别是什么?

~ Java中操作字符串的类分别是:String , StringBuffer,StringBuilder.
这三个类都是以char[]的形式保存的字符串,但是String类型的字符串是不可变的,对String类型的字符串做修改操作都是相当于重新创建对象.而对StringBuffer和StringBuilder进行增删操作都是对同一个对象做操作.StringBuffer中的方法大部分都使用synchronized关键字修饰,所以StringBuffer是线程安全的,StringBuilder中的方法则没有,线程不安全,但是StringBuilder因为没有使用使用synchronized关键字修饰,所以性能更高,在单线程环境下我会选择使用StringBuilder,多线程环境下使用StringBuffer。
如果字符串几乎不做修改操作,直接使用String,因为不调用new关键字声明String类型的变量的话它不会在堆内存中创建对象,直接指向String的常量池,并且可以复用.效率更高.到这时候还不过瘾的话你就接着说这三个类创建的时候都是什么状态,扩容的时候又怎么扩容的等等。

6.String str="i"与String str=new String(“i”)一样么?

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

7.如何将字符反转?

使用StringBuilder或者stringBuffer的reverse()方法 示例代码:

//StringBuffer reverse
StringBuffer stringBuffer=new StringBuffer();
stringBuffer.append("abcdefg");
System.out.println(stringBuffer.reverse());//gfedcba
//StringBuilder reverse
StringBuilder stringBuilder=new StringBuilder();
stringBuilder.append("abcdefg");
System.out.println(stringBuilder.reverse());//gfedcba

8.String类的常用方法都有哪些?

~indexOf():返回指定字符的索引。 ~charAt():返回指定索引处的字符。 ~replace():字符串替换。
~trim():去除字符串两端空白。 ~split():分割字符串,返回一个分割后的字符串数组。
~getBytes():返回字符串的Byte类型数组。 ~length():返回字符串长度。
~toLowerCase():将字符串转成小写字母。 ~toUpperCase():将字符串转成大写字符。
~Substring():截取字符串。 ~equals():字符串比较。

9.抽象类必须要有抽象方法么?

不需要,抽象类,不一定非要有抽象方法。

//示例代码
abstract class Cat{
     public static void sayHi(){
         System.out.println("hi~");
    }
}
//上面的代码,抽象类并没有抽象方法但完全可以运行

10.普通类和抽象类有哪些区别?

~普通类不能包含抽象方法,抽象类可以有抽象方法。
~抽象类不能直接进行实例化,普通类可以直接实例化。

11.抽象类能使用final修饰么?

不能,定义抽象类就是让其它类继承,如果定义为final该类就不能被继承,这样彼此就会产生矛盾,所以final不能修饰抽象类。如下图所示。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值