当前位置:网站首页 > Java基础 > 正文

昆明java语言基础



一.Java的数据类型

基本数据类型
整数类型:byte,short,int,long
浮点类型:float,double
字符类型:char
布尔类型:boolean

引用数据类型
类(class),接口(interface),数组(array),空(null),枚举(Enumeration)

二.&和&&的区别

&和&&都表示与的意思,既表达式俩边都成立,结果才成立。

&&是逻辑运算符,&&有短路作用,既当表达式左边为假时,不需要计算右边,整个的结果直接为假;&没有

&是位运算符,&的左右俩边可以是布尔类型,也可以是数值;&&俩边只能是布尔类型

三.Integer与int的区别

int是八大基本数据类型之一,Integer是int的封装类。

int的默认值是0,Integer的默认值是null,此时的0代表这个数赋值0,而null代表没接收到这个值

Integer提供了与整数相关的操作,int没有

四.==与equals的区别

对象类型不同
1、equals():是超类Object中的方法。从它的源码可以看出,里面使用的就是 == 比较,所以这种情况下比较的就是它们在内存中的存放地址。

 

2、==:是操作符。
比较的对象不同
1、equals():当两者的内存地址不同时,equals会检测两个对象是否相等,即两个对象的内容是否相等。
2、==:当应用于基本数据类型时,比较的是两者的值是否相等;
当应用于引用类型时,用于比较两者的引用地址是否相等,也可以理解为用于判断两者是否为同一个对象。

五.break、continue、return的区别及作用?

break:打破当前循环,结束循环,跳出循环,不再执行。
continue:跳出本次循环,进行下一次循环。(结束正在执行的循环条件,进入到下一个循环条件)
return:程序返回,后面的代码都不再进行,(结束当前的方法,直接返回)

六.final、finally、finalize的区别?

final: final 修饰变量:变量变为常量,不可以改变,(其中不可变分为引用不可变和对象不可变,final指的是引用不可变),因为不可 变,final修饰的变量必须初始化。
final 修饰方法 :方法不允许被任昆明java语言基础何子类重写,但子类可以使用该方法。
final 修饰类:被修饰的类不可以被继承,类中的所有方法都不能被重写。

finally:作为处理异常处理的一部分,只能在try/catch语句中,并且附带一个语句块表示这段语句最终一定会被执行(无论是否抛出异常),(经常用于释放资源) System.exit(0)可以阻断finally的执行

finalize:是在java.lang.Object里面定义的方法,因为是Object类,也就是说每一个对象都有这么一个方法,该方法在 gc 启动,该对象被回收的时候被调用。

七.static 关键字?

通常在new创建一个对象的时候,才会分配数据存储空间,方法才供外界调用。用上static就会单独分配一个存储空间,可以不用创建对象就可以使用方法,在静态区域里面。

static关键字,表示一个成员变量或者是成员方法可以在没有所属的类的实例变量的情况下被访问。

Java中static方法不能被覆盖,因为方法覆盖是基于运行时绑定,而static方法是编译时静态绑定的,static方法跟类的任何实例都不相关。

八.是否可以在static环境中访问非static变量?

static变量在Java中是属于类的,它所有的实例中的值都是一样的,当类被Java虚拟机载入的时候,会对static变量进行初始化,如果你的代码尝试不用实例来访问非static的变量,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

九.static静态方法里面可不可以引用静态资源?

可以,因为都是类在初始化的时候加载的,大家都一样,互相认识。

十.非静态方法里面能不能引用静态资源?

可以,非静态方法就是实例方法,那是new之后才产生的,那么属于类的内容它都认识。

十一.面向对象的三大特性

封装、继承、多态

封装:将数据(属性) 和操作数据的方式捆绑,给属性加上private 修饰,提供对应的set get方法

继承:继承只允许继承一个类,子类拥有父类中所有没有封装的属性,简化代码,提高代码的复用率,
子类还可以重写父类的方法,从而实现多态

多态:多态就是对同一消息,做出响应,但是表现出不同的行为。
多态的条件:①子类继承父类,②子类重写父类中的方法,③父类引用指向子类对象。

十二.override(重写)和overload(重载)的区别

重载是在一个类中,方法名相同,参数列表不同(参数类型和参数个数)的一种现象
1.重载与返回值类型无关
2.不能通过访问修饰符进行重载

重写是在父子类中,子类重写父类的方法,要求方法名与参数列表,返回值类型完全相同。子类重写父类规范要在子类的方法前加注解@Override
1.重写的返回值类型可以改,但只能是父子类
2.重写的访问修饰符得大于等于原来的
3.不能重写私有方法
4.参数列表的顺序与类型必须一样,变量名可不同

十三.抽象类(abstract class)和接口(interface)有什么区别?

1.接口的方法默认是public,所有方法在接口中都不能有实现(Java8中接口的方法可以有默认实现)而抽象类可以有非抽象的方法。
2.接口中除了static、final变量,不能有其他变量,而抽象类中则不一定。
3.一个类可以实现多个接口,但是只能实现一个抽象类,接口自己本身,可以通过extends关键字扩展多个接口。
4.接口方法默认都是public,抽象方法可以有public、protected、和default这些修饰符(抽象方法就是为了被重写,所以不能被private关键字修饰!)
5.从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。

十四.深拷贝和浅拷贝?

因此深拷贝是安全的,浅拷贝的话如果有引用类型,那么拷贝后对象,引用类型变量修改,会影响原对象。

浅拷贝如何实现呢?

Object 类提供的 clone()方法可以非常简单地实现对象的浅拷贝。

深拷贝如何实现呢?

十五. Java创建对象的几种方式?

Java中创建对象有以下四种方式:
new创建一个新对象
通过反射机制
采用clone机制
通过序列化机制

版权声明


相关文章:

  • java基础蜘蛛纸牌2025-04-16 23:10:06
  • java项目基础步骤2025-04-16 23:10:06
  • 班java基础2025-04-16 23:10:06
  • java 常见基础组件2025-04-16 23:10:06
  • java基础题在线2025-04-16 23:10:06
  • JAVA方法基础例题2025-04-16 23:10:06
  • java程序设计基础ppt2025-04-16 23:10:06
  • core java基础教程2025-04-16 23:10:06
  • java基础词2025-04-16 23:10:06
  • opengl基础视频 java2025-04-16 23:10:06