❶ 用Kotlin改写php程序是什么样的体验
学Kotlin其实要看:http//kotlinlang.org/docs/kotlin-docs.pdf
在线版是不完整的!!!少了一些章节,会有点难看懂后面的文档。
我选择了WordPress里的错误消息管理类wp-error.php为对象,没有依赖其他具体场景和类,所以比较适合移植和对比。
代码是前几天整理的,为了便于在线查看,把它贴到Git上了。代码查看地址:http//git.oschina.net/web3d/kotpress/blob/master/Error.kt
为了简化逻辑,将Error类中要保存的data、code全部设定为String类型。
基础知识
1.语感
上帝说,要有光,从此就有光了;奥巴马说,编程语言是门外语,从此,我们也是精通多种外语的人了。
Kotlin从代码的语感上,是有着python的风格的,像:
if (obj is String) return obj.length
if (x in 1..y - 1) println("OK")
是不是很接近英文原生语句?
2.变量
局部变量分为可变变量和不变变量,分别用 var(variable) 和 val(?)来声明。
variable
内存中的变量初始化,一般要经过两步,声明变量类型、开辟内存空间;赋值初始化。
var y: Int;
y = 10;
目前多数语言的写法,都是一句话完成这两步。
var y: Int = 10;
而Kotlin中更简洁的写法是:
var y = 10;
y 被赋值时,会被自动推断(inferred)为整型Int,这种写法有点亲切感了。
注:类型自动推断是强静态类型语言范围的一种特性。自动推断类型的能力让很多编程任务变得容易,让程序员可以忽略类型标注的同时仍然允许类型检查。类型推导不是Go语言首创,但是现代语言中,Go中运用广泛,Kotlin也引入了这种特性。
Kotlin是静态类型的,如果想将y重新赋值为其它类型如字符串是不行的:
y = “13"
Val
val 基本特性和用法与var相同,但有点类似我们一般语言中常量的概念:被初始化赋值一次后,不能再重新赋值;与常量不同的是,它可以作为局部变量。如:
val y = 10
如果继续在后面:
y = 12
编译器就会报错。
当然,不能重新赋值不是说变量所代表的对象包含的值不能变,下文的数组对象array,同样是通过val声明的,但它里面包含的值是可以继续操作的。
刚从PHP转过来的话,应该还有点适应不了:要熟悉和记忆各种数据类型和集合类型;每次声明一个变量,还要想这个变量是否可变,太烧脑了。但这就是一种更朴实的思维方式,前面多想想,后面的代码就会更可靠,不会因为一些意外的操作造成数据的值或类型被破坏。
类的普通属性应该都用 var 来声明,因为可能要在某个方法中将另一个对象赋给它;但局部变量应当尽可能用val。
3.类型推导
java里面定义一个字符串类型的一维数组列表要这样写:
ArrayList<String> array = new ArrayList<String>();
Kotlin里面:
Kotlin可与Java互通,所以,它也可以写成类似上面的形式:
val array: ArrayList<String> = ArrayList<String>();//没有new关键词
array.add(“abc")
但Kotlin风格的写法为:
val array = arrayListOf<String>();
array.add(“abc")
PHP里面:
$array = [];
$array[] = ‘abc';
4.this
和Java一样,Kotlin中大多数时候,this可以省略,这是现代编程语言都支持的特性。
像PHP、Python这种都需要有个指代对象去访问。
5.empty/Blank
再牛掰的语言,可能也解决不了空字符串的问题;一个字符串对象就是可以包含空字符串、或者可能含有多个空格的字符串。但逻辑上,他们是无效的数据!所以几乎每个有字符串的地方,可能都要判断一下,尤其是做键名等名称标识的场景。
WordPress这个Error类就是典型场景。错误消息是按错误代码 => 错误消息 的格式存储的,如果以空字符串为键名,它到底代表什么含义,无法明确得知。所以我们就要判断是否为empty,但php里的empty判断在这真正有用吗,如果这个键名里包含的字符全是空格呢?所以像Java和Kotlin中的String对象除了isEmtpy()方法外都会有个isBlank()的判断。
但在演示代码中,我反复斟酌后,还是去掉了相关判断,因为几乎这个类每个方法里都得加,这样没有美感,不科学。
6.句尾分号可省略
单行语句多数情况可以省略分号
7.烧脑的Exception
PHP中,我们还没有养成抛出异常、然后捕捉异常的编程习惯。一般都是通过多种返回值类型或范围去判断结果,是成功还是失败、正常还是异常。到了Kotlin这类静态类型语言中,方法返回值也是需要一种确定的类型,那么失败或异常就只能通过抛出异常的方式去做了。异常的捕捉如果不到位的话,就很容易出现不健壮的体验,动不动的崩溃了。
❷ Java程序员都需要学习什么
据我所知java编程需要学习面向对象、基本语法、JSP、WebServer以及常用的Java开发工具和常用框架等知识。学习java编程可以使用JBuilder、IDEA、Eclipse等工具。
如果有C++等面向对象语言的开发经验,可以简单的翻看一下介绍JAVA的相关书籍就可以了。如果是新手就需要花时间好好研究一下Java的语法了
做JAVA程序员都少不了和JSP以及HTML打交道。因此,想成为JAVA程序员就不可避免的要熟悉JSP和HTML,最好能知道JSP的几个内置对象,如Session,Request,Reponse,以及常用的JSP标签,如include,userBean等。如果再熟悉一下JS和CSS就更好了,那会使得制作的页面更友好。
熟悉了以上这些已经可以制作出来JSP页面了,但是页面总要跑起来才能看到它的效果,这就要求必须熟悉一种WebServer,比如:TOMCAT,RESIN等。要学会如何发布应用,如何利用WebServer的数据库资源等。
想要创维一名优秀的Java程序员,建议找一家专业软件培训机构学习,我推建AAA软件教育集团,AAA教育集团(隶属于深圳市漫动者教育科技有限公司),成立于2007年,专业从事高端计算机职业教育工作,是国内知名的教育品牌。集团创立以来,依托先进的办学理念,AAA培养出数万名专业性、实战型高端技术人才,被业界誉为“互联网金领生产基地”。
❸ Java工程师可以就职哪些岗位
通常情况下,根据开发角色的不同Java开发人员可以从事以下岗位:
第一:Web开发工程师。Web开发是Java程序员比较常见的工作岗位,Web开发涉及到的内容也比较丰富,对于Java程序员来说往往需要掌握Web开发体系结构、Web容器结构、Java操作数据、Java业务组件开发以及分布式开发等内容。另外,Web开发工程师通常还需要掌握一部分前端开发知识,比如JavaScript。
第二:大数据开发工程师。Java语言在大数据开发领域也有比较广泛的应用,是Hadoop平台下比较常见的解决方案。大数据开发工程师不仅需要掌握Java语言,还需要掌握与大数据开发平台相关的API以及开发流程。大数据应用开发和大数据分析是大数据开发工程师的重要任务,所以从事大数据开发的Java程序员往往需要具备扎实的数学基础。
第三:Android开发。Java语言是Android应用开发的重要解决方案,虽然目前Android开发也可以采用kotlin,但是Java语言依然是目前Android开发的主流编程语言。由于Android开发市场比较大,所以目前从事Android开发的岗位也比较多。
第四:后端服务开发。Java语言有稳定的性能表现和较强的扩展性,所以Java语言往往是大型互联网平台后端服务的重要解决方案。由于Java语言的生态比较健全,在资源管理、分布式开发、并发处理等方面都有比较健全的解决方案,所以采用Java语言进行后端服务开发的风险往往是比较小的。
最后,Java语言也可以进行嵌入式和多媒体等领域的开发。
❹ kotlin视频教程
可以看黑马程序员的教程
kotlin教程目录:
01_kotlin课程简介
02_kotlin学习方法
03_kotlin选好教练车
04_kotlin你好世界
05_kotlin变量与输出
06_kotlin二进制基础
07_kotlin变量和常量&类型推断
08_kotlin变量取值范围
09_kotlin函数入门
10_kotlin语言boolean
11_kotlin命令行交互式终端
12_kotlin函数加强
13_kotlin函数作业讲解
14_kotlin字符串模版
15_kotlin条件控制if和else
16_kotlin字符串比较
17_kotlin空值处理
18_kotlin的when表达式
19_kotlin的loop和Range
20_kotlin的list和map入门
21_kotlin函数和函数式表达式
22_kotlin默认参数和具名参数
23_kotlin字符串和数字之间的转换
24_kotlin人机交互
25_kotlin异常处理
26_kotlin递归
27_kotlin尾递归优化
28_kotlin新的篇章idea使用入门
29_kotlin面向对象入门
30_kotlin静态属性和动态行为
31_kotlin面向对象
32_kotlin面向对象实战-洗衣机
33_kotlin面向对象实战-洗衣机升级
34_kotlin面向对象实战-封装
35_kotlin面向对象-继承(open和override)
36_kotlin抽象类和继承
37_kotlin面向对象-多态
38_kotlin面向对象-抽象类和接口
39_kotlin面向对象-代理和委托
40_kotlin面向对象-单例模式
41_kotlin面向对象-枚举
42_kotlin面向对象-印章类
43_kotlin课程计划
❺ 黑马程序员有kotlin的教程吗
现在学习kotlin的平台有很多,像B站或者是腾讯课堂都是可以的,我们在B站也分享了很多经典的视频教程,都是开源的,你可以去看看。
❻ 谷歌宣布Kotlin成安卓开发一级语言,安卓开发语言有哪些
开发工具 Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes ,一定会让你的写代码的生活更加美好。 编程“语言” Kotlin: 作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试? 使用Kotlin进行Android开发。 React Native: 跨一直是程序员的梦想,而且移动应用的跨解决方案也很多,因为 Facebook 的参与和力推,让这个解决方案带上了光环。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,听说 Android 的 SDK 也马上会到来,React Native。 Sky: 与 React Native 类似,使用 Web 开发语言来做移动的开发,虽然这个只是一个尝试,但
❼ 大佬些能告诉我一下安卓程序员学习路线,以及对kotlin flutter的看法(是否有必要掌握)
要不要再去读个成人本科?
❽ 如何评价 Kotlin 语言
总体说, 对于大部分普通程序员, 可算比较完美了(综合考量语言自身\平台及库\IDE等工具\背后支持公司). 目前主要风格还是偏OO, 如果可以再偏FP一点会更好. 像是一个Scala与C#的合体, 比Scala简单得多; 比C#更干净, 因为没有历史包袱. 我多多少少写过代码的语言超过10种, Kotlin与F#是感觉最舒适的, 另外Kotlin是少有的和Go/Python一样写代码时不需要程序员动脑的语言, 很适合开发普通项目.与Scala有根本设计思路上的不同, Scala是一切尽量自己来, 实在不够用了再用java的; Kotlin是尽量用Java的, 不够用了再扩展, 尤其体现在二者的容器库上, 导致Kotlin的学习曲线极低, 这对于我这样的普通码农是一大优点, 而高手们可能更看重Scala强大的容器库和完备的FP功能, 所以个人估计它很难吸引Scala程序员.比较喜欢的几点:既有FP的everything is an expression风格, 可以直接用if等表达式赋值, 又可以用label控制return, 使得return可以用于lambda中, 进而在lambda中使用卫述句直接return, 减少巢式嵌套, 这点做的比Scala漂亮. 我个人非常喜欢使用卫述句, 一直为不能在FP语言中用卫述句而感到遗憾, Kotlin很好的解决了这个问题.可以像F#/Go一样直接在package内写函数, 不需要所有东西都放进一个object/class之类的, 代码看着很舒服. 说起来, Kotlin的设计定位有点像jvm下的Go, 追求简洁实用, 但比Go好用(主要在泛型/FP两方面). 目前虽然没有自己的actor库, 但可以用akka, 这点就显示出jvm的多语言群殴优势了.目前编译器和插件还不如Scala的成熟, idea下曾碰到过IDE内部错误之类的问题, 自动完成也经常出问题, 不过实际影响很小. 另外比较意外的是没有union而一定要用data class或Pair/Triple, 也没有type alias, 原来代码里用的太多, 改起来有点烦, 但想一想Scala的编译时间和类型系统, 忍了吧.估计会先在Android上开始流行, 慢慢扩展到server端. 但要达到Scala目前的流行程度, 短期内是不可能了, 希望今年能出1.0.以后有新感想了再说2015.06.01补充一段其设计者对于集合库的说明:“Scala 的经验表明,有自己的集合库 — 总的来说很不错 — 可以带来明显优势,但在需要与Java代码互操作时也存在缺点:所有数据都需要转换/包装,因此代码有点难看,性能有时会大打折扣。鉴于此,Kotlin采用了另一种策略:我们使用简单的Java集合,但通过提取“虚拟”只读接口并引入声明位置变量使它们有不俗的表现。这样,既可兼顾兼容性,又可得到一个好用的库。Kotlin 依赖于Java库,但可以增强Java库的功能,主要是通过扩展,但有时使用编译器支持的技术(集合/数组/基元),这在保证兼容性的同时保持了语言的纯净.” -- Andrey
❾ kotlin能取代java吗的最新相关信息
我会建议使用纯JAVA。而不要去考虑Kotlin。否则,你将失去两大优势。
首先要搞清楚,kotlin与JAVA之间,其实并没有任何关系。kotlin是那个做IDE的Jetbrains公司创造的语言,它只和intellij IDEA这个IDE有关系。只是这个IDE,会在编译的时候,把kotlin转换成JAVA代码。所以kotlin无形中,便把使用者与这个IDE捆绑在了一起。而并不是与JAVA捆绑在了一起。
失去的第一个优势,便是从此无法自由选择IDE。。。对于kotlin来讲,将永远只有一个IDE可以选择。用户会成为Jetbrains公司的奴隶。如果有一天,你必须离开这个IDE,那你将会沦为废物,因为如果没有IDEA,kotlin无法做到任何事,哪怕仅仅一个“hello world”都不能。
失去的第二个优势则更加致命,也是JAVA可以获得成功的原因之一。。。JAVA能做的事情,其实很多其他语言也能做到。。但为什么JAVA可以如此受欢迎?除了JAVA本身的强大之外,还有一个原因在于,JAVA与C#语言,几乎是一模一样的。只有非常细微的差别,不仅语法一样,而且连编程思想都一样。只要掌握其中一门,完全可以在几天之内,无师自通另外一门。然后就可以对照api文档,去开发另外一门语言的程序了。所以学习JAVA的一大亮点就在于“学一门,会两门”。
C#很了不起吗?没错,非常了不起。。它本就可以视作JAVA获得成功的最大幕后英雄。。但我不是来讲故事的,因此微软与sun公司的恩怨情仇不在此深究。
我只说三个关键点,你自然明白其中利害关系。
1,它是微软的官方编程语言,微软的亲儿子,天生的富二代,Visual Studio便是为它量身设计。并且是微软唯一可以跨平台的儿子。。微软前不久又为它专门设计了轻量开发工具VS code。。不远的未来,它将成为微软的独子。未来几年,微软几乎全部工作都将与它有关。
2,它是游戏开发行业的第一大编程语言。占有60%以上的份额。Unity3D,CE5,寒霜,夜光,这四大游戏引擎的标准语言。《口袋妖怪Go》《使命召唤》《FIFA》《极品飞车》《最终幻想14》等数以万计的游戏都是由它开发而成。还包括国内最火的手游《王者荣耀》
3,它是虚拟现实(VR)设备开发的第一大语言。
扔掉JAVA,改用kotlin,也就等于与C#分道扬镳。。。所付出的代价,在我看来是无与伦比的。
❿ 开发iOS应用,Kotlin Native是否够格
很高兴回答你的问题。
一直以来,ios的开发语言都相对比较单一,要么是swift,要么就是object-c,这样的情况对于ios开发人员来说,还是比较友好的,没有那么多的语言要学习,专心研究一门语言就可以了,可是在KotlinConf 大会宣布了 Kotlin 1.2 RC 版,并宣布 Kotlin/Native 已支持用于开发 iOS 应用和 Web 应用开发。这也将是 Kotlin/Native 0.4 的特性之一。虽然对 iOS 开发的支持仍处于早期阶段,但确实已经实现了,这是在所有平台上使用 Kotlin 进行开发的重要一步。官方还特意展示了利用 Kotlin/Native 开发的两款应用,它们都可以运行于 iOS 和 Android 平台。Android 和 iOS 平台共享了不少代码,其中包括大多数图形处理、声音播放和用户输入响应代码。而且IDEA也已经支持Kotlin/Native了,对于Kotlin/Native是否能够胜任ios的开发,我觉得应该从以下几点来看。
1、性能
现在移动端的开发,很注重的就是用户体验以及产品的性能,Kotlin/Native作为一个新生的语言,在性能这一块,还有待考究。
2、技术成熟性
现在的Kotlin/Native在技术方面感觉尚未成熟,想要撼动swift或者object-c的地位,可能还需要一段时间,就像kotlin,虽然官方已经宣布将kotlin作为Android开发的官方语言,可是,这么久过去了,还是没能取代Java。
3、实际的开发体验
因为我没有用过Kotlin/Native开发ios,但是,在Android平台上面,很多的程序员抛弃Java投奔向kotlin,但是使用了一段时间后,又转过头来使用Java,这便是在实际的开发过程中,很多程序员觉得kotlin并没有想象中的那么好,转而又开始使用Java。
如果以上三点,Kotlin/Native都做的很好了,那么ios的开发市场,应该就会被Kotlin/Native给占据了,各位有什么看法,欢迎评论。
以上便是我对开发iOS应用,Kotlin Native是否够格?问题的回答,如果您觉得有道理,请点赞,关注,支持我,谢谢。