25道java基础面试题,不看答案你会几道题?

栏目:高等教育  时间:2023-01-15
手机版

  有指针,但是隐藏了,开发人员无法直接操作指针,由jvm来操作指针

  理论上说,java都是引用传递,对于基本数据类型,传递是值的副本,而不是值本身。对于对象类型,传递是对象的引用,当在一个方法操作操作参数的时候,其实操作的是引用所指向的对象。

  改变了,因为传递是对象的引用,操作的是引用所指向的对象

  

  不能,数组一旦实例化,它的长度就是固定的

  创建一个新数组,从后到前循环遍历每个元素,将取出的元素依次顺序放入新数组中

  形参:全称为“形式参数”,是在定义方法名和方法体的时候使用的参数,用于接收调用该方法时传入的实际值;实参:全称为“实际参数”,是在调用方法时传递给该方法的实际值。

  不能构造方法当成普通方法调用,只有在创建对象的时候它才会被系统调用

  

  可以重写,也可以重载

  方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或者类型不同即可。在这种情况下,该方法就叫被重载了,这个过程称为方法的重载(override)

  静态内部类相对与外部类是独立存在的,在静态内部类中无法直接访问外部类中变量、方法。如果要访问的话,必须要new一个外部类的对象,使用new出来的对象来访问。但是可以直接访问静态的变量、调用静态的方法;

  普通内部类作为外部类一个成员而存在,在普通内部类中可以直接访问外部类属性,调用外部类的方法。

  如果外部类要访问内部类的属性或者调用内部类的方法,必须要创建一个内部类的对象,使用该对象访问属性或者调用方法。

  如果其他的类要访问普通内部类的属性或者调用普通内部类的方法,必须要在外部类中创建一个普通内部类的对象作为一个属性,外同类可以通过该属性调用普通内部类的方法或者访问普通内部类的属性

  如果其他的类要访问静态内部类的属性或者调用静态内部类的方法,直接创建一个静态内部类对象即可。

  

  Static可以修饰内部类、方法、变量、代码块

  Static修饰的类是静态内部类

  Static修饰的方法是静态方法,表示该方法属于当前类的,而不属于某个对象的,静态方法也不能被重写,可以直接使用类名来调用。在static方法中不能使用this或者super关键字。

  Static修饰变量是静态变量或者叫类变量,静态变量被所有实例所共享,不会依赖于对象。静态变量在内存中只有一份拷贝,在JVM加载类的时候,只为静态分配一次内存。

  Static修饰的代码块叫静态代码块,通常用来做程序优化的。静态代码块中的代码在整个类加载的时候只会执行一次。静态代码块可以有多个,如果有多个,按照先后顺序依次执行。

  

  12、String 是最基本的数据类型吗? 【基础】

  答:不是。

  13、float 型float f=3.4是否正确? 【基础】

  答:不正确;精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 。

  14、语句float f=1.3;编译能否通过?【基础】

  答:不能;应该用强制类型转换,如下所示:float f=(float)1.3; 。

  15、short s1 = 1; s1 = s1 + 1;有什么错?

  short s1 = 1; s1 += 1;有什么错? 【基础】

  答:short s1 = 1; s1 = s1 + 1;s1+1运算结果是int 型,需要强制转换类型;short s1 = 1; s1 += 1;可以正确编译,自动类型提升。

  Pow():幂运算Sqrt():平方根Round():四舍五入Abs():求绝对值Random():生成一个0-1的随机数,包括0不包括1

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

  不能。Equlas大多用来做字符串比较,要判断基本数据类型或者对象类型,需要使用==

  

  ==可以判断基本数据类型值是否相等,也可以判断两个对象指向的内存地址是否相同,也就是说判断两个对象是否是同一个对象,Equlas通常用来做字符串比较。

  Stringbuilder或者stringbuffer的reverse方法

  封装、继承、多态

  Java中既有单继承,又有多继承。对于java类来说只能有一个父类,对于接口来说可以同时继承多个接口

  23、&和&&的区别?【基础】

  答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。

  24、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别?【基础】

  答:区别主要有两点:a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型b.逻辑操作不会产生短路。

  25、heap 和stack 有什么区别?【基础】

  答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成,栈按照后进先出的方式进行处理;堆是栈的一个组成元素。

  举报/反馈

上一篇:“我只想让你们夸夸我”,小学生考99分被家长质问,还不反思吗?
下一篇:【千人大会●药企免费】药物开发者&CMC国际峰会

最近更新高等教育