JAVA编程思想
张伯毅
某厂技术,Apache DolphinScheduler Committer.
专注于调度&实时&大数据体系~
展开
-
并发编程——原子性,可见性和有序性
1、原子性 即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 原子性就像数据库里面的事务一样,他们是一个团队,同生共死。 2、可见性 可见性是指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。 3、有序性 即程序执行的顺序按照代码的先后顺序执行。 ...原创 2021-07-04 15:53:50 · 222 阅读 · 0 评论 -
JAVA编程思想笔记 : 并发 [ 一 ]
程序中的所有事物,在任意时刻都只能执行一个步骤. 并发的多面性 并发解决的问题大体上可以分为"速度"和"设计可管理性"两种 并发通常是提高运行在单处理器上的程序的性能. 实现并发最直接的方式是在操作系统级别使用进程. 困难: 协调不同线程驱动的任务之间的对内存/IO 资源的使用. 以使得这些资源不会同时被多个任务访问. 改进代码设计 Java 的线程机制是...原创 2019-04-30 17:29:52 · 628 阅读 · 0 评论 -
JAVA编程思想笔记 : 并发 [ 三 ]
性能调优 lock 和 synchronized //: concurrency/SynchronizationComparisons.java package concurrency; /* Added by Eclipse.py */ // Comparing the performance of explicit Locks // and Atomics versus the ...原创 2019-05-06 10:26:10 · 613 阅读 · 0 评论 -
JAVA编程思想笔记 : 对象导论
前言: 程序设计其实是对复杂性的管理: 待解决问题的复杂性, 以及用来解决该问题的工具的复杂性. 减少开发健壮代码所需的时间以及困难. 抽象过程 程序可以通过添加新类型的对象,使其适用于某个特定问题. 万物皆对象. 程序时对象的结合. 每个对象都有自己的由其他对象所构成的存储. 每个对象都拥有其类型. 某一特定类型的所有对象都可以接口收同样的消息. 对象具有状态 ....原创 2019-04-25 18:20:33 · 338 阅读 · 0 评论 -
JAVA编程思想笔记 : 复用类
复用代码是 Java 众多引人注目的功能之一.但是想要成为机具革命性的语言,仅仅能复制代码并对之加以改变是不够的,它还必须能够做更多的事情. 组合语法 只需将对象引用置于新类中即可. 初始化引用位置 定义对象的地方,他们总是能够在构造器被调用之前初始化. 在类的构造器中 就在要使用这些对象之前, --- 惰性初始化 实例初始化 继承语法 除非已明确指出要从其他...原创 2019-04-30 10:55:44 · 308 阅读 · 0 评论 -
JAVA编程思想笔记 : 并发 [ 二 ]
死锁 任务之间相互等待的连续循环,没有哪个线程能继续. 这样称之为: 死锁 满足死锁的条件,为以下四种同时发生,如果想要破坏死锁,只需要破坏其中一条即可. 互斥条件.任务使用的资源中至少有一个是不能共享的. 至少有一个任务它必须持有一个资源且正在等待获取一个当前被别的任务持有的资源. 资源不能被任务抢占,任务必须把资源释放当做普通事件. 必须有循环等待,这时,一个任务等待其他任...原创 2019-05-06 06:24:25 · 619 阅读 · 0 评论 -
JAVA编程思想笔记 : 访问权限控制
如何把变动的事物与保持不变的事物区分开. 包:库单元 包内包含有一组类,它们在单一的名字空间之下被组织在了一起. 当编写一个 Java 源代码文件时,此文件通常被称为编译单元. 每个编译单元都必须有一个后缀名.java,而在编译单元内则可以有一个 public 类,该类的名称必须与文件的名称相同(包括大小姐,但不包括后缀名称.java). 每个编译单元只能有一个 publi...原创 2019-04-29 16:53:00 · 324 阅读 · 0 评论 -
JAVA编程思想笔记 : 初始化与清理
随着计算机革命的发展,"不安全"的编程方式已逐渐成为编程代价高昂的主因之一 用构造器确保初始化 方法重载 任何程序设计语言都具备的一项重要特性就是对名字的运用. 当创建一个对象时,就是给此对象分配到的空间取一个名字. 所谓的方法就是给某个动作取名字. 方法名相同且形式参数不同的构造器. 构造器的名字由类名决定,所以只能有个构造器名字,如何多种方式创建对象....原创 2019-04-28 18:44:28 · 450 阅读 · 0 评论 -
JAVA编程思想笔记 : 控制执行流程
就像有知觉的生物一样,程序必须在执行的过程中控制它的世界.并作出选择 Java 使用了 C 的所有流程控制语句. true 和 false if-else 迭代 ( while / do-while / for/ foreach) while 和 do-while 区别: do-while 中的语句至少会执行一次. return 分支无需...原创 2019-04-28 11:30:29 · 212 阅读 · 0 评论 -
JAVA编程思想笔记 : 操作符
在最底层,Java 中的数据是通过使用操作符来操作的. 更简单的打印语句 System.out.println(" Rather a lot to type "); 使用 Java 操作符 操作符 : 接受一个或多个参数, 并生成一个新值. 优先级 优先级决定各个部分操作符的计算顺序. 赋值 取右边的值,把它复制给左边的值. 右值可以是任意常数/...原创 2019-04-26 18:29:06 · 348 阅读 · 0 评论 -
JAVA编程思想笔记 : 一切都是对象
尽管 Java 是基于 C++的, 但相比之下,Java 是一种更"存粹"的面向对象的程序设计语言. 用引用操纵对象 遥控器(引用) --- 电视机(对象) 必须由你创建所有对象 1.存储到什么地方 寄存器: 最快, 位于处理器内部.容量有限,不受控制. 程序无法感知. 堆栈:RAM 中. 通过堆栈指针控制. 向下移动,分配内存, 向上移动,释放内存. ...原创 2019-04-26 17:14:56 · 355 阅读 · 0 评论