今日分享 – 总结(一) Java基础

异常

1,Throwable 异常和错误的父类。

2,Error和Exception。

3,Error常见的StackOverflowError,OutOfMemoryError,NoClassDefFoundError。

4,异常关键字

  • Try 监听可能出现异常的代码块
  • Catch 捕获异常
  • throws 方法上声明异常
  • throw 抛出一个异常对象
  • finally 总要被执行,假如catch中有return,finally的执行顺序在return之前。

5,JVM如何处理异常

一个方法出现异常,会生成一个异常对象交给jvm,经过一系列操作,jvm通过调用栈找不到能解决异常的方法,最后抛出异常。

基础

1,final

类不可以继承

方法不可以被重写

final是引用不变,可以修改内存的变量,达到final改变的目的。

2,static

静态方法

类加载时候引用

类调用方法,其实对象也能调用。

还有一种神奇用法

public class Test(){
    public static int top() return -1;

    public static void main(String[] args){
        Test test = null:
        test.top();
    }
}

3,jdk,jre,jvm

jdk 开发工具

jre 运行环境

jvm 虚拟机

jdk > Jre > 虚拟机

4,面向对象三大特性

继承,封装,多态

5,String是对象不是基本的数据结构。

6,修饰符default和protect的区别

default可以包内访问

protect可以包外子类访问

7,final,finally,finalize

final 不变的修饰符

finally 异常处理

finalize 回收线程

8,抽象类和接口的对比

所以java多继承可以通过实现接口来整。

9,在Java中定义一个不做事且没有参数的构造方法的作用

被子类继承时,要实现父类构造方法,如果没有这玩意,会编译错误。

10,equals和==的区别

==比较的是对象的内存是否一样,如果是基本数据类型则比较值。

equals也是比较对象,一般都会重写。

11,&和&&的区别

&一种按位与,一种要实现两边方法

&&只要左边false,右边不执行,||同样。

12,hashcode和equals

hashcode的是通过内存地址进行hash计算得到的,2的32次方。

但是可能会冲突。

所以

hashcode相等,equals不一定相等。

equals相等,hashcode一定相等。

13,反射

通过类获取他的属性和方法,通过对象能调用他的属性和方法。

14,自动装箱和自动拆箱。

基本数据类型和其对象的转换。

15,Integer的-128到127在缓冲池里,所以调用的时候内存地址都一样,不在这范围的值则不一样。

16,String

  • 不是基本数据类型
  • String不可变,但是可以用StringBuffer和StringBuilder进行修改。
  • StringBuffer是线程安全的,加了同步锁,StringBuider不是。
  • tring str=”i”与 String str=new String(“i”)一样吗?

不一样,因为内存的分配方式不一样。String str=”i”的方式,java 虚拟机会将其分配到常量池中;而 String str=new String(“i”) 则会被分到堆内存中。

17,基本数据结构

人傻了,和印象完全不一样emmmm

正文完