Java基础知识

1.AWT和Swing的区别

AWT是抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包。Swing是为了解决awt存在的问题而新开发的包,它以AWT为基础的。

2.Java语言的特点:平台无关,面向对象,多线程,分布式。

Java不支持多继承是由Java的定义决定的,Java最重要的定义,就是因为它是一种简单的面向对象解释型的语言。Java不能多重继承是因为这种方法很少被使用,即使要使用也可以通过接口来实现多重继承问题。假设可以多重继承,有两个类B和C继承A,假设B和C都继承了A的方法并且进行了覆盖,编写了自己的实现,然后D通过多重继承继承了B和C,那么D应该继承B和C的重载方法,那么它应该继承的是B的还是C的?这就陷入了矛盾,所以Java不允许多重继承。

3.面向字符的输入流,面向字节的输入流

(1) 面向字符的输入流
图源网络
(2)面向字节的输入流
图源网络

4.Java中标识符不能以数字开头

5.HashMap使用键/值得形式保存数据,不能保证其中元素的顺序。

6.在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是?

A、public getSort(float x)
B、int getSort(int y)
C、double getSort(int x,int y)
D、void get(int x,int y)

正确答案:C
A:声明函数的格式不正确,没有返回值。
B:只是返回值类型不同,不能算是重载。
D:函数名不同。

函数重载特点:与返回值类型无关,只看参数列表(参数的个数、参数的类型、参数的顺序)。要求:1.同一个类 2.同名 3.参数个数不同或参数类型不同

7.String和StringBuffer区别

String:
是对象不是原始类型。 为不可变对象,一旦被创建,就不能修改它的值。
对于已经存在的String对象的修改,都是重新创建一个新的对象,然后把新的值保存进去。String是final类,即不能被继承。
StringBuffer:
是一个可变对象,当对它进行修改的时候,不会像String那样重新建立对象。它只能通过构造函数来建立:StringBuffer sb=newStringBuffer();
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null,通过它的append方法向其赋值。
如:sb.append(“hello word”);
字符串连接操作中StringBuffer的效率要明显比String高。
总结:String对象是不可变对象,每次操作String都会建立新的对象来保存新的值。 StringBuffer对象实例化后,只对这一个对象操作。

8.什么是JVM?它的主要功能是什么?

JVM是Java虚构出来的计算机,是一个位于Java与操作系统之间的中间态,有自己完善的硬件结构,如处理器、堆栈、寄存器等,还具有相应的指令系统。
**作用:**JVM是Java字节码执行的引擎,还能优化Java字节码,使之转化成效率更高的机器指令。
JVM中类的装载是由类加载器和它的子类来实现的,类加载是java运行时一个重要的系统组件,负责在运行时查找和装入类文件的类。
不同的平台对应着不同的JVM,在执行字节码(class文件)时,JVM负责将每一条要执行的字节码送给解释器,解释器再将其翻译成特定平台换将的机器指令并执行,这样就实现了跨平台运行。

9.封装,继承,多态

封装:把数据和对数据的操作放在一起。
继承:类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。​
只支持单继承,即一个子类只允许有一个父类,但是可以实现多级继承,及子类拥有唯一的父类,而父类还可以再继承。
重写(override):
​是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!
重载(overload):
​是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
多态: 多态是同一个行为具有多个不同表现形式或形态的能力。

10.List接口和Set接口

**List接口:**有序存储,可以存储重复元素(通过下标访问元素)。
**Set接口:**无序存储,不可以存储重复元素。
相同点:都是接口,可以调用sort进行排序。

11.节点流和处理流

**节点流:**直接跟数据源相接,可进行读写操作。如,FileReader。
**处理流:**处理流(也叫包装流)把节点流包装了一层,属于修饰器设计模式,提供更方便的方法来完成输入输出。如BufferedReader。

12.已检查异常和非检查异常

已检查异常: 对于检查的异常必须处理,或者必须捕获或者必须抛出。如:IO流异常。
非检查异常: 未检查异常也叫RuntimeException(运行时异常),对于运行时异常,java编译器不要求你一定要把它捕获或者一定要继续抛出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值