热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java基础入门了解

java基础入门了解Java发展简史java语言的用处(数据存储,数据分析,数据处理)java被运用的程度java语言的特点java语言体

java基础入门了解

    • Java发展简史
    • java语言的用处(数据存储,数据分析,数据处理)
    • java被运用的程度
    • java语言的特点
    • java语言体系的结构
    • java语言运行机制
    • 课后知识补充


Java发展简史


在1991年时候,James Gosling(詹姆斯•高斯林)所在sun公司的工程师小组,需要设计一种小型计算机语言,该语言主要用于像电视机顶盒,家用电器等这样的消费类电子产品,这些电子产品有一个共同的特点:计算处理能力和内存都非常有限,所以要求:语言必须非常小且能够生成非常紧凑的代码,这样才能在这样的环境中执行,另外,由于不同的厂商选择不同的CPU,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是在不同的平台上运行(即跨平台)。
所以在sun公司内部成立了一个Green项目组,该小组的领导人是James
Gosling。他们开发出了一种语言,起初把它命名为Oak(橡树的意思,Gosling注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了),后来将名字改为java,Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。JAVA的标识也正是一杯正冒着热气的咖啡。经过多年的开发,最终于1995年正式确立.


java语言的用处(数据存储,数据分析,数据处理)

1.用于服务器程序---------银行,证券交易平台,电子商务后台等

2.Android应用---------安卓手机,各种移动设备,智能家电等

3.软件工具---------开发工具eclipse,IDEA等

4.嵌入式领域-------智能卡,传感器等

5.大数据技术----------Hadoop以及其他大数据处理技术

java被运用的程度

1.可独立运作的应用程序

2.嵌入网页的小程序

java语言的特点

1.开源(开放源码)

2.简单,高效,面向对象

3.平台无关性(java与平台无关,jvm与平台有关)

4.交互式特性

5.多线程机制

6.动态的内存管理机制

7.安全性

java语言体系的结构

1.JavaSE :Java standard(标准版)包括核心类 比如:数据库连接、接口定义、输入/输出、网络编程

2.JavaEE : Java企业版用于开发企业软件包含JavaSE 中的类,并且还包含用于开发企业级应用的类。比如:servlet、JSP、服务器

3.JavaME :Java Micro Edition(微缩版) JavaME 包含JavaSE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒

java语言运行机制

1.Java虚拟机可以理解为一个翻译器

2.对于不同的平台,有不同的虚拟机

3.java虚拟机机制屏蔽底部运行差别,“一次编译,随处运行”

通过编译工具将".java"文件转换为".class"文件,这段.class文件是一段包含着虚拟机指令、程序和数据片段的二进制文件,即字节码,通过不同平台jvm运行

JDK(java development kit)

JDK是Java开发工具包,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库

JRE(java runtime environment)

JRE是Java的运行环境,包括JVM标准实现及Java核心类库

JVM(java virtual machine)

JVM是java虚拟机,是整个java实现跨平台的最核心的部分,能够运行以Java语言写作的软件程序

SDK是Software Development Kit

SDK 一般指软件开发包,可以包括函数库、编译程序等,是给java应用程序开发者使用的

在这里插入图片描述

课后知识补充

JDK中提供了三个ClassLoader,根据层级从高到低为:
Bootstrap ClassLoader,主要加载JVM自身工作需要的类。
Extension ClassLoader,主要加载%JAVA_HOME%\lib\ext目录下的库类。
Application ClassLoader,主要加载Classpath指定的库类,一般情况下这是程序中的默认类加载器,也是ClassLoader.getSystemClassLoader() 的返回值。(这里的Classpath默认指的是环境变量中配置的Classpath,但是可以在执行Java命令的时候使用-cp 参数来修改当前程序使用的Classpath)
JVM加载类的实现方式,我们称为 双亲委托模型:
如果一个类加载器收到了类加载的请求,他首先不会自己去尝试加载这个类,而是把这个请求委托给自己的父加载器,每一层的类加载器都是如此,因此所有的类加载请求最终都应该传送到顶层的Bootstrap ClassLoader中,只有当父加载器反馈自己无法完成加载请求时,子加载器才会尝试自己加载。
双亲委托模型的重要用途是为了解决类载入过程中的安全性问题。
假设有一个开发者自己编写了一个名为Java.lang.Object的类,想借此欺骗JVM。现在他要使用自定义ClassLoader来加载自己编写的java.lang.Object类。然而幸运的是,双亲委托模型不会让他成功。因为JVM会优先在Bootstrap ClassLoader的路径下找到java.lang.Object类,并载入它

下面关于面向对象的一些理解哪些是错误的( C )
A.面向对象的最重要的特性是支持继承、封装和多态
B.系统设计应该遵循开闭原则,系统应该稳定不不可修改,但应支持通过继承、组合等方式进行扩展
C.函数式的语言必然是面向对象的语言
D.面向对象设计时,每个类的职责应该单一,不要再一个类中引入过多的接口
E.过程式语言和面向对象的语言各有其优势,过程式语言更加灵活,面向对象语言更加强调抽象和封装
F.*Java和C++都是静态类型的面向对象编程语言
错误原因:C、函数式的语言必然是面向对象的语言 C语言不是面向对象,但是函数式。


推荐阅读
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • 在将 Android Studio 从 3.0 升级到 3.1 版本后,遇到项目无法正常编译的问题,具体错误信息为:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDemoProductDebugResources'。 ... [详细]
  • 本文介绍了如何使用开源工具ChkBugReport来解析和分析Android设备的Bugreport。ChkBugReport能够将复杂的Bugreport转换为易于阅读的HTML报告,并提供详细的图表和分析结论。 ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
  • 回顾两年前春节期间的一个个人项目,该项目原本计划参加竞赛,但最终作为练习项目完成。独自完成了从编码到UI设计的全部工作,尽管代码量不大,但仍有一定的参考价值。本文将详细介绍该项目的背景、功能及技术实现。 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 解决Visual Studio Code中PHP Intelephense误报问题
    PHP作为一种高度灵活的编程语言,其代码结构可能导致Intelephense插件在某些情况下报告不必要的错误或警告。自1.3.3版本起,Intelephense引入了多个配置选项,允许用户根据具体的工作环境和编程风格调整这些诊断信息的显示。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • flea,frame,db,使用,之 ... [详细]
  • 腾讯云移动推送TPNS(Tencent Push Notification Service)为APP开发者和运营人员提供了一站式、高效、稳定的推送解决方案,帮助提升用户活跃度和运营效率。 ... [详细]
author-avatar
草原华子无敌_531
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有