java 基础

2019-03-14  本文已影响0人  小庄bb

进程:

文本区域、数据区域、和堆栈。

进程状态:

进程还有三个状态,就绪,运行和阻塞。

进程通信

进程通信通过ipc机制,而线程通信则通过对全局字段的读写。需要进程间同步和互斥的手段的辅助,以保证数据的一致性。

常见的进程通信方式

内存溢出和内存泄漏

面对对象&面向过程

面向过程

1.优点:性能比面对对象高,因为类的调用需要实例化,开销比较大
2.缺点:没有面对对象容易维护

面向对象
  1. 优点:易维护、易复用、易拓展、由于面对对象有封装继承多态的特性,可以设计出低耦合的程序
    2.缺点:性能比面向过程低

java的四个基本特性

1.抽象:把现实生活中的某一类东西提取出来,成为该类东西特有的共同特性,抽象壁板分为数据抽象和过程抽象,数据抽象是对象的属性,过程抽象是对象的行为特征。
2.封装:把客观事物进行封装成抽象类,该数据和方法只让可信的类操作,对不可信的类隐藏,封装分为属性封装和方法封装。

  1. 继承:从已有的类中派生出新的类,新的类吸收已有类的数据属性和行为,并能扩展新的能力
    4.多态:同一个行为具有多个不同表现形式或形态的能力,多态的前提是类与类之间必须存在关系,要么继承要么实现。
抽象类和接口的区别

1.抽象类和接口分别给出了不同的语法定义。
2.抽象是对类的抽象,接口是对行为的抽象。
3.抽象所体现的是继承关系,是一种“is -a ”关系,接口仅仅实现接口的定义的契约,是一种“like- a”关系
4.抽象是自底向上抽象的,接口是自顶向下设计出来的。

自动拆箱和装箱

Java采用了自动装箱和拆箱机制,节省了常用数值的内存开销和创建对象的开销,提高了效率
1.装箱:将基本数据类型包装成它们的引用类型
2.拆箱:将包装类型转换为基本数据类型

序列化和反序列化
  1. 可以将字节永久的保存在硬盘中,通常放在文件中
  2. 可以在网络上传送字节序列
  3. 两个线程在进行远距离通信时,彼此可以发送各种类型,发送方需要把java对象转换为字节序列,接收方字需要把字节序列再恢复为java对象。
编译和运行

1.编译时和运行时:

  1. 编译时类型和运行时类型

gc简述

当程序员创建对象时,gc就开始监控这个对象的地址,大小以及使用情况。通常,gc采用有向图的方式记录管理堆中所有的对象,通过这种方式确定哪些对象时“可达的”,哪些对象是“不可达的”。当gc确定一些对象为不可达时,gc就有责任回收这些内存空间。但是,位置保证GC能够在不同平台实现的问题,Java规范对gc的很对行为都没有进行严格规定。(青年代老年代gc回收机制。)

java中的4中引用类型

字符串相关

String、StringBuffer和StringBuilder
  1. String类使用数组保存字符串,所以String对象不可变。每次更改字符串都需要新建新的对象。
  2. StringBuffer类和StringBuilder类都是继承AbstractStringBuilder类。AbstractStringBuilder在更改字符串时不需要新建新的对象。消耗时间比String要短,性能好。但是StringBuffer比StringBuilder要稍微耗时一些。是因为StringBuffer中添加了同步锁,所以要求线程安全时要使用StringBuffer。
上一篇 下一篇

猜你喜欢

热点阅读