java基础知识

Posted 博闻强识不是我

tags:

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

 

1、面向对象

1 抽象 封装 多态 继承。、

2 跨平台和垃圾回收 源代码-》字节码-》机器码

3 jre java程序运行环境

4 jdk java开发环境,提供了开发工具,编译器等。

2、Object 类的方法

getclass hashcode equals clone tostring notify notifyall wait finalize

clone() protected 方法,实现对象的潜伏之,只有实现了clonable接口才可以调用该方法。

浅拷贝   指向同一引用

深拷贝  一个改变不会影响另一个。

3 、class类

      java对象在运行时生成的对象的类型标识,记录了每个对象所属的类。这些类型标识的类就是Class类。

在运行时提供对象的类型信息,这些信息可以用于反射。

获取一个Class类对象

      1  Class类的forName 方法,Class obj=Class.forNmae("ex");

        2使用对象的getClass 方法 Class obj= ex.getClass();

        3 类的字面常量 Class obj=String.class;

 

4、接口和抽象类

接口是对行为的抽象,使用implement实现,一个类可以实现多个接口,实现接口的时候必须实重写接口中的所有的方法。

     接口中的变量 声明为public static final   方法声明为public abstract  只能申明方法 不能实例化方法

抽象类 是不能实例化的类,使用单继承。可以有非抽象方法,也可以没有抽象方法。

 

5、String

String是不可变类,是对字符数组的封装,成员变量的字符数组被声明为final,没有提供setvalue方法来修改值,是典型的的不可变类。

字符串的拼接和裁剪都会生成新的对象,影响性能。

StringBuffer 为了解决String不不可变性,通过add和append添加字符串,不会产生新的对象。使用Synchronized保证线程安全

Stringbuilder 由于同步会导致性能下降,所以在不会发生并发的情况下使用StringBuilder。

 

6 、Integer 和int

int是java的基本数据类型,默认值是0

Integer是java的包装类,默认值是null 需要new

ValueOf()-128 和127之间的数整型会调用缓存机制。

 

7 、反射

java使用反射机制获取一个类的属性和方法,并生成对象。可以实现动态代理。

获取class对象:object.getClass()  class.forName()  class.loadClass(),找不到指定类会抛出 classNotFoundException

创建class对象  Class.nexInstance()   Class.getConstruct().newInstance()

优点 灵活

缺点  缓慢,访问私有方法不安全 破坏封装性

 

8 、Error exception

1 都继承自Throwable类。只有throwable类的实例才可以被throw  catch

Error: OutOfMemoryError  StackOverFlowError

Exception: 程序正常运行中可以被预料的意外情况,可以被捕获并处理

运行时异常:无法让程序回恢复的异常,避免逻辑错误:NullPointerException,classcastException ArrayIndexOutOfBoundsException

受检异常:IOexception 必须显示try catch 或throw,表示程序可以处理的异常

9、泛型

在集合中存储对象,并在使用前进行类型转换时十分不方便的,泛型增加编译时的类型检查,避免运行时的classcastException

10 、序列化

java的序列化的类,要实现Serilizable接口,声明可以进行序列化。

这个接口中不存在方法,只是标识作用。

若要被序列化的类中定义writeObject和readObject方法,使用用户自定义的方法进行序列化,否则使用默认方法进行序列化。

使用Transient关键字控制变量的序列化,在变量声明前加上该关键字,可以阻止被序列化,在反序列化后加上该关键字,将变量赋为初始值。

static 修饰的属性不会被序列化

类的类名和属性会被序列化 方法不会

序列化一个类的时候要保证其属性也可以被序列化

reference:某大佬

 

以上是关于java基础知识的主要内容,如果未能解决你的问题,请参考以下文章

Java基础知识总结

java基础知识点

java基础知识文章汇总

初识Java Java基础知识

学习Spring必学的Java基础知识----事务基础知识

零基础学Java—Java基础知识