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基础入门了解相关推荐

  1. 叮!您收到一份超值Java基础入门资料!

    摘要:Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家J ...

  2. java基础入门课后习题_《Java基础入门》课后习题及答案

    <Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 <Java基础入门>课后习题 第1章Java开发入门 一.填空 ...

  3. 叮!您收到一份超值Java基础入门资料! 1

    Java语言有什么特点?如何最大效率的学习?深浅拷贝到底有何区别?阿里巴巴高级开发工程师为大家带来Java系统解读,带你掌握Java技术要领,突破重点难点,入门面向对象编程,以详细示例带领大家Java ...

  4. Linux中的Java类,Java基础入门学习-Java中类的属性

    Java基础入门学习-Java中类的属性 发布时间:2006-05-27 00:46:15来源:红联作者:WWW Public.private.protected显示了三种类中的属性和服务的类型,pu ...

  5. JAVA中整型常量的长度,Java基础入门篇(三)——Java常量、变量,

    Java基础入门篇(三)--Java常量.变量, 一.Java常量 (一)什么是常量 常量指的是在程序中固定不变的值,是不能改变的数据.在Java中,常量包括整型常量.浮点型常量.布尔常量.字符常量等 ...

  6. Java 基础入门,小白提升路线图

    1000+最新Java面试题 获取学习路线资料啦 Java的基础知识就像我们所住的房子的地基,如果地基不稳,上面所盖的楼房再宏伟,也是没人敢去入住的,同理Java的基础不牢固,以后也很难成为真正意义上 ...

  7. 大数据必学Java知识(一):Java基础入门语法和安装

    Java基础入门语法和安装 1. Java概述 1.1 Java语言背景介绍(了解) 1.2 Java语言跨平台原理(理解) 1.3 JRE和JDK(记忆) 1.4 JDK的下载和安装(应用) 2. ...

  8. Java基础入门:IDEA软件安装和软件初始化设置

    IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写.所以,需要有JRE运行环境并配置好环境变量. 它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是I ...

  9. Java基础入门--学习笔记

    Java基础入门教程 itheima–java基础小白教程 学习配套软件:eclipse 1.基础知识 (1)常用DOS命令:切换盘–>E:,cd–>进入文件,可多级,cd - --> ...

  10. Java基础入门(六)

    Java基础入门(六) 1 Debug调试 1.1 Debug概述 1.2 Debug操作流程 1.2.1 设置断点 1.2.2 运行加了断点的程序 1.2.3 Debugger窗口和Console窗 ...

最新文章

  1. python工程师-如何面试Python后端工程师?
  2. 神经网络的反向传导到底是在干什么?
  3. 诺基亚报告称:到2020年北美电子邮件流量占比将跌至7%
  4. mysql提交事务_mysql事务的实现原理
  5. java多线程队列_java多线程消费者生产者模式(BlockingQueue 通过阻塞队列实现)
  6. linux磁盘扩容_超详尽!Linux云服务器存储扩容实操
  7. 用Github做一个静态网页(GithubPages)
  8. PCL——向PCD文件写入点云数据
  9. python语法简洁清晰特色之一是强制用什么作为语句缩进_Python解决矩阵问题
  10. 【JSP进阶】JSP九大内置对象,这你也不知道?
  11. CityEngine 2014安装教程
  12. 单片机驱动mos管电路图
  13. java action例子_实例——创建ActionForm Bean
  14. LUA提取免费迅雷账号
  15. 如何使用VSCode开发Qt项目?
  16. vue导出excel文件损坏
  17. 【今日CV 计算机视觉论文速览 第94期】 4 Apr 2019
  18. Python Environment Interpreter
  19. Tensorflow中部分API弃用(tf.sub/tf.mul/tf.neg)
  20. ArcMap模型构建器使用临时工作空间

热门文章

  1. MFC学习笔记--组合框Combo Box一些操作
  2. pmon下修改分辨率示范
  3. 【Kafka】Kafka的Rebalance机制可能造成的影响及解决方案
  4. 从Git上如何拉取远程分支(dev)到本地?
  5. JSON是什么,做什么用的
  6. 基于SSM的书店管理系统
  7. elasticsearch部署过程中各种报错解析
  8. AHCI VS IDE 把我整疯了。。。
  9. 【远程文件浏览器】Unity+Lua开发调试利器
  10. 小型RTK/LITE RTK/Mini RTK CR202(9P+4G+imu) 惯导 实现高精度厘米级定位,输出组合导航位置,定位数据回传服务器