热门标签 | 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开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Java程序设计第4周学习总结及注释应用的开发笔记
    本文由编程笔记#小编为大家整理,主要介绍了201521123087《Java程序设计》第4周学习总结相关的知识,包括注释的应用和使用类的注释与方法的注释进行注释的方法,并在Eclipse中查看。摘要内容大约为150字,提供了一定的参考价值。 ... [详细]
  • Week04面向对象设计与继承学习总结及作业要求
    本文总结了Week04面向对象设计与继承的重要知识点,包括对象、类、封装性、静态属性、静态方法、重载、继承和多态等。同时,还介绍了私有构造函数在类外部无法被调用、static不能访问非静态属性以及该类实例可以共享类里的static属性等内容。此外,还提到了作业要求,包括讲述一个在网上商城购物或在班级博客进行学习的故事,并使用Markdown的加粗标记和语句块标记标注关键名词和动词。最后,还提到了参考资料中关于UML类图如何绘制的范例。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 初探PLC 的ST 语言转换成C++ 的方法
    自动控制软件绕不开ST(StructureText)语言。它是IEC61131-3标准中唯一的一个高级语言。目前,大多数PLC产品支持ST ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • java io换行符_Java IO:为什么从stdin读取时,换行符的数字表示出现在控制台上?...
    只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ... [详细]
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社区 版权所有