1、关于常用包
java.long 基础包:String Math Integer...
java.util 工具包:Collection Map Date
java.sql 数据库相关:Conection
java.io 输入输出:OutputStream File
2、JDK、JRE、JVMA的区别
JDK:是java开发的工具箱,包含jre,还包含将java文件编译为class文件的javac工具类(编译器),除此之外还包括java原生的API;包含J2SE(标准版)、J2EE(企业版)、J2ME(用于移动设备)
JRE:是java运行环境,所有的java程序都要在JRE下才能运行;包括JVM
JVM:虚拟机,java运行依赖虚拟机,因为虚拟机所以才能跨平台
3、&与&&区别
&&具有短路的功能,即第一个表达式为false,则不再计算第二个表达式;&不管第一个正确与否都会计算第二个
4、char型变量能不能储存一个汉字
char型变量是用来存储Unicode编码的字符的,unicode编码的字符集中包含汉字所以,char行变量中可以存储汉字。但是char不能存储unicode中包含的汉字。补充:char 型的变量占两个字节
5、switch默认接受的数据类型
byte 、shot、int、char String
6、java基本数据类型
byte shot int long float double char boolean
7、String类型是基本数据类型?
java.lang.String 是final类型类、因此不能被继承,不能被修改。
8、int与Integer有什么区别(自动装拆)
int是原始类型。Integer为引用类型。
9、String与StringBuffer的区别
String 的值不可改变。StringBuffer的值可以进行修改
10、java面向对象的三大特征
封装、继承、多态
11、静态变量、成员变量、局部变量
静态变量 | 成员变量 | 局部变量 | |
所属 | 属于类 | 属于对象 | 属于方法 |
位置 | 类中方法外 | 类中方法外 | 方法内 |
内存 | 静态区 | 堆空间 | 栈空间 |
周期 | 随类加载 | 随对象加载 | 随方法加载 |
初始值/调用 | 默认初始值,通过类名调用 | 默认初始值,通过对象调用 | 无初始值、通过方法使用 |
12、静态代码块、构造代码块、构造方法的执行顺序
① static { System.out.println(“静态代码块”) }
② { System.out.println(“构造代码块”); }
③ public Student() { System.out.println(“构造方法”); }
执行顺序① ② ③
执行多次出现结果 ①执行一次 ② ③重复执行
13、Collection 、Collections、List、Set的区别
List与Set都继承于Collection,Collection是集合的顶级接口。而Collections是集合工具类。list为有序集合接口,ArrayList、LinkedList、Vector为其实现类;Set是无序不重复集合接口,HashSet、LinkedHashSet、TreeSet为其实现类
14、ArrayList、LinkedList、Vector的区别
ArrayList Vector:底层为数组、查询快、增删慢 。ArrayList 效率高、线程不安全;Vector效率低、线程安全
LinkedList:底层为链表结构、查询慢、增删快
15、HashMap、HashTable
HashMap的效率高、线程不安全、允许键或值为空
HashTable线程安全、效率低、不允许键或值为空
16、数组与集合的区别
数组可以存储基本数据类型,也可以存储对象,长度固定
集合只能存储对象,长度可变
17、常见数据结构
栈、队列、数组、链表、树
18、Map接口与Collection接口的区别
Map是双列的、Collection是单列的
Map的键值唯一、Collection的子接口set是唯一的
Map的数据结构只针对键有效。Collection针对元素有效
19、Integer与int值的问题
integer直接赋值,如果数在-128到127之间,==结果则为true、否则为false
两个new Integer 不会相等
int 和 integer(无论是new出的、还是直接赋值的),只要值相同、则为true
20、运行时异常与编译时异常的区别
运行时异常:RuntimeException类及其子类 编译过程中没有错误,运行时会报错
编译时异常:编译过程中出错。必须解决才能运行
21、异常的处理方式
try catch 在方法内直接解决
throws 将异常抛给上一级解决,可以抛出多个异常,可能会抛出
ps:throw 抛出一个异常对象,一定会抛出
22、final、finally、finalize的区别
final 修饰变量为常量,修饰方法不能被重写,修饰类不能被继承
finally try-catch-finally语句代码,一定执行
finalize 垃圾回收器方法
23、osi七层模型
第一层:物理层 ,
第二层:数据链路层 ,
第三层:网络层 ,
第四层:传输层,
第五层:会话层,
第六层:表示层,
第七次:应用层。
24、封装概念
隐藏对象的属性与实现细节,仅提供公共的访问的方式
25、继承概念
将类中重复的属性和方法抽取到一个类中,其他类无序定义这些属性,只需要继承这个类即可
26、多态概念
允许不同类的对象对同一消息作出响应。
27、Overload与Override的区别
重写与重载都是java多态的体现。重写是父类与子类之间的多态性的一种表现形式,重载是一个类中多态性的表现形式。重写时,参数、返回值、方法名都必须相同;而重载时参数不同、返回值可以不同,方法名相同。
28、error与exception有什么区别
error表示恢复不是不可能,但很难的问题,比如内存溢出
exception则表示程序设计问题,通过修改程序就能解决
29、抽象类与interface的区别
抽象类中可以有抽象方法,也可以没有,而interface中必须都为抽象方法。
抽象类只能被单继承,而interface可以多实现。
抽象类中extend实现抽象类,implement实现接口。
抽象类有构造方法,接口没有。
抽类中可以有main方法,接口中没有。
30、数组length属性 String length方法
31、描述一下JVM加载class文件的原理机制?
JVM中类的装载是由ClassLoader和它的子类来实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
56、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 。
同步的实现方面有两种,分别是synchronized,wait与notify。