java基础
文章平均质量分 89
tulensa
苦逼的 Android开发工程师
展开
-
【JAVA 学习笔记】java并发-线程安全与锁优化
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、概述面向过程编程:以算法为核心的,程序员会把数据和过程分别作为独立的部分来考虑,数据代表问题空间中的客体,程序代码则用于处理这些数据,这种思维方式直接站在计算 机的角度去抽象问题和解决问题面向对象编程:在现实世界的角度去抽象和解决问题,它把数据和行为都看作对象的一部分,这样可以让程序员能以 符合现实世界的思维方式来编写和组织程序。想极大地提升了现代软件开发的效率原创 2021-12-24 15:28:53 · 121 阅读 · 0 评论 -
【JAVA学习笔记】java并发-内存模型及线程 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、概述多任务处理在现代计算机操作系统中几乎已是一项必备的功能了对于计算量相同的任务,程序线程并发协调得越有条不紊,效率自然就会越 高;反之,线程之间频繁争用数据,互相阻塞甚至死锁,将会大大降低程序的并发能力。二、硬件的效率与一致性1.物理机对并发的处理方案绝大多数运算任务不能只靠处理器“计算”来完成。处理器至少要与内存交互,无法仅靠寄存器来完成所有运算任务。存储原创 2021-12-24 15:26:45 · 262 阅读 · 0 评论 -
【JAVA 学习笔记】java垃圾回收机制 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、概述为什么要了解垃圾回收?当需要排查各种内存 溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动 化”的技术实施必要的监控和调节垃圾回收主要关注的内存区域?程序计数器、虚拟机栈、本地方法栈:3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。因此这几个区域的内存分配和回收都具备确定性原创 2021-12-24 15:24:56 · 259 阅读 · 0 评论 -
【JAVA 学习基础】java内存区域 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、概述Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。(这个比喻真是绝了java开发不必亲自管理每个new出来的对象的生命周期好处是大大方便了开发。坏处是一旦出现问题,如果不够熟悉虚拟机的机制,排查难度会大大增加。二、运行时数据区域1.内存区域划分内存区域划分大致如下:![image.png](h原创 2021-12-24 15:22:43 · 716 阅读 · 0 评论 -
【JAVA 学习笔记】java类文件及类加载 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、类文件结构说实话这东西真的非常枯燥,就像一个字典一样。类文件结构(.class文件)是java平台无关性的基石。“.class文件”也并非特指某个存在于 具体磁盘中的文件,而应当是一串二进制字节流,就是它可以不是一个确切的文件。从定义好 .class 文件的结构开始(97年,和笔者差不多大了),这么多年它的结构一直没有大的重构过,这确实是很不容易的一件事。不过了解了它的实现原创 2021-12-24 15:19:16 · 297 阅读 · 0 评论 -
【JAVA 学习笔记】HashMap 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、概述HashMap是Map的一种,它的继承结构如下:public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable{...}Map是一种多对多的结构,Java里面的Map是Key-valu原创 2021-12-24 15:16:22 · 480 阅读 · 0 评论 -
【JAVA学习笔记】TreeMap 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言,理性讨论。一、红黑树虽然谈红色变,但是对于 TreeMap 确实是不谈不行,因为 TreeMap 的底层实现就是 红黑树。这里贴一段对红黑树的介绍吧,实际上主要是要了解红黑树的性质,至于具体的实现,还是不要花太多时间了。红黑树顾名思义就是节点是红色或者黑色的平衡二叉树。它通过颜色的约束来维持着二叉树的平衡。对于一棵有效的红黑树二叉树而言我们必须增加如下规则:1. 每个节点都只能是红原创 2021-12-24 15:14:20 · 142 阅读 · 0 评论 -
【JAVA 学习笔记】ArrayList 探究
前言文章仅是笔者个人的学习笔记,存在一些只有笔者个人能看到的用词或者描述,如果有不明确的地方,欢迎留言理性讨论。一、概述Arraylist不是线程安全的,但是java有提供同步创建的方法:Collections.synchronizedList(new ArrayList(...));,关键点看起来是 RandomAccess 这个接口,默认初始容量是10,在添加大容易之前,可以使用 ensureCapacity 来提前确定需要的容量及扩容,避免递增式的扩容和拷贝,(从1直接到N,避免1、2、3原创 2021-12-24 15:11:31 · 98 阅读 · 0 评论