当前位置:网站首页>Understand kotlin from the perspective of an architect
Understand kotlin from the perspective of an architect
2022-07-05 12:09:00 【CrazyCodeBoy】
Kotlin summary
Kotlin It's a kind of Java Static type programming language running on virtual machine . It's mainly JetBrains The programming language developed by the development team . although Kotlin And Java Syntax is not compatible , but Kotlin Designed to be compatible with Java Code works with each other , And can be reused as Java Set framework, etc Java Referenced method library . It's easy stay Android Substitute... In the project Java Or the same Java Use it together .
Google stay 2019 Year of Google I/O It was announced at the meeting that Kotlin Be selected as Android Develop preferred language .
Kotlin There are many characteristics of :
- Simple and easy to use : Kotlin There are a lot of extensions available in , Make our code more concise , The developed framework is easier to use
- Security : Avoid errors of the whole class such as null pointer exceptions
- Interoperability : make the best of JVM、Android And the browser's existing library
- Tool friendly : You can use any Java IDE Or use the command line to build
Study Kotlin Meaning to architects Kotlin
Should I study now Kotlin Well ? And learning Kotlin What does it mean to architects ?
- Study at the right time : at present Kotlin Has become a Android The official preferred language for development , Now learn Kotlin It was at the right time ;
- Follow the trend , For the sake of the future : Now, all major Internet companies, including the first and second tier, are going Kotlin Turn up , Now learn Kotlin Not only to follow the trend , For the sake of the future ;
- Improve development efficiency : In terms of development efficiency Kotlin Development is better than Java Much higher ;
- Lead the team to carry out technological innovation : Improve the team's pursuit of cutting-edge technology and improve the team's technical atmosphere , Meet the small partner's needs ( money 、 grow up 、 platform ) The pursuit of growth ;
Kotlin Design concept
The above picture is from Kotlin The boss of the language design team Andrey Breslav stay 2018 year KotlinConf Speech at the meeting , It contains his right Kotlin Introduction of some design concepts , Interested students can search the full version of this video on the tubing .
stay KotlinConf 2018 At the conference Andrey Breslav According to the Kotlin Did not create some original design concepts that are not currently available or familiar to the public , It absorbs the essence of many other languages , And provide powerful IDE Support , It is really convenient for developers to apply it to practical projects .
- It is not only concise but also readable : Mainly refers to Kotlin Support hiding, such as getter、setter etc. Java Template code , And there are a large number of standard libraries and flexible overloading and extension mechanisms , Make the code more intuitive ;
The above figure is used respectively when setting the control click event Java and Kotlin The comparison of implementation , It can be seen that Kotlin The implementation saves some template code , It not only looks simple, but also allows developers to focus on the implementation of specific logic , More readable .
It is not only expressive but also reusable :Kotlin Some commonly used functions such as :Android Some extensions of are encapsulated into libraries , For the convenience of developers , In terms of reusability, it is better than Java It's worse than that ;
The pursuit of interoperability is greater than originality : Why do you say that , stay Kotlin The beginning of development , A lot of people think Kotlin Nothing more than from other languages copy Over here , I think so because you look like a higher-order function , Closure , Expand ,Lambda Expressions are not Kotlin Pioneering , From the existing language
From the past ;Kotlin The designer's idea is not to pursue originality , Instead, it pursues better interoperability ,Kotlin To surpass Java Must realize and Java Interworking of ( Interoperability ), Instead of starting a new stove .Powerful tools to support NPE Protection makes soundness stronger : Everybody knows Kotlin yes JetBrains Developed by our team , and JetBrains Also famous IntelliJ IDEA The author of , And we develop Android So AS It's also Google And JetBrains The product of cooperation , It can be said that in terms of tools AS by Kotlin Development Android It provides powerful support including compiler checking .
Kotlin Construction process
Above, Kotlin and Java Build process comparison :
- *kt Will be Kotlin The compiler program compiles into .class Bytecode file , And then filed into .jar, Finally, the final cause program is output by the packaging tools of each platform
- The picture above is not difficult to understand *kt It will eventually be compiled as Java Bytecode file , Then why do we need one in the last step Kotlin At runtime ? Presumably, many friends will have doubts about this
- This is because , We use it Java To write the program, all implementations will have Standards Java Class library to support , such as :
java.lang.*
,java.util.*
, but Kotlin The class library in is not standard Java Class library , therefore ,Kotlin The application needs to rely on Kotlin Run time to support these Java The standard class library has no implementation .
- This is because , We use it Java To write the program, all implementations will have Standards Java Class library to support , such as :
How to learn effectively
- First go through the above
Kotlin And Java Similarities and differences
YesKotlin
I have an impression of the difference in - Follow this course Kotlin Explain and learn an article
- Make good use of tools (
A gentleman is not different , Good and false in things
)- Official documents :https://kotlinlang.org/docs/reference/
- The ultimate tool : Make good use of AS Of
convert java file to kotlin file
Tools - I know you Google
The ultimate tool (Practice)
If you encounter some code and don't know how to use Kotlin When it comes to implementation , Try the following tools :
public interface BrightnessListener {
String[] onViewBrightness(String... args);
}
Use the following steps to convert the above Java Document conversion Kotlin:
AS
->Code
->convert java file to kotlin file
Or copy the above code to kotlin Use... In documents AS The automatic conversion function of :
interface BrightnessListener {
fun onViewBrightness(vararg args: String?): Array<String?>?
}
Kotlin It can be understood as Java The grammar sugar of , We can use AS Provide tools to view us Kotlin Code Java Look like , in other words IDE We will Kotlin How does the code turn Java Code :
AS
->Tools
->Kotlin
->Show kotln Bytecode
Reference resources
边栏推荐
- Codeworks 5 questions per day (1700 average) - day 5
- [mainstream nivida graphics card deep learning / reinforcement learning /ai computing power summary]
- 强化学习-学习笔记3 | 策略学习
- Ncp1342 chip substitute pn8213 65W gallium nitride charger scheme
- Principle of persistence mechanism of redis
- Check the debug port information in rancher and do idea remote JVM debug
- Troubleshooting of high memory usage of redis in a production environment
- Why do you always fail in automated tests?
- Acid transaction theory
- Matlab imoverlay function (burn binary mask into two-dimensional image)
猜你喜欢
Principle of redis cluster mode
Pytorch weight decay and dropout
Matlab superpixels function (2D super pixel over segmentation of image)
简单解决redis cluster中从节点读取不了数据(error) MOVED
【无标题】
Network five whip
13. (map data) conversion between Baidu coordinate (bd09), national survey of China coordinate (Mars coordinate, gcj02), and WGS84 coordinate system
Linux Installation and deployment lamp (apache+mysql+php)
Mongodb replica set
redis主从中的Master自动选举之Sentinel哨兵机制
随机推荐
XML解析
Error modulenotfounderror: no module named 'cv2 aruco‘
简单解决redis cluster中从节点读取不了数据(error) MOVED
Four operations and derivative operations of MATLAB polynomials
Vscode shortcut key
Pytorch softmax regression
想问问,如何选择券商?在线开户是很安全么?
手机 CPU 架构类型了解
Codeforces Round #804 (Div. 2)
Thoughts and suggestions on the construction of intelligent management and control system platform for safe production in petrochemical enterprises
Want to ask, how to choose a securities firm? Is it safe to open an account online?
The solution of outputting 64 bits from printf format%lld of cross platform (32bit and 64bit)
Matlab struct function (structure array)
1.php的laravel创建项目
mysql拆分字符串做条件查询
1个插件搞定网页中的广告
【load dataset】
多表操作-子查询
[pytorch modifies the pre training model: there is little difference between the measured loading pre training model and the random initialization of the model]
Principle of redis cluster mode