关于java:Java-初识篇笔记一

34次阅读

共计 2030 个字符,预计需要花费 6 分钟才能阅读完成。

大家好,我是 Joeyzx7000

长处(喜爱人或物件,得须要晓得爱好或者劣势)


  1. 封装:将其事物的具体实现逻辑加以封装起来,并对外只提供该业务性能接口。简化三方应用。
  2. 继承:程序中通过继承的形式(extends、implement),让其子类具备父类的个性。
  3. 多态:程序中通过封装、继承的形式来达到事物的多态模型。比方重载与重写就是多态的体现。

形成


根本数据类型
  1. 数据类型:byte、short、int、long
  2. 浮点类型:float、double
  3. 字符类型:char
  4. 布尔类型:boolean
数组
Collection

List、Set、Queue

Map

HashMap、HashTable、CourrentHashMap、LinkedHashMap、TreeMap

类加载


程序执行过程
  1. 编译:将其 java 文件转换为 class 文件;
  2. 验证:测验 java 文件语法是否正确;
  3. 筹备:对其动态属性润饰的变量与代码块,调配办法区内存空间;
  4. 解析:将常量池的符号替换为间接援用的过程;
  5. 初始化:对象新建并创立对应的堆栈空间;
  6. 运行:bean 周期的运行空间;
加载形式
  • 显示加载:class.forName() 办法创立;
  • 隐式加载:通过 new 创建对象;
类加载器
  • 疏导类加载器(Bootstrap)
  • 扩大类加载器(Exetensions)
  • 利用类加载器(Application/System)
双亲委派模型

一个类加载器接管到类加载申请的时候,该类加载器首先不会本人去加载,而是把这个申请交由给父类加载器去执行。如果父类无奈加载该类,则交由给子类加载器去实现加载。如果子类加载器无奈加载该类,则会报错 classNotFoundException 异样。

反向委派机制

JVM


结构构造
  • 堆:内存共享区,存储对象的实例和数组。物理地址是不间断的,所以性能比较慢。内存是在程序运行期间确认的。个别内存远大于栈。
  • 办法区:存储动态变量、常量池、字符串池
  • 栈:办法执行的线程模型,生命周期与线程雷同,次要存储局部变量表、操作数栈、办法进口、动静链接。物理地址是间断的,满足先进后出的准则,性能快。
  • 本地办法栈:Native 办法
  • 程序计数器:字节码的行号指示器
垃圾回收机制
原理

创建对象时,GC 开始监控这个对象的地址、大小以及应用状况

回收形式

可达性剖析:主动回收机制

System.gc():被动回收机制

回收算法

标记革除:标记无用对象,进行革除操作

复制:依照容量大小划分为两个大小雷同的区域,当一块用完的时候将活着的对象复制到另一块上,而后把已应用的内存空间一次清理掉

标记整顿:标记无用对象,让所有存活对象都向一端挪动,而后间接革除掉端边界以外的内存

分代:新生代采纳复制,老年代采纳的是标记整顿

拷贝
  • 浅拷贝:只是减少一个指针,指向已存在的内存地址
  • 深拷贝:既减少指针,也减少新的内存
内存溢出

不再被应用的对象或者变量始终被占据在内存中,长生命周期存在,援用短生命周期,迟迟不开释。

线程


创立形式
  • 无返回值:Tread、Runnable
  • 返回值:Callable

面向接口编程档次清晰,编码简单;thread 编程简略,然而不能继承其它父类

状态

新建、就绪、运行、阻塞、死亡、期待

同步办法
synchronized

代码块、办法

volatile

提供变量内存的可见性(没有存储在寄存器中),不会提供原子操作。可防指令重排序(程序在实例化一个对象能够分为三个步骤:分配内存空间、初始化对象、将内存空间的地址赋值给对应的援用,然而因为零碎的指令重排序,会将第三步与第二步调换)。

reentrantLock

可重入、互斥、是否偏心锁选取

原子变量(atomic)

即便命令波及多个操作,这些操作顺次执行

关键词
synchronized
锁类型
  1. 偏差锁:同一线程获取锁后,持续始终占用锁的状态。
  2. 轻量锁:多线程解决时,这时锁 cas 操作时,锁会自旋,缩小用户态与外围态之间的替换,用于占用工夫较少的线程
  3. 分量锁:多线程解决时,锁自旋到肯定水平,会转变为重量级锁,会阻塞线程。
优化
  • 自旋操作:筹备获取锁的线程不会立刻阻塞,而是采纳循环的形式去尝试获取锁。
  • 锁革除与锁粗化
CountDownLatch

一个或者多个线程,期待其余多个线程实现某件事情之后能力执行

CyclicBarrier

多个线程相互期待,直到达到同一个同步点,再持续一起执行

IO


类型
  • 文件:file
  • 字节:inputStream/ outputStream
  • 字符:inputReader/ outputWriter
  • 网络:Socket
  • 对象:Serializable
  • 新的输出与输入:NIO
编码

UTF-8、GBK、UTF-16be

模式
BIO

同步阻塞 IO,实用于链接数目小且固定的框架

NIO

同步非阻塞 IO,selector 多路复用器,外围组件(channel[涵盖了 TCP、UDP 网络 IO 及其文件 IO]、buffer、selector 组成)。实用于链接数目多且连贯比拟短(轻操作)的架构

AIO

异步非阻塞 IO,事件驱动模式进行的。实用于链接数目多且连贯比拟长(重操作)的架构。

正文完
 0