kotlin(1)-HelloWorld
来源:互联网 发布:mysql常用指令 编辑:程序博客网 时间:2024/06/03 15:02
新人报道–Kotlin(HelloWorld)
本人大三,是新人,需要大神们多多指教哈!
今天是我第一次发blog,,也是java的生日,先祝我们的CafeBaby 生日快乐。
- Kotlin–Hello World!
- 与Java相比
- 运行所加载的类
- 加载额外的类
- 查看类的结构
- 用java反编译器查看
Kotlin–Hello World!
当单一的Java开发已经无法满足当前软件的复杂需求时,越来越多基于Java虚拟机的语言开发被应用到软件项目中,Java平台上的多语言混合编程正成为主流,每种语言都可以针对自己擅长的方面更好地解决问题。
昨天刚接触了下一门运行在jvm上的语言—kotlin,他的语法与java相比下,简单易懂。
所以做了个简单测试HelloWorld,我是使用eclipse,用习惯了。
fun main(args: Array<String>) { println("HelloWorld!") }
这个结构与public static void main(String args[]){….}有点相似。
输出结果必然是“HelloWorld!”。
与Java相比
Kotlin与java语言都是运行在jvm上的语言,既然运行在jvm之上运行,那必须符合jvm的排序规则,编译加载.class文件(关于类加载机制过程就不详细讲解了,过段时间专门写一个关于这样的专题)。
我就很好奇它的加载过程,我就做了个测试,代码很简单。
Kotlin:
fun main(args: Array<String>) { println("HelloWorld!") }
Java:
public static void main(String[] args) { System.out.println("Hello World"); }
代码很简单
运行所加载的类
Kotlin:
Java:
前面加载的一模一样,但是往后看就会发现不同。
加载额外的类
java:
到此加载完毕后输出结果
Kotlin:
它加载并没有结束,还通过sun.misc.URLClassPath$JarLoader去加载额外的jar包
[Loaded sun.security.util.SignatureFileVerifier from C:\Program Files\Java\jre1.8.0_101\lib\rt.jar][Loaded sun.security.util.ManifestEntryVerifier from C:\Program Files\Java\jre1.8.0_101\lib\rt.jar][Loaded kotlin.jvm.internal.Intrinsics from file:/F:/eclipse/configuration/org.eclipse.osgi/1310/0/.cp/lib/kotlin-runtime.jar][Loaded kotlin.KotlinNullPointerException from file:/F:/eclipse/configuration/org.eclipse.osgi/1310/0/.cp/lib/kotlin-runtime.jar]
加载了kotlin.jvm.internal.Intrinsics这个类从kotlin-runtime.jar里。
我那时候发现[Loaded kotlin.jvm.internal.Intrinsics…,这个是kotlin中的一个类,但是很好奇的是代码中没有出现或者说没有去声明。
查看类的结构
我比较好奇这个类为什么会被加载,我拿出Kotlin编译好的class文件,看了下他的结构:
很惊奇的发现这个类确实被加载进来引用
也发现了Helloworld这个类是被final修饰的(kotlin生成类的规范, 包含类、方法、变量, 默认是final等),我还想查看个究竟,通过反编译查看这个代码。
用java反编译器查看
后来发现这个类是在运行时检查参数是否为空值,null检查与kotlin语法的关系生成的java类名与kotlin文件名的对应关系。在应用上来看,kotlin的语法的确比较简单易用(本人目前来看),但是我相信每种语言都可以针对自己擅长的方面更好地解决问题。
关于kotlin的一些知识或者我个人对他的一些看法会持续更新喔,欢迎大家来多多提意见哈!
由于这是本人第一次写博客,需要大家多多指教。有啥意见问题多留言哈!
- kotlin(1)-HelloWorld
- Kotlin 学习1-HelloWorld
- kotlin 学习之 HelloWorld
- Kotlin基础教程-HelloWorld
- kotlin入门(一)helloworld
- Kotlin入门教程系列(一)Kotlin HelloWorld
- Kotlin入门第一弹---HelloWorld
- 《Kotlin 程序设计》第二章 快速开始:HelloWorld
- Android Studio 下的Kotlin HelloWorld
- Kotlin(1)
- Kotlin ---- 环境搭建和命令行编译运行HelloWorld
- Kotlin学习笔记(一)环境配置HelloWorld
- 《Kotlin极简教程》第二章 快速开始:HelloWorld 配图
- 《Kotlin极简教程》第2章 快速开始:HelloWorld
- kotlin实现我的第一个程序HelloWorld!
- Kotlin入门(1)搭建Kotlin开发环境
- Kotlin学习(1):Kotlin简介
- 1 Introduction To Kotlin
- java 设计模式之建造者模式(Builder)模式
- 菜鸟的测试道路
- 深入理解Kotlin
- Linux学习(Shell基础)
- 程序设计教程第二版(钱能)1.9 练习1 第2题个人练习答案
- kotlin(1)-HelloWorld
- sql server 数据库中null 转换为 0
- 当tomcat遇到多ajax同时调用
- 不吃变质食物.........
- Kotlin基础入门
- Spring MVC 基于Method的映射规则(注解版)
- 网络爬虫基本原理
- 【mysql】sql语句的更新和截取
- linux 线程取消以及条件变量锁的释放