与Java相识(一)——背景介绍

1、写作初衷

        其实开始写这个系列的博客时,我已经培训毕业工作一个半月了。因为经常加班到八九点,导致自己没心思继续提高自己的知识水平,以至于之前学习的知识有些生疏,所以想通过写博客的方式,一方面巩固并且拓展自己学习的知识,另一方面也可以将自己的学习心得分享给大家。另外,为了让自己分享的知识具有准确性和权威性,我会以Java官方文档为蓝本作为博客中知识点的来源,我也会坚持写下去的。附上官方文档链接:https://javaee.github.io/tutorial/toc.html,同时将自己使用Easy CHM软件将官方文档制作成的CHM文件上传至CSDN,附上链接:https://download.csdn.net/download/sxing_feng/10852570

2、Java概述

        Java技术既是一种编程语言,又是一个平台。从编程语言的角度来看,Java在目前计算机语言中的流行度最高,下面是TIOBE官网中编程语言的流行程度概况:

Java的流行不仅在于它的应用范围广,更在于语言自带的各种类库的优化实现,之前在网上看到说一般水平的C/C++程序员和同等Java程序员写的代码,Java的运行效率更高,原因在于Java程序员使用这些类库时已经是很优化的解决方案,无需程序员思考更好的算法。

        平台是程序运行的硬件或软件环境,一些流行的平台如Microsoft Windows、Linux、Solaris OS和Mac OS。大多数平台可以描述为操作系统和底层硬件的组合,Java平台与大多数其他平台的不同之处在于,它是运行在其他基于硬件平台之上的纯软件平台。Java平台有两个组件:Java虚拟机和Java应用程序编程接口(API)。Java虚拟机是Java平台的核心和基础,可以移植到各种基于硬件的平台上;API提供了Java编程语言的核心功能,涵盖了从基本对象到网络和安全、到XML生成和数据库访问等所有内容。从平台的角度来看,已有众多编程语言能够在Java虚拟机上运行,比如受欢迎的kotlin、Scala、Groovy等,而且Python、JavaScript、PHP等也有在JVM上对应的Java实现的解释器,Wiki上关于JVM上运行的语言介绍:https://en.wikipedia.org/wiki/List_of_JVM_languages

3、相关名词

  • JDK(Java Development Kit) :Java 开发工具包,作为Java开发人员必须安装配置这个才能开发软件。
  • JRE(Java Runtime Environment):Java运行环境,所有使用Java开发的软件必须安装这个才能运行。
  • JVM(Java Virtual Machine):Java平台虚拟机,是Java文件编译后的class文件运行的环境。
  • Java SE (Java Platform, Standard Edition):Java平台标准版,适用于桌面系统即客户端应用程序的开发。
  • Java EE (Java Platform, Enterprise Edition):Java平台企业版,目前Oracle已将该平台移交给开源组织Eclipse,更名为Jakarta EE,用于创建服务器应用程序和服务。
  • Java ME (Java Platform, Micro Edition):Java平台微版,主要用于移动设备、嵌入式设备上的java应用程序开发。
  • SDK(Software Development Kit):软件开发工具包,为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,在Java平台中,只有Java EE和Java ME会有额外的SDK。
  • 编译器:将一种语言(通常为高级语言)翻译为另一种语言(通常为低级语言)的程序,javac.exe可以简单看成是Java编译器,该程序可将Java源文件翻译成class字节码文件。
  • 解释器:把语言一行一行直接转译运行,java.exe可以简单看成是Java解释器,可将class文件运行起来。
  • Machine Code:机器码,普通进制码,有时也被称为原生码(Native Code),是电脑的CPU可直接解读的数据,执行速度最快。
  • Byte Code:字节码,是一种特殊的进制码,具有与操作系统平台无关的特性,它比机器码更抽象,需要解释器转译后才能成为机器码的中间代码。
  • JIT(Just-in-time compilation):即时编译,一种在运行时期把字节码编译成原生机器码的技术,因为解释器转译字节码效率不高,而这项技术会将翻译过的代码缓存起来以降低性能耗损,可改善虚拟机性能。

    下面附上这些名词之间的关系图:

 4、技术体系

  • Java基础:开发工具(Eclipse、IntelliJ IDEA)、基础语法(基本数据类型、输入输出、选择及循环结构)、面向对象(封装、继承、多态、抽象);
  • 核心API:集合与泛型、实用类、IO流、反射、注解、多线程、网络编程Socket、XML解析;
  • 数据库(以MySQL为例):增删改查(DDL、DML、DQL)、事务、视图、索引、备份与恢复;
  • JavaWeb:超文本标记语言-HTML5、层叠样式表-CSS3、JavaScript、JQuery、Java服务器页面-JSP、Java数据库连接技术-JDBC、EL表达式、JSP标准标签库-JSTL、服务端Java应用程序-Servlet、JSP+JavaBean+Servlet整合开发;
  • 企业级框架(以SSM为例):Spring(依赖注入Ioc、面向切面AOP)、SpringMVC(控制器Controller)、MyBatis(动态SQL)、SSM框架整合开发;
  • 其他知识:线程池、Redis缓存、设计模式(如工厂模式、单例模式、代理模式、适配器模式)。

  以下为拓展及新技术:

  • 数据结构与算法:数据结构(如链表、栈和队列、二叉树和红黑树)、排序算法(如冒泡排序、快速排序、希尔排序、插入排序、堆排序、归并排序);
  • 大数据开发:Hadoop(分布式文件系统-HDFS、分布式计算框架-MapReduce、资源调度框架-YARN、大数据数据仓库-Hive、数据迁移框架-Sqoop、工作流调度框架-Azkaban)、Spark(弹性分布式数据集-RDD、结构化数据处理组件-Spark SQL、流处理框架-Spark Streaming);
  • 微服务:服务间通信[同步调用①REST(JAX-RS,Spring Boot)②RPC(Thrift, Dubbo)、异步消息调用(Kafka, Notify, MetaQ))]、运行时支撑服务-Spring Cloud系列;

        总之,Java的技术体系很庞大,学习一开始会感觉困难,但将基本技术体系学通后,再学习新技术便是靠自己的日积月累的强化,未来Java会在更多的领域里大展身手,或许它再战二十年也未尝不可。

       

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值