关于Java基础
来源:互联网 发布:西门子机床数据采集 编辑:程序博客网 时间:2024/06/07 03:00
主要考察java的基础内容,其中包含:
1,java三大特性、抽象类、接口、基本数据类型
2,常用关键字(static,final,private关键字作用域等)
3,常用的数据集合
4,多线程
5,手写单例模式
6,异常处理
7,排序
1,java的三大特征?
答:封装、继承、多态;
2,谈谈你对多态的理解?
答:不同类的对象对同一消息作出不同的响应就叫做多态
3,抽象类和接口的区别?
答:1. 抽象类可以有构造方法,接口中不能有构造方法。
2. 抽象类中可以有普通成员变量,接口中没有普通成员变量
3. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以使public、protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认修饰即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
4,重载和重写的区别?
答:重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
重写Override表示子类中的方法可以与父类的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,
这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现
5,java的基本数据类型?
答:byte,short,int,long,float,double,char,boolean
6,基本数据类型和包装类的区别?
答:1、包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址,基本类型不是
2、包装类型是引用的传递,基本类型是值的传递
3、声明方式不同,基本数据类型不需要new关键字,而包装类型需要new在堆内存中进行new来分配内存空间
4、存储位置不同,基本数据类型直接将值保存在值栈中,而包装类型是把对象放在堆中,然后通过对象的引用来调用他们
5、初始值不同,eg: int的初始值为 0 、 boolean的初始值为false 而包装类型的初始值为null
6、使用方式不同,基本数据类型直接赋值使用就好 ,而包装类型是在集合如 coolection Map时会使用
7,final,finally的区别?
答:final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型。
finally是异常处理语句结构的一部分,表示总是执行
8,private protected default,friendly 的作用域?
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
9,常用的集合用哪里?各自什么特点?
答:List,Set,Map
List:元素有放入顺序,元素可重复
-> ArrayList:基于动态数组的数据结构,查询比较快,增删 比较慢;
LinkedList:基于链表的数据结构,增删比较快,查询比较慢
Set:元素无放入顺序,元素不可重复
Map:元素无放入顺序,元素不可重复
-> HashMap:a)线程不安全;b)允许null;
HashTable:a)线程安全;b)不允许null;
10,多线程实现方式?多线程的几种状态转换?run方法和start方式有什么区别?
答:实现方式:继承Thread类,实现Runable接口
线程几种状态的转寒 :可以参考博客:http://blog.csdn.net/jiafu1115/article/details/6804386
区别:run():当前线程为可运行状态,可以参与CPU执行权
start():当前状态为初始就绪状态,没有竞争CPU执行权;
11,动态代理有什么好处?有几种实现方式?各有什么特点?
答:优点:主要用来做方法的增强,让你可以在不修改源码的情况下,增强一些方法,在方法执行前后做任何你想做的事情(甚至根本不去执行这个方法)
实现方式:JDK动态代理和CGLIB
各自特点:
JDK动态代理:基于接口实现
CGLIB:是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。
12,手写单例类
13,常用的异常类有哪些?
答:空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组下标越界异常:ArrayIndexOutOfBoundsException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
输入输出异常:IOException
操作数据库异常:SQLException
方法未找到异常:NoSuchMethodException
未找到类定义错误:java.lang.NoClassDefFoundError
14,error和Exception区别?
答:Error:称为错误,由java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。
Exception:所有异常类的父类,其子类对应了各种各样的可能出现的异常事件,一般需要用户显示的声明或捕获
1,java三大特性、抽象类、接口、基本数据类型
2,常用关键字(static,final,private关键字作用域等)
3,常用的数据集合
4,多线程
5,手写单例模式
6,异常处理
7,排序
1,java的三大特征?
答:封装、继承、多态;
2,谈谈你对多态的理解?
答:不同类的对象对同一消息作出不同的响应就叫做多态
3,抽象类和接口的区别?
答:1. 抽象类可以有构造方法,接口中不能有构造方法。
2. 抽象类中可以有普通成员变量,接口中没有普通成员变量
3. 抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
4. 抽象类中的抽象方法的访问类型可以使public、protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认修饰即为public abstract类型。
5. 抽象类中可以包含静态方法,接口中不能包含静态方法
6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。
7. 一个类可以实现多个接口,但只能继承一个抽象类。
4,重载和重写的区别?
答:重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。
重写Override表示子类中的方法可以与父类的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,
这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现
5,java的基本数据类型?
答:byte,short,int,long,float,double,char,boolean
6,基本数据类型和包装类的区别?
答:1、包装类是对象,拥有方法和字段,对象的调用都是通过引用对象的地址,基本类型不是
2、包装类型是引用的传递,基本类型是值的传递
3、声明方式不同,基本数据类型不需要new关键字,而包装类型需要new在堆内存中进行new来分配内存空间
4、存储位置不同,基本数据类型直接将值保存在值栈中,而包装类型是把对象放在堆中,然后通过对象的引用来调用他们
5、初始值不同,eg: int的初始值为 0 、 boolean的初始值为false 而包装类型的初始值为null
6、使用方式不同,基本数据类型直接赋值使用就好 ,而包装类型是在集合如 coolection Map时会使用
7,final,finally的区别?
答:final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型。
finally是异常处理语句结构的一部分,表示总是执行
8,private protected default,friendly 的作用域?
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
9,常用的集合用哪里?各自什么特点?
答:List,Set,Map
List:元素有放入顺序,元素可重复
-> ArrayList:基于动态数组的数据结构,查询比较快,增删 比较慢;
LinkedList:基于链表的数据结构,增删比较快,查询比较慢
Set:元素无放入顺序,元素不可重复
Map:元素无放入顺序,元素不可重复
-> HashMap:a)线程不安全;b)允许null;
HashTable:a)线程安全;b)不允许null;
10,多线程实现方式?多线程的几种状态转换?run方法和start方式有什么区别?
答:实现方式:继承Thread类,实现Runable接口
线程几种状态的转寒 :可以参考博客:http://blog.csdn.net/jiafu1115/article/details/6804386
区别:run():当前线程为可运行状态,可以参与CPU执行权
start():当前状态为初始就绪状态,没有竞争CPU执行权;
11,动态代理有什么好处?有几种实现方式?各有什么特点?
答:优点:主要用来做方法的增强,让你可以在不修改源码的情况下,增强一些方法,在方法执行前后做任何你想做的事情(甚至根本不去执行这个方法)
实现方式:JDK动态代理和CGLIB
各自特点:
JDK动态代理:基于接口实现
CGLIB:是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。
12,手写单例类
13,常用的异常类有哪些?
答:空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组下标越界异常:ArrayIndexOutOfBoundsException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
输入输出异常:IOException
操作数据库异常:SQLException
方法未找到异常:NoSuchMethodException
未找到类定义错误:java.lang.NoClassDefFoundError
14,error和Exception区别?
答:Error:称为错误,由java虚拟机生成并抛出,包括动态链接失败,虚拟机错误等,程序对其不做处理。
Exception:所有异常类的父类,其子类对应了各种各样的可能出现的异常事件,一般需要用户显示的声明或捕获
阅读全文
0 0
- 关于Java基础回顾
- java基础:关于JDBC
- 关于java基础--异常
- java基础关于线程
- 关于Java的基础
- 【JAVA基础】关于多线程
- 关于java基础2
- 【Java基础】关于字符串
- 【Java基础】关于异常
- 关于Java基础
- 关于Java基础的说明
- java基础:关于网络编程
- java 基础,关于线程安全
- java基础 关于线程安全
- JAVA基础—关于Date
- 关于java基础--排序方法
- 关于java基础--IO流
- 关于java基础--动态代理
- 会话跟踪技术
- hibernate小实例
- 278. First Bad Version
- mysql常用操作
- Java基础总结-Java面试常考题
- 关于Java基础
- 轻量级框架SSH应用与开发——Spring之学习总结(初阶)
- 关于按字寻址和按字节寻址的理解
- 作业week1 'Rock-paper-scissors-lizard-Spock'
- caffe中loss和accuracy等可视化
- Mahmoud and Ehab and the binary string CodeForces
- 【二分+乱搞】Codeforces 743E Vladik and cards
- PYTHON机器学习实战——SVD奇异值分解 数据降维
- python拟合二元一次函数