java语言基础

1,JDK,JRE,JVM有什么区别?

JDK:Java Development Kit 是java的开发工具包,封装了基本的常用类,提供了Java的开发环境和运行环境

JRE:Java Runtime Environment 是java的运行环境,运行java程序所需,包含Java虚拟机及一些基础类库

JVM :Java Virtual Machine 是java的虚拟机,提供执行字节码文件的能力

2,Java的基本数据类型有哪些?

boolean、char、short、int、long、float、double、byte八种基本数据类型

String不是基本数据类型,String底层是char数据,本身是一个类,是引用类型

==和equals的区别

==:比较值
比较基本的数据类型,比较的是数值

比较引用类型:比较引用指向的值(地址)

equals:默认比较地址
因为这个方法的最初定义在Object上,默认的实现就是比较地址
String内部是重写过equals方法的所以比较字符串时是比较值是否相同
自定义的类,如果需要比较的是内容,那么就要学String,重写equals方法

4,final的作用

final可以修饰类,属性,方法,变量

修饰类时 代表此类无法继承
修饰属性、变量时 代表值无法更改,即为常量
修饰方法时 代表该方法无法重写

注意:

修饰的是基本数据类型,这个值本身不能修改

修饰的是引用类型,引用的指向不能修改

5,String s = "java"与String s = new String(“java”)
String s = “java”;

String s = new String(“java”);

这两者的内存分配方式是不一样的。

第一种方式,JVM会将其分配到常量池,
而第二种方式是分配到堆内存,
而且创建了两个String对象,一个在常量池中,一个在堆中。

String,StringBuffer,StringBuilder区别

String 跟其他两个类的区别是

String是final类型,每次声明的都是不可变的对象,
所以每次操作都会产生新的String对象,然后将指针指向新的String对象。

StringBuffer,StringBuilder都是在原有对象上进行操作

所以,如果需要经常改变字符串内容,则建议采用这两者。

StringBuffer vs StringBuilder

前者是线程安全的,后者是线程不安全的。
线程不安全性能更高,所以在开发中,优先采用StringBuilder.
StringBuilder > StringBuffer > String

接口和抽象类的区别

接口中只含有抽象方法
JDK1.8之前:
语法:
抽象类:方法可以有抽象的,也可以有非抽象, 有构造器接口:方法都是抽象,属性都是常量,默认有public static final修饰
设计:
抽象类:同一类事物的抽取,比如针对Dao层操作的封装,如,BaseDao,BaseServiceImpl
接口:通常更像是一种标准的制定,定制系统之间对接的标准

JDK1.8之后:

 接口里面可以有实现的方法,注意要在方法的声明上加上default或者static

最后区分几个概念:

多继承,多重继承,多实现
    多重继承:A->B->C(爷孙三代的关系)多实现:Person implements IRunable,IEatable(符合多项国际化标准)多继承:接口可以多继承,类只支持单继承
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值