计算机本科生,已经学完java,想自学一下android开发,两者差别多大?
在2009年之前一直是Java开发,然后就在手机公司转向了Android开发。
上层的开发基本上转安卓后没啥障碍,JAVA的各种面向对象编程,在安卓上是一样的。
如果原来有用过一些应用框架spring,Hibernate,mysql之类的,
转到安卓平台相当于用新的应用框架来开发。
安卓的UI交互界面,各类控件,开发起来也比较好理解。也要编写大量的事件处理逻辑。
像这个手机应用主界面,称为Launcher,这是开机就加载的主界面。
上面有Widget也就是小插件。
看你想以后找工作是主要做J***a web还是安卓,如果以后想找工作做安卓开发 就可以直接学习安卓。如果想先从j2ee开始 就先学好Spring 这块吧。学好了spring 再去看安卓 学习速度更快点。其实有Web基础学安卓很快的,可以吧activity类似成servlet ,view想象成jsp等其实大多数都有共同处。你现在是思考实习毕业要做什么,思考就业吧。spring这块东西也挺多 现在都是微服务,刚学完j***a就得思考一条以后得路,不过只要一门学精通了,学习其他的很快的。
一个非常好的问题。J***a是一门完整的开发语言,使用场景非常广泛,Web开发、PC程序开发、嵌入式开发,等等。
1)J***a Swing
现在J***a开发基本上都是Web服务,提供REST接口给前端页面调用。其实J***a有一个很好用的UI界面开发库。Swing是GUI(图形用户界面)开发工具包,包括容器JFrame、组件JBox, JPanel和布局BorderLayout等。
2)Android Activity
Android界面通过Activity实现,是用户操作入口,接收指令。Activity之间通过Intent进行通信,调用服务实现处理逻辑。
实现业务逻辑的代码,从开发语言来讲两者没有大的区别,面向对象编程、数据封装、类和实例,只是针对不同的业务场景做不同的事情。比如J***a开发Web服务时常使用MySQL数据库、Redis缓存、Quartz定时任务,Android开发时则使用SQLite、本地文件缓存等方式。
你指的这个J***a,我猜应该是很多[_a***_]上指的J***a后台开发的那种技术,他跟安卓相比,从整个应用系统层面来看,Android应用就是前端的一种实现方式,J***a作为一门语言,既用于开发前端的Android,也用于开发Server端的后台接口。只是实现的时候,使用的技术上的差别。
J***a是一门语言,学会了J***a,就跟你学英语,只是学会了一些基本的语法与句子,但是如果想表达思想,就需要软件技术与软件设计,所以J***a不是说能简单学完的,就像你英语过了四级,还有六级,专四,专八。
Android端的开发,作为前端跟用户直接展现的程序,初学重点学习的地方,还是在页面布局呈现上,跟H5的开发相似。而后端,主要考虑接口设计,业务交互流程,数据安全性、一致性,考虑性能问题等等。
安卓开发比J***a开发难度小,差异主要体现在UI部分,安卓需要接触UI,J***a则大多数情况下不需要接触UI(前后端混合开发除外)。
安卓中的很多思想在J***a中都有体现,如注解、反射、观察者模式、适配器模式等等,很多库J***a和安卓都可以无痛迁移和混用,会了J***a以后再学习安卓主要是学习布局、通信、service等等,学完以后多做几个实战项目基本就可以了。
已经学完J***ASE,后面学J***A WEB J***A安卓,J***A架构师。这个顺序合适吗?
你学习完 J***a SE 部分,也就是说你把 J***a 语言基础部分的知识已经学习完成。我个人认为 J***a Web 和 J***a 安卓是两个单独的方向,所以你学习完 J***a SE 后,在学习 J***a Web、J***a 安卓,然后再到 J***a 架构师,这个顺序不合适。
如果你对 J***a Web 后端开发感兴趣,你的学习方向应该是J***a SE、J***a Web、J***a架构师,如果你对安卓开发感兴趣,你的学习方向应该是 J***a SE、J***a安卓、J***a架构师。不要把 J***a Web 和 J***a 安卓一起学习,专注一个方向就好。
J***a 基础方面涉及到的知识点非常多,而且有很多知识点所涉及到的细节比较深入。结合我18年校招面试互联网大厂的经验,J***a ***方面、J***a 多线程方面、以及 J***a 虚拟机方面都是必然会被问到的,如果你想进大厂,请确保你掌握了这些知识点。
J***a ***涉及到 List、Set、Map等***类,常见***的底层实现原理你需要掌握,比如 ArrayList、HashSet、HashMap等,尤其是 HashMap 底层的原理实现,这个一定要完全掌握,这个几乎是 J***a 面试必问的一个题目。
J***a 多线程方面会被问到,比如线程锁的实现、生成者消费者模型的编写。工作当中倒是不会接触到太多。J***a 虚拟机方面则是垃圾回收算法、内存的划分、虚拟机类加载机制。如果上面我说的这些存在你不会的地方,建议你对这些知识点在进行学习。
谷歌在19年5月8号的 I/O 开发者大会,宣布未来 Kotlin 成为安卓开发首选语言。官方都建议使用 Kotlin语言来开发安卓,而不是 J***a 语言,可想而知,在未来,使用J***a来开发安卓程序会变得越来越少。
结合我的个人经验,我现在觉得安卓开发的岗位其实已经没有那么多了,整体安卓开发岗位市场趋于饱和,像我现在所在的公司,招聘安卓开发的岗位很少。所以你学习完 J***a 基础之后,建议你还是转向 J***a Web 方向会更好。
J***a Web 方向会接触到很多J***a后端的技术,这对于你未来转向 J***a 架构师方向,会更有帮助。
合适的,由后台学到前端,等全部融汇广通了,在去学习整体的架构设计,架构设计这个需要很多的工作经验才能够慢慢找到门道,经验丰富起来后你会发现架构其实也没有那么的南,最好再此之前先学学服务器,其实到了后面服务器的搭建对于你理解项目是很有帮助的,希望我的回答能给你一些帮助,欢迎就要评论,咱们一起交流,共同进步!
目前学习J***a开发应该重视三大块内容的学习,其一是J***a基础,重点在于J***aSE相关内容;其二是J***a Web开发,这部分内容还涉及到各种框架的学习,比如Spring系列框架;其三是开发平台的学习,主要涉及到云计算平台和大数据平台。当然,如果未来想往前端开发方向发展,也可以学习一下Android开发。
J***a语言虽然近些年来的使用率有所下降,但是依然是最为流行的编程语言之一,而且在生产环境下,***用J***a语言进行项目开发也会在很大程度上降低开发风险,这也是为什么很多大型项目都愿意***用J***a进行开发的重要原因。所以,从就业的角度来看,当前学习J***a依然是不错的选择。
虽然当前J***a开发岗位比较多,但是目前科技公司对于J***a程序员的要求也在不断提升,简单的说,目前J***a程序员有两个大的发展方向,其一是走全栈程序员路线,其二是走研发级程序员路线。全栈程序员的主要任务是完成具体的业务逻辑开发,目前在产业互联网的大背景下,全栈程序员的岗位需求量还是比较大的。
从技术分工来看,全栈程序员通常需要基于各种开发平台来完成具体的开发任务,而研发级程序员的工作任务就是完成各种平台的开发,目前物联网平台和人工智能平台有较多的研发型人才需求。由于研发级岗位往往对于程序员的基础知识结构有较多的要求,所以要想获得研发级程序员岗位,可以考虑读一下研究生。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!