SF
TOUR OF SCALA/JAVA
TOUR OF SCALA/JAVA
注册登录
关注博客
注册登录
主页
关于
RSS
【Java并发】线程安全性
gcusky
2019-02-16
阅读 3 分钟
2k
定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。
【Java并发】Runnable、Callable、Future、FutureTask
gcusky
2018-08-24
阅读 5 分钟
2.9k
这两种方式都有一个缺点:在执行完成任务之后,无法直接获取到最后的执行结果。如果需要获取执行结果,就必须通过共享变量或线程通信的方式来达到想要的效果,较为麻烦。
【Java定时任务调度工具】Quartz
gcusky
2018-07-20
阅读 5 分钟
4.9k
笔记来源:IMOOC Java Quartz Quartz 简介 OpenSymphony 提供的强大的开源任务调度框架 纯 Java 实现,精细控制排程 Quartz 特点 强大的调度功能 灵活的应用方式 分布式和集群能力 主要用到的设计模式 Builder 模式 Factory 模式 组件模式 链式写法 Quartz 三个核心概念 调度器 任务 触发器 Quartz 体系结构 重要组成 Jo...
【Java定时任务调度工具】Timer
gcusky
2018-07-18
阅读 6 分钟
3.6k
笔记来源:IMOOC Java Timer 定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务。 Timer 定义 一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。 有且仅有一个后台线程对多个业务线程进行定时定频率的调度。 Timer 主要构建 Timer 主要成分 Tim...
【Scala谜题】继承
gcusky
2018-06-07
阅读 3 分钟
2k
Scala 支持面向对象的编程概念,继承是它的一个很重要的特征。继承通常对父类和特质中定义的缺省值的重载很有用。当增加多级继承时事情变得更加有趣,例如下面这段程序。
【Java注解】注解基础
gcusky
2018-05-30
阅读 2 分钟
2.4k
笔记来源:IMOOC Java注解 注解的分类 按照运行机制分 源码注解:注解只在源码中存在,编译成 .class 文件就不存在了 编译时注解:注解在源码和 .class 文件中都存在 运行时注解:在运行阶段还起作用,甚至会影响运行逻辑的注解 按照来源分 来自JDK的注解 来自第三方的注解 我们自己定义的注解 元注解:给注解进行注解 ...
【Akka扩展】Akka Extensions
gcusky
2018-05-14
阅读 3 分钟
2.7k
如果你想为 Akka 添加功能,那么有一个非常优雅且功能强大的机制。它被称为 Akka 扩展(Akka Extensions),由2个基本组件组成:Extension 和 ExtensionId。
【Scala反射】Environment、Universe 和 Mirror
gcusky
2018-05-08
阅读 5 分钟
4.4k
反射环境(Environment)根据反射任务是在运行时还是在编译时而有所不同。在运行时或编译时使用的环境之间的区别被封装在一个所谓的universe中。 反射环境的另一个重要方面是我们可以反射访问的一组实体。 这组实体由所谓的mirror确定。
【Scala反射】反射概述
gcusky
2018-05-05
阅读 7 分钟
6.2k
Reflection 是一种程序检查,甚至可能是自我修改的能力。 它在面向对象、函数式和逻辑编程范例方面有着悠久的历史。虽然只有一些语言是以反射为指导原则,但随着时间的推移,许多语言逐渐发展出反射能力。
【Scala谜题】成员声明的位置
gcusky
2018-04-26
阅读 1 分钟
1.6k
笔记来源:Scala谜题 在许多面向对象的语言中,常常在类构造器中接受参数,目的是将参数赋值给类成员。 执行下面的代码会是什么结果呢? {代码...} 答案是: {代码...} 通常,BConstructor 中的模式是首选的,因为它的行为更少可能会引起意外。这时,超类中声明的 val 绝不会存在于非初始化的状态。 其实,超类和超特质...
【Scala谜题】初始化变量
gcusky
2018-04-24
阅读 1 分钟
2.4k
Scala 会让你对简单的单值赋值的 val 和 var 使用大写变量名,如例子中的 MONTH 和 DAY。当第二条语句用大写变量名技巧性地给多变量赋值的时候,这种技巧就引起了程序例外,因为多变量赋值是基于模式匹配的,而在一个模式匹配中,以大写字母开头的变量有着特别的含义:它们是静态标识符,静态标识符是用来匹配常量;相反...
【Scala谜题】使用占位符
gcusky
2018-04-23
阅读 2 分钟
2.7k
Scala 特别强调要书写简单、简洁的代码。匿名函数的语法 arg => expr,使它很容易用最小模板构建函数字面量,甚至函数由多个语句组成时也一样可以。
【Java反射】Java 泛型基础
gcusky
2018-04-19
阅读 4 分钟
1.6k
笔记来源:IMOOC 反射 Java Reflect 综述 Class类的使用 方法的反射 成员变量的反射 构造函数的反射 类加载机制 Class 类的使用 在面向对象的世界里,万事万物皆对象。 但在Java里面有两样东西不是对象:静态的成员、普通数据类型类(但它们有封装类弥补) 类是对象,类是 java.lang.Class 的实例对象(There is a class...
【Java并发】浅析 AtomicLong & LongAdder
gcusky
2018-04-16
阅读 3 分钟
2.7k
AtomicLong {代码...} unsafe {代码...} var1 调用原方法 incrementAndGet 即自身的对象 var2 原对象当前(工作内存中的)值 var4 要加上去的值 var6 调用底层方法 getLongVolatile 获得当前(主内存中的)值,如果没其他线程修改即与 var2 相等 compareAndSwapLong var2 与 var6 为什么可能会不一样? 在并发环境下,工...
【Scala之旅】隐式参数和隐式转换
gcusky
2018-04-12
阅读 3 分钟
2.4k
本节翻译自 Implicit Parameters Implicit Conversions 综述:隐式转换和隐式参数是Scala的两个功能强大的工具,在幕后处理很有价值的工作。利用隐式转换和隐式参数,你可以提供优雅地类库,对类库的使用者隐藏那些枯燥乏味的细节。
【Java并发】Java并发编程与高并发基础概念
gcusky
2018-04-09
阅读 4 分钟
2.7k
并发:同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或者换出内存,这些线程是同时“存在”的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行。
【Scala之旅】类型参数
gcusky
2018-04-07
阅读 7 分钟
2.7k
本节翻译自 Generic Classes Variances Upper Type Bounds Lower Type Bounds Polymorphic Methods 综述:在Scala中,你可以用类型参数来实现类和函数,这样的类和函数可以用于多种类型;你可以指定类型如何根据其类型参数的变化而变化。
【Scala之旅】样例类与模式匹配
gcusky
2018-04-07
阅读 5 分钟
2.7k
本节翻译自 Case Classes Pattern Matching 综述:模式匹配是一个十分强大的机制,可以应用在很多场合:switch 语句、类型查询,以及“析构”(获取复杂表达式中的不同部分)。样例类针对模式匹配进行了优化。
【Scala之旅】高阶函数
gcusky
2018-04-02
阅读 6 分钟
2.5k
本节翻译自 Type Inference Higher-order Functions Nested Methods Multiple Parameter Lists (Currying) 综述:Scala混合了面向对象和函数式的特性。在函数式编程语言中,函数是“头等公民”,可以像任何其他数据类型一样被传递和操作。在本节中,我们将会看到如何通过那些使用或返回函数的函数来提高我们的工作效率。
【Scala之旅】参数与操作符
gcusky
2018-04-01
阅读 4 分钟
1.8k
参数 level 有一个默认值,所以它是可选的。在最后一行,参数 "WARNING" 覆盖默认参数 "INFO"。你可能在Java中使用重载方法,可以使用带有可选参数的方法来实现相同的效果。但是,如果调用者省略了一个参数,那么必须指定任何下列参数。
【Scala之旅】控制结构和注解
gcusky
2018-03-31
阅读 4 分钟
2.1k
Scala提供了一个轻量级符号 for 表示序列推导。推导式的形式为 for (enumerators) yield e,其中 enumerators 是指以分号分隔的枚举器列表。枚举器是一个引入新变量的生成器,或者是一个过滤器。推导式求解出由枚举器生成的每个绑定的主体 e,并返回这些值的序列。
【Scala之旅】特质与高级类型
gcusky
2018-03-30
阅读 4 分钟
2.2k
本节翻译自 Traits Abstract Types Self-type Compound Types 综述:在本节中,你将学会如何使用特质;以及抽象类型、自身类型和复合类型这几个高级类型。 特质 特质用于在类之间共享接口和字段。它们类似于Java 8的接口。类和对象可以扩展特征,但是特质不能被实例化,因此没有参数。 定义特质 一个最小的特质就是关键...
【Scala之旅】类与对象
gcusky
2018-03-30
阅读 7 分钟
1.9k
本节翻译自 Classes Class Composition with Mixins Inner Classes Singleton Objects 综述:本节中你将会学习如何使用Scala实现类,以及Scala相比Java更加精简的表示法带来的便利。同时介绍了object的语法结构(Scala没有静态方法或静态字段,但object可以达到同样的效果)。
【Scala之旅】基础知识
gcusky
2018-03-30
阅读 7 分钟
2.2k
本节翻译自 Introduction Basics Unified Types 综述:介绍了什么是Scala,Scala的基础语法、类型层次结构,以及包和引入。 简介 欢迎光临 此旅途包含了一些精简的介绍:介绍Scala最常用的功能。它旨在帮助新手学习这门语言。 这只是一个简短的介绍,而不是一个完整的语言教程。如果可以的话,考虑买本书或查阅其他资源...