首页 > 代码库 > 面试之JAVA基础【一】
面试之JAVA基础【一】
---------------------------以下均是平常刷面试题后的总结-----------------------------
1,abstract可以修饰什么?为什么不能修饰属性
--abstract是抽象的意思,在java中,规定只能修饰类或者方法,所以不能修饰属性。
(1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型。抽象类就相当于一类的半成品,需要子类继承并覆盖其中的抽象方法。
(2)abstract修饰方法,会使这个方法变成抽象方法,也就是只有声明而没有实现,需要子类继承实现(覆盖)。
2,abstract为什么不能修饰字段?
--abstract不能修饰字段.既然是抽象方法,当然是没有实现的方法,根本就没有body部分.
3,申明抽象方法为啥不可写大括号?
--因为是抽象的,所以只能在其他继承的类中实现,所以只以分号结束就行了
4,实例方法可以直接调用什么类的类方法?
--实例方法可以直接调用本类的类方法
- 1、类方法是属于整个类,而不属于某个对象。
- 2、类方法只能访问类成员变量,不能访问实例变量,而实例方法可以访问类成员变量和实例变量。
- 3、类方法的调用可以通过类名.类方法和对象.类方法,而实例方法只能通过对象.实例方法访问。
- 4、类方法只能访问类方法,而实例方法可以访问类方法和实例方法。
- 5、类方法不能被覆盖,实例方法可以被覆盖。
5,构造方法?特点?
--构造方法就是类构造对象时调用的方法,主要用来实例化对象。特点:与类同名且没有返回值(甚至连void也没有)类型的方法,.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
6,接口?特点?
-- Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
7,JDBC中,用于表示数据库连接的对象是?
-- Connection:与目标数据库建立jdbc连接;
Statement:向建立连接的数据库发送操作指令并返回操作结果
ResultSet:装载数据库指令执行结果
DriverManager是驱动管理器。
8,一个线程处于运行状态,运行的是哪个方法体中的内容?--run()
--创建Thread类后,在类中重写run()方法,启动线程是用线程对象调用start()方法。
9,下面哪个方法不可以在任何时候被任何线程调用?
-- wait()是Object类的方法。其他三个都是线程的方法
10,多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
--多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,wait与notify
11, 能够向文件输入逻辑型数据的类是:
-- DataOutputStream
12,栈通常采用的两种存储结构是?
--线性存储结构和链表存储结构
13,final关键字?
-- final关键字可以用来修饰类、方法、变量、参数,不能修饰抽象类和接口
final修饰的变量不允许被再次赋值 final修饰的类无法被继承 final修饰的
变量需要初始化
14,被private修饰的成员变量?
--被private修饰的成员变量只能在本类中使用,其子类不能够访问父类的私有成员变量
15,JDBC中创建SQL语句对象可能产生异常,此异常是
-- SQLException,sql语句书写异常
16,使用static修饰属性或方法后,属性和方法有什么特征?
-- static修饰属性或方法后,属性和方法不在属于某个特定的对象,成为类对象,被所有此类的实例所共享,在类加载时就被初始化。Static修饰的属性或方法,可以直接使用类名调用,而不用先实例化对象再调用。
(static修饰成员属性后,会使成员变量变成全局变量,提供给所有对象共同使用
static修饰成员方法后,该方法为类方法,在类加载的时候就进行初始化,类可以直接调用该方法,而无需创建对象后调用)
17,Ajax应用程序比传统的web应用程序优势?
-- ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。 服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理 页面无刷新,在页面内与服务器通信,给用户的体验非常好。
18,在最坏的情况下,下列排序方法中时间复杂度最小的是()A.冒泡排序 B.快速排序 C.插入排序D.堆排序
--D.堆排序
19,Jdo是什么?
--JDO是Java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
20,--Java程序经编译后会产生byte code,编译后的class文件是二进制文件,由虚拟机解释运行。
21,直接继承自Collection接口?
答:List,Set是,Map不是。
如图:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java JDK不能提供直接继承自Collection的类,Java JDK提供的类都是继承自Collection的"子接口",如:List和Set。
注意:Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。
22,文件读写的基本类?
--FileReader类和FileWriter类,分别继承自Reader和Writer类,FileReader类用于读取文件,FileWriter类用于将数据写入文件,这2个类在使用前,都必须调用其构造方法创建相应的对象,然后调用相应的read()或write()方法。
23,Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,属于初始阶段的?
--Servlet的生命周期一般可以用三个方法来表示:
init():仅执行一次,负责在装载Servlet时初始化Servlet对象
service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
destory():在停止并且卸载Servlet时执行,负责释放资源
初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。所以选ACD。B是在调用service方法时才构造的
24,isNaN方法?
--该方法用于检测参数是否为数值型,是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。
25,compareTo(T o) 来源于Comparable接口中的方法
26,数组(Array)和列表集合(ArrayList)的区别:
Array可以包含基本类型和对象类型,ArrayList只能包含对象类型。
Array大小是固定的,ArrayList的大小是动态变化的。
ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator() 等等。
对于基本类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢
27,使用&和 | 的时候如果前边为false后边的表达式也要执行,而&&和||正好相反当&&前边为false,后边的不执行,就不会抛出空指针异常。
28,算法的空间复杂度是指:执行过程中所需要的存储空间
面试之JAVA基础【一】