rokevin
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
  • 静态强类型

    • Java
    • Kotlin
    • Dart
    • Swift
  • 静态弱类型

    • C语言
    • C++
  • 动态强类型

    • Python
  • 动态弱类型

    • JavaScript
    • PHP

Kotlin

作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试? 使用Kotlin进行Android开发。

基本资料

官网 | 官方PlayGround | 中文网站 | Android Kotlin | Kotlin面试

协程

流

模块

字符串 循环 lambda表达式

google教程

https://codelabs.developers.google.com/advanced-android-kotlin-training/

中文教程

https://www.kotlincn.net/docs/reference/

对比Java,Kotlin的优点和缺点

https://www.jianshu.com/p/69e0d1f20dfb

菜鸟教程

https://www.runoob.com/kotlin/kotlin-tutorial.html

Kotlin Blog

https://www.kotliner.cn/

kotlin

官方网站

http://ko..tlinlang.org/docs/reference/

中文教程网站

http://www.kotlindoc.cn/

https://www.kotlincn.net/docs/reference/

https://www.kotlincn.net/docs/tutorials/android-frameworks.html#butterknife

组件

WebView

as使用kotlin+anko设置布局,代替xml使用方法

https://www.jianshu.com/p/6147d4125d31

资料

https://blog.csdn.net/lkl22/article/details/76625253

1.kotlin官方中文翻译文档网址:

https://www.kotlincn.net/docs/reference/

2.Kotlin官网

http://kotlinlang.org/

3.kotlin中文官网

https://www.kotlincn.net/

4.kotlin的gitbook网址

https://www.gitbook.com/book/hltj/kotlin-reference-chinese/details

5.视频教程地址:

https://zhuanlan.zhihu.com/p/23101437

6.入门博客地址:

http://www.jianshu.com/p/cf1f96c56150

http://droidyue.com/blog/2017/05/18/why-do-i-turn-to-kotlin/?from=timeline&isappinstalled=0

Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。 JetBrains,作为目前广受欢迎的 Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。 创建一种兼容 Java的语言 让它比Java更安全,能够静态检测常见的陷阱。如:引用空指针 让它比Java更简洁,通过支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等实现。 让它比最成熟的竞争对手 Scala语言更加简单

Java虚拟机已经不再是仅仅局限在 Java 了,很多语言提供了脚本转换,可以让其他的程序在java虚拟机上运行,这样能够让更多的开发者能够依靠JVM在Java平台上大有作为。而且虚拟机以及 对应的字节码都是开源的,所以你也能很容易地生成对应字节码来做一款属于你自己的编程语言。我们今天来看看以下9种新的编程语言。

Groovy Groovy是一个被编译成字节码的面向对象的语言。它的语法风格与java很像,但是又没java那么混乱。Java程序员能够很快的熟练使用 Groovy;实际上,Groovy编译器是可以接受完全纯粹的Java语法格式的,这样能够让程序员在学习Groovy时不需要学习任何新语法。需要注 意使用Groovy的一个重要特点就是使用类型推断,即能够让编译器能够在程序员没有明确说明的时候推断出变量的类型。同时Groovy也提供了一个高级 架构来解决字符串处理,xml的序列化与反序列化以及单元测试等等 -- 所有的这一切好处都能为程序员节约不少时间。

JRuby JRuby是用来桥接Java与Ruby的,它是使用比Groovy更加简短的语法来编写代码,能够让每行代码执行更多的任务。就和Ruby一 样,JRuby不仅仅只提供了高级的语法格式。它同样提供了纯粹的面向对象的实现,闭包等等,而且JRuby跟Ruby自身相比多了很多基于Java类库 可以调用,虽然Ruby也有很多类库,但是在数量以及广泛性上是无法跟Java标准类库相比的。

Jython Jython,aka JPython,属于第一种专门为JVM专用的脚本语言。它能够用Python语言来高效生成动态编译的Java字节码。一些可选的静态编译方式能够被用 来开发applets,servlets,以及beans。作为Jython的首席程序员,Jim Hugunin,现在已经停止了Jython的相关工作而去微软干活。所以这门语言的发展仅仅也就从2005-2008年,所以就现在看来Jython已 经无法与Groovy以及JRuby作为对手了。现在Jython可以在一些商业应用中找到,也已经得到了WebSphere Application Server以及IMB的商业Java EE产品部门的官方支持。

Clojure Clojure是纯粹的函数式编程语言。与Scala类似,Clojure已经有很多内置的并行运行基础建设能够让很多方法同时执行。Clojure也是 被设计为生成通用语言,能够生成.NET以及JavaScript。虽然Clojure也能被直接编译成Java字节码,但是无法使用动态语言特性以及直 接调用Java类库。与其他的JVM脚本语言不一样,Clojure并不算是面向对象的。

Scala Scala经常被我们描述为多模式的编程语言,因为它混合了来自很多编程语言的元素的特征。但无论如何它本质上还是一个纯粹的面向对象语言。它相比传统编 程语言最大的优势就是提供了很好并行编程基础框架措施了。这是唯一一个在JVM中拥有actors -- 另一种并行编程代码生成器。Scala代码能很好的被优化成字节码,运行起来和原生Java一样快。

Kotlin Kotlin是静态类型的语言,也可以编程成Java字节码以及JavaScript,作为一个时髦又表现丰富的编程语言,Kotlin就是被设计用来生 产高性能要求的程序的,所以运行起来和Java也是不相上下。Kotlin可以从 JetBrains InteilliJ Idea IDE这个开发工具以插件形式使用。

Rhino Rhino是使用Java编写的开源的JavaScript引擎。当前是Mozilla公司在主导它的发展,Rhino的特点是为JavaScript加 了个壳,然后嵌入到Java中,这样能够让Java程序员直接使用。其中Rhino的JavaAdapters能够让JavaScript通过调用 Java的类来实现特定的功能。

Ceylon Ceylon是一个通用的,静态类型编程语言,也是基于阻塞以及面向对象的。据说这个语言深受Java的影响,而且它一开始就是被Red Hat公司设计为给大型团队合作完成大型项目来的。Ceylon的主要努力方向是将语言变得更加可读,更加可预期,更加工具化以及更加模块化。据 Gavin King所说,Ceylon将不仅仅只是个编译器,而将是一个可以取代Java SDK的新Ceylon SDK。

Fantom Fantom能够在运行时为JVM以及.NET或者JavaScript平台生成字节码,Fantom是与Groovy以及JRuby差不多的一样面向对 象的编程语言,但是悲剧的是Fantom无法使用Java类库,而是使用它自己扩展的类库。忘了说Fantom也包括actors,而且它最大的优势就是 在网站上有一个非常完备卓越的API文档系统。 。

问题

Android kotlin 点击事件防重复

有哪些特点, kotlin有,但是Java没有?

null safety.

Operator overloading.

Coroutines.

Range expressions.

Smart casts.

Companion objects.

资料

集合过滤

kotlin协程-Android实战

https://mp.weixin.qq.com/s/wrR-Mn6HFW0zqFUxVnU3KQ https://play.kotlinlang.org/#eyJ2ZXJzaW9uIjoiMS4zLjYwIiwicGxhdGZvcm0iOiJqYXZhIiwiYXJncyI6IiIsImpzQ29kZSI6IiIsIm5vbmVNYXJrZXJzIjp0cnVlLCJ0aGVtZSI6ImlkZWEiLCJjb2RlIjoiLyoqXG4gKiBZb3UgY2FuIGVkaXQsIHJ1biwgYW5kIHNoYXJlIHRoaXMgY29kZS4gXG4gKiBwbGF5LmtvdGxpbmxhbmcub3JnIFxuICovXG5cbmZ1biBtYWluKCkge1xuICAgIHByaW50bG4oXCJoZWxsb1wiKVxufSJ9 https://www.jianshu.com/p/48a76d31f3ca

进程,线程,协程,管程,纤程的理解

进程 线程 协程 管程 纤程 进程 进程的定义: 狭义定义:进程就是程序的执行过程。、 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。 操作系统引入进程的概念的原因: 从理论角度看,是对正在运行的程序过程的抽象; 从实现角度看,是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。 进程的特征: 动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。 并发性:任何进程都可以同其他进程一起并发执行 独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位; 异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进 结构特征:进程由程序、数据和进程控制块三部分组成。 多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。 进程的状态: 就绪状态(Ready;运行状态(Running);阻塞状态(Blocked) 为了使多个程序能够并发(同一时刻只有一个在运行,但感觉起来像多个同时运行;并行(同一时刻真的多个在运行,不是感觉像多个))的执行,操作系统需要一个结构来抽象和表示这个程序的运行。 进程是操作系统对一个正在运行的程序的一种抽象结构。 进程是指在操作系统中能独立运行并作为资源分配的基本单位,由一组机器指令、数据和堆栈等组成的能独立运行的活动实体。 操作系统可以同时运行多个进程,多个进程直接可以并发执行和交换信息。 进程在运行是需要一定的资源,如CPU、存储空间和I/O设备等。 线程 概念: 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 特点: 在多线程OS中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。线程具有以下属性:轻型实体;独立调度和分派的基本单位;可并发执行;共享进程资源 进程是资源分配的基本单位,进程的调度涉及到的内容比较多(存储空间,CPU,I/O资源等,进程现场保护),调度开销较大,在并发的切换过程效率较低。为了更高效的进行调度,提出了比进程更轻量的独立运行和调度的基本单位。 线程比进程更轻量 线程能独立运行,独立调度,拥有资源(一般是CPU资源,程序计数器等) 线程调度能大幅度减小调度的成本(相对于进程来说),线程的切换不会引起进程的切换 线程的引入进一步提高了操作系统的并发性,线程能并发执行 同一个进程的多个线程共享进程的资源(省去了资源调度现场保护的很多工作) 协程 协程不是进程或线程,其执行过程更类似于子例程,或者说不带返回值的函数调用。 协程是用户模式下的轻量级线程,操作系统内核对协程一无所知 协程的调度完全有应用程序来控制,操作系统不管这部分的调度 一个线程可以包含一个或多个协程 协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下纹和栈保存起来,在切换回来时恢复先前保运的寄存上下文和栈 协程能保留上一次调用时的状态 Windows下的实现叫纤程 管程 概念: 管程 (英语:Monitors,也称为监视器) 是一种程序结构,结构内的多个子程序(对象或模块)形成的多个工作线程互斥访问共享资源。这些共享资源一般是硬件设备或一群变量。 组成: 管程的名称;局部于管程内部的共享数据结构说明;对该数据结构进行操作的一组过程;对局部于管程内部的共享数据设置初始值的语句。 管程实现了在一个时间点,最多只有一个线程在执行管程的某个子程序。与那些通过修改数据结构实现互斥访问的并发程序设计相比,管程实现很大程度上简化了程序设计 系统中的各种硬件资源和软件资源,均可用数据结构抽象地描述其资源特性,即用少量信息和对资源所执行的操作来表征该资源,而忽略了它们的内部结构和实现细节。 利用共享数据结构抽象地表示系统中的共享资源,而把对该共享数据结构实施的操作定义为一组过程。 临界资源的概念: 一次只允许一个进程访问的资源;多个进程只能互斥访问的资源 管程就是代表共享资源的数据结构以及由对该共享数据结构实施操作的一组过程所组成的资源管理程序共同构成的一个操作系统的资源管理模块。管程被请求和释放临界资源的进程所调用。 管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程和改变管程中的数据。 纤程 为了帮助各公司更快、更正确地将他们的代码移植到Windows,Microsoft ,在操作系统中增加了纤程(Fiber)。线程与纤程对比,有如下的特性:

线程是在Windows内核中实现的,操作系统会根据系统的调度算法对线程进行调度。 纤程是在用户模式下实现的,内核对纤程一无所知。 纤程是更轻量级的线程,一个线程可以包含一个或多个纤程 内核会对线程进行抢占式调度,线程一次只能执行一个纤程的代码(具体执行哪一个纤程由用户调度算法决定) 纤程的调度与线程的调度没有直接关系,操作系统随时可能会夺取纤程所在线程的运行权 除非正在运行的纤程显式的切换到另一个纤程,否则其他纤程将无法运行 Windows有一套API来讲线程转换为纤程或者在同一个线程里面创建多个纤程

最近更新:: 2025/10/21 10:00
Contributors: luokaiwen, 罗凯文
Prev
Java
Next
Dart