加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java基础知识

发布时间:2020-12-15 07:26:43 所属栏目:Java 来源:网络整理
导读:? 1、面向对象 1 抽象 封装 多态 继承。、 2 跨平台和垃圾回收 源代码-》字节码-》机器码 3 jre java程序运行环境 4 jdk java开发环境,提供了开发工具,编译器等。 2、Object 类的方法 getclass hashcode equals clone tostring notify notifyall wait fina

?

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:某大佬

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读