Java核心基础知识(持续更新)

Posted 醉酒的小男人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java核心基础知识(持续更新)相关的知识,希望对你有一定的参考价值。

静态变量和实例变量的区别

静态变量存储在方法区,属于类所有。实例变量存储在堆当中,其引用存在当前线程栈。

代码中如何实现多态

接口实现、继承父类重写方法、同一类中进行方法重载

Overload和Override的区别

方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型

 数据类型

基本数据类型

img

引用数据类型:类、接口、数组

a=a+b与a+=b有什么区别

+=操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换

3*0.1==0.3返回值是什么

false,因为有些浮点数不能完全精确的表示出来。

&和&&的区别

&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑或运算符(|)和短路或运算符(||)的差别也是如此。 

Switch中兼容的数据类型

java支持的数据类型有5种,分别是byte,int,short,char,enum,JDK1.7中新增了String

Object类常用的方法

 equals()/Hashcode()/toString()/wait()/notify()/clone()/getClass()/notifyAll()/finalize()

String类的常用方法

split()/subString()/equals()/hashCode()/indexOf()/lastIndexOf()/startsWith()/endsWith()/concat()/replace()/contains()/toLowerCase()/toUpperCase()/toString()/valueOf()/copyValueOf()/format()/trim()

获取反射的机制

1.通过Object类的getClass方法
    Personp=newPerson();
   Classclazz=p.getClass();
2.通过对象实例方法获取对象
    Classclazz=Person.class;
3.通过Class.forName方式

创建对象的方式

1.使用new关键字
2.使用Class类的newInstance()方法
3.使用clone方法
4.使用Constructor类的newInstance()方法
5.使用序列化 

String和StringBuffer和StringBuilder

1.string在1.8以前是final定义的char数组,1.9的时候是final定义的byte数组
2.Buffer和Builder的char数据,Buffer线程安全Builder不是线程安全 

Servlet的声明周期

init()/service/destory() 

Java中XML解析方式

DOM/SAX/JDOM/DOM4J 

九大内置对象

request/response/session/config/application/page/pagecontext/exception/out 

异常

检查式异常(checked execption)

我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch 所以 面对这种异常不管我们是否愿意,只能自己去写一堆catch来捕捉这些异常。

EOFException 文件已结束异常
SQLException  操作数据库异常
IOException  输入输出异常
FileNotFoundException  文件未找到异常
NoSuchMethodException  方法未找到异常
ClassNotFoundException 类未找到异常 

运行时异常

我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

ArithmeticException 数学计算异常
ClassCastException  类型强制转换异常
ArrayStoreException 数据存储异常,写数组操作时,对象或数据类型不兼容
IllegalArgumentException 不合法的参数异常
IndexOutOfBoundsException  数组下标越界异常
NegativeArraySizeException:负数组长度异常
NullPointerException  空指针异常
InputMismatchException 输入不匹配异常 

基本类型和引用类型区别

 基本数据类型:byte、short、int、long、float、double、char、boolean
引用类型:类(class)、接口(interface)、数组(array)
基本类型保存的值,引用类型保存了是对象的地址,所有基本类型赋值是按值传递(拷贝赋值)引用类型赋值是按引用传递。对比于C++就是&符号。

基本类型和包装类的区别

包装类是一个类可以调用类的方法

基本数据类型和对应封装类如果你只是想使用他们具体的赋值,他们之间本质上是没有区别的.如果你不单单想用一个赋值,是想用里面的方法解决许多繁琐的问题.那就使用封装类吧.因为封装类就是在基本类型不够用的的基础上一出来的.封装类提供了许多的方法供君选择.它可以简化程序员的敲代码的量

 Integer取值范围

Integer类取值和int类型取值一致,取值范围是从-2147483648至2147483647(-231至 231-1),包括-2147483648和 2147483647。但是对于Integer类java为了提高效率,初始化了-128--127之间的整数对象,因此Integer类取值-128--127的时候效率最高。

以上是关于Java核心基础知识(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章

Java后端学习路线 -- 持续更新--当前版本(v1-20210324)

Java后端学习路线 -- 持续更新--当前版本(v1-20210324)

网络核心知识梳理(持续更新)

Java相关面试题整理(持续更新)

ConcurrentHashMap核心知识点整理(持续更新)

ConcurrentHashMap核心知识点整理(持续更新)