初识Java

初识Java

前言

​ 在过去一年,我学习了C/C++、Python两门专业性语言,又在课余时间自学了HTML、CSS、JavaScript等Web开发语言,以此总结了如下经验和方法。

  • 学习编程语言必须有亲身实践的过程。无论是听老师讲授还是自己找学习视频,都需要边听边练。实现一个方法或是出现一个报错,都不是在几分钟内听了就可以完全掌握的,需要自己实打实将代码敲一遍甚至多遍才可以做到熟能生巧,也会把错误原因铭记在心而不会下次再犯。
  • 学习编程语言必须会自己查阅资料。编程语言是很复杂的语言,有自己独有的实现运行机制,老师在课堂上不可能面面俱到,所以在面对不懂的问题时,要善于运用网上的资料,可以尝试自己看源码,或是借助CSDN、掘金等平台通过大佬的分析解决问题。也可以尝试阅读这一语言的书籍,比如我在学习JS时就辅助阅读了《深入浅出JavaScript(第四版)》这本书。
  • 学习编程语言必须会融会贯通。编程语言是一个整体,我们在学习时是将知识点拆分,但当全部学完后应该形成自己的一套体系,知道在什么时候用什么样的方法,这时可以自己尝试写一个小项目,如学习C/C++时我们实现了贪吃蛇、各类管理系统的简易效果,学习Web语言时也尝试自己渲染页面、开发网站。

当然,在学习过程中也领悟了一些教训。

  • 不能有畏难心理。语言学习到后期会越来越复杂深入也就导致困难无比,这时候不能因为难就草草了事。像我在学习Python后期的多线程、爬虫技术等部分就不够专注认真,没有完全掌握。
  • 不能偷懒拖延。不能因为自己听懂了就不上手实践,也不能因为自己掌握了就不再练习或是一拖再拖,这样只会加快遗忘速度,产生陌生感。

初识Java

一、编译型语言 VS 解释型语言

编译型

​ 如:C/C++

  • 使用专门的编译器,一次性编译,执行效率高
  • 源代码 -> 编译 -> 目标代码 -> 连接 -> 可执行代码 -> 运行
  • 跨平台性能差
解释型

​ 如:Python、JavaScript等

  • 使用专门的解释器,每次运行都需要先解释后执行,效率较低
  • 源代码 -> 翻译 -> 中间代码 -> 解释 -> 机器语言 -> 运行
  • 跨平台性能高

二、Java语言的特点

  • 简单性
  • Java是纯面向对象语言,语法简单明了,易于掌握。
  • 取消了指针和多重继承等
  • 自动地收集内存垃圾
  • 提供了丰富的类库、API文档以及第三方开发包,还有大量开源项目。
  • 面向对象
  • 接口
  • 分布式
  • 支持 Internet 应用的开发
  • 有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议
  • Java应用程序能够通过URL打开和访问网络上的对象
  • 健壮性
  • Java编译器能够检测编码和运行的错误,并消除。
  • 安全性
  • 避免用户对内存的非法操作
  • 未经授权不能读写文件
  • Java可以编写出防病毒和防修改系统。
  • 体系结构中立
  • 目标文件代码经编译后可以在许多处理器上运行
  • 字节码
  • 可移植性
  • int 永远是32位,方便移植代码
  • 解释型
  • 高性能
  • 动态翻译成机器语言
  • 多线程
  • 在同一时间并行执行多项任务
  • 相应的同步机制可以保证不同线程能够正确地共享数据
  • 动态性
  • 动态调整库中方法和增加变量,并且客户端不需要任何更改

三、Java与C/C++、 Python的区别

与Python的区别
  • Java是纯面向对象语言,而Python结合了函数式编程和面向对象两块
  • Python不用声明变量类型,Java需要
  • 一些语法基础的区别,如代码块等
与C/C++的区别
  • Java可以实现跨平台
  • C/C++是编译型语言,与Java有本质不同
  • Java有自己的垃圾回收机制,而C/C++需手动管理
  • Java是C/C++的“简单纯净”版,没有了多重继承、指针、头文件等

四、Java跨平台原理

源代码 -> 编译 -> 中间代码 -> 解释 -> 机器语言 -> 运行

  1. 在编译过程中,会将Java源代码变为中间代码,即与平台无关的字节码。

  2. 然后将字节码交给解释器解释成为机器码。在Java中解释器即为虚拟机,而虚拟机与平台密切相关,针对不同的平台有不同的解释器,如Mac平台虚拟机、Linux平台虚拟机、Windows平台虚拟机

  3. 经过解释后的机器码就可以在平台上执行,而虚拟机的存在是Java实现跨平台的本质原因

五、JDK、JRE、JVM的区别和联系

区别
JDK
  • Java Development Kit,Java开发工具包
  • 集成了JRE
  • Java开发的核心
JRE
  • Java Runtime Environment,Java运行时环境
  • 包括:JVM的标准实现 、JVM工作所需类库
  • Java程序运行的核心
JVM
  • Java Virtual Machine,Java虚拟机
  • 只认识 xxx.class 这种类型的文件
  • Java跨平台功能的根本
联系
  • 一层一层的包含关系:JDK > JRE > JVM

总结

​ 对Java有了一定的初步认识,并且通过它与Python和C/C++的对比,直观清晰的感受到了Java语言的魅力,也更易上手学习。

​ 在整理博客的过程中参考了一些资料以及许多他人优秀的文章,就不一一列举,在此表示感谢。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值