Java面试的一些高频题

1、用堆栈来处理函数的调用,参数和过程参数入栈,调用完成后,再出栈。

2、(1)线性表:零个或多个数据元素的有限序列

​ (2)数据项:一个数据元素可以由多个数据项组成(例如:人由眼鼻手脚等组成)

3、java的鲁棒性

在这里插入图片描述

4、时间、空间复杂度

在这里插入图片描述

5、java基本语法

a) 局部变量不可以有任何修饰符

b) 形参可以用final修饰,在函数中就不能进行改变了。若参数是对象,可以对象的成员进行改变,不可以对对象的引用进行改变(即不可以在重新new 一个对象)

c) final修饰的参数没有默认值

d) 接口可以多继承

6、equals()和"=="区别?

默认情况下也就是从超类Object继承而来的equals方法与‘==’是完全等价的,(因为equals底层还是使用的"= =")比较的都是对象的内存地址,但我们可以重写equals方法,使其按照我们的需求的方式进行比较,如String类重写了equals方法,使其比较的是字符的序列,而不再是内存地址。

7、牛客错题笔记

标准ASCII只使用7个bit,扩展的ASCII使用8个bit。

Class c = Class.forName(“ClassA”)不会执行Class的构造函数,只会执行里面的代码块或者是静态代码块(顺便记一下,代码块在构造函数之前执行)

1、java类加载图解

在这里插入图片描述

1.1、class.forName:是初始化一个类,类中静态代码会执行,但是构造方法不会执行。,得到得class对象需要.instance()后,才得到了类的实例
1.2、类名.class:进行反射生成Class对象的时候,不会初始化这个类,更不会执行这个类的静态代码(静态代码块都得不到执行)
1.3、对象引用.getClass() : 得到对象引用的class对象

2、while实现的循环,for循环也能实现

3 、类型转换

short a =128byte b =(byte) a;
  • short类型,a的二进制是:0000 0000 1000 0000;
  • .强制转换的截后8位,正数用源码表示,负数用补码表示,第一位是符号。
  • 因此,a截取后8位的二进制是:1000 0000,第一位是1,表示是一个负数,二进制的值是128,所以结果是 -128。

4、spring作用域

在这里插入图片描述

5、常用处理流

  • 缓冲流:BufferInputStream BufferedOutputStream BufferedReader BufferedWriter 增加缓冲功能,避免频繁读写硬盘。
  • 转换流:InputStreamReader OutputStreamReader 实现字节流和字符流之间的转换。
  • 数据流 DataInputStream DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值