在以前,你要是问我最不喜欢的语言是什么,我肯定回答是Java。
为什么呢?
在最开始,我在决定学一门语言时,看了一个主流语言的介绍,我记得那是一张图,里面简单介绍了一些语言,我记得里面有Java、C++和其他记不清的东西。作为一个外行,看到介绍说Java内存占用大,效率又低,C++比较难学,但是占用低,效率高,于是赌一把学了C++。
后来又因为要写Minecraft插件,不得不用Java,代码写起来很麻烦,然后跑起来各种运行时错误,加上Minecraft服务器跑起来经常控制台刷一大堆我看不懂的错误。
所以,我对Java的印象是,代码难写、效率低、占用大、跑起来全是运行时错误···
原因
现在看来,虽然代码写起来依然比较麻烦,但是我用Kotlin,但是有库提供的注解大大降低代码量,想干什么也不用自己造轮子,跑起来错误多也纯属是我菜,资源占用高点儿也问题不大,能让机器辛苦一点儿的何必让人辛苦,何况现在内存这么便宜( ̄︶ ̄)↗
上面这些只是说Java并不是我想的那么一无是处,但是做后端的话我有更好的选择,Golang嘛。
然而我发现,SpringBoot是真的香。
Java语言写起来不舒服,Kotlin可以完全取代Java,这个语言很舒服。
SpringBoot
学SpringBoot其中一个原因是轮子多,代码写的少,另一个原因,写的项目去参赛,因为用Golang基本都是自己造的轮子,文档技术就只能写个Golang···
没学Spring就学SpringBoot,没用过Mybatis就用MybatisPlus,这个样子去学SpringBoot的话学习曲线应该是很陡峭的。但是我想速成!( •̀ ω •́ )✧
于是我找厉害的学长要来了一个后端项目,很简单很常规的项目,我就研究他项目的文件布局,注解逐个问AI···
现在我已经能拿SpringBoot来写项目了。踩了巨多的坑
同时学长项目还附赠了单元测试,这是我从来没做过的事情,我发现单元测试真的很重要!
Kotlin
这个语言用起来很舒服,我很久以前学过一点,但是和Rust不一样,这个语言应该是不用怎么学的。
首先它没什么新的概念,我感觉也就是在Java的基础上允许在类外面定义函数和变量。
语法上像TypeScript。
没什么新意的语言,但很好学、很好用,我喜欢。像幻兽帕鲁ψ(`∇´)ψ
不过实际用起来我还是发现是有一些新概念的,Kotlin里面没有静态方法和静态属性,取而代之的是伴生对象,这玩意儿和静态用起来差不多,但是底层实现不一样,似乎伴生对象是能够支持继承之类的操作的。
BUG
于是我遇到了这样的BUG:
enum class UserType(
val jsonValue: String,
) {
USER("user"),
;
companion object{
val jsonmap = HashMap<String, UserType>()
}
init{
UserType.jsonmap[jsonValue] = this
}
}这段代码跑不起来,调试发现在USER 这个枚举init 的时候伴生对象还是null 。
把jsonmap拿出去放在类外面就好了。
( •̀ ω •́ )✧