码迷,mamicode.com
首页 > 编程语言 > 详细

java基础知识

时间:2019-10-09 19:09:25      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:get   dcl   enc   存在   pointer   lower   同步   overflow   调用   

 

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基础知识

标签:get   dcl   enc   存在   pointer   lower   同步   overflow   调用   

原文地址:https://www.cnblogs.com/bowenqianngzhibushiwo/p/11643520.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!