JAVA简介-程序员宅基地

技术标签: java  

JAVA简介

java是一种高级的面向对象的程序设计语言,使用java编写的的程序可以在任何计算机、操作系统和支持java的硬件设备上运行。

什么是java

java语言的发展历程

Java是于1995年由Sun公司推出的一种极富创造力的面向对象的程序设计语言,可跨越多平台、可移植性高,由有Java之父之称的James Gosling (詹姆斯高斯林)设计。自诞生以来,Java凭借其易学易用、功能强大的特点得到了广泛的应用。其强大的跨平台特性使Java程序可以运行在大部分系统平台上,甚至 移动电话、嵌入式设备及消费类电子产品等都可以运行Java程序,真正做到“一次编写,到处运行”。

Java是一种通过解释方式来执行的语言,其语法规则和C++类似。与C++不同的是,Java语言简洁得多,而且提高了可靠性,除去了最大的程序错误根源,此外它还有较高的安全性;由于Java可以跨平台,所以Java常被应用于企业网络和Internet环境。

1991年,美国SUN微系统公司为了开发一种能够在消费类电子产品上进行交互式操作的分布式系统框架成立了一个名为Green Team的小组,小组的领导者是James Gosling(Java之父),项目开始之初,小组准备采用C++进行开发,但是鉴于C++的一些弊端,于是开发出一种全新的编程语言,这个语言就是Java的前身OAK(橡树)。

随着项目投标失败,项目组解散,OAK也随之停滞。

1993年,随着Internet互联网的发展以及世界第一个网页浏览器Mosaic的诞生,James Gosling认为OAK的特性与Internet不谋而合,便使用OAK编写了运行与Interne平台上的高交互性网页程序,这便是Java applet的前身。

1995年,OAK正式改名Java,并与5月对外发布jdk1.0,由此,Java语言正式诞生;1997年,发布jdk1.1,实现三周内22万人次下载。

1999年,SUN公司根据应用范围不同发布了Java平台的三个版本:J2SE、J2ME、J2EE。

2005年,SUN发布JDK6.0,同时将J2SE更名为JavaSE、J2ME更名为JavaME、JavaSE更名为JavaEE。

2009年,甲骨文收购SUN公司,同时获得了Java的版权,并与2011年7月发布了Java7正式版。

java语言的特性

简单性

完全的面向对象(类、接口、继承等)

分布式(支持分布式应用开发)

安全性(java提供有安全管理机制以防恶意代码的攻击,类加载器的安全校验以及java虚拟机的沙箱运行模式)

可移植性(java程序在java平台被编译,然后可以在实现这个java平台的任何系统中运行)

健壮性(java的异常处理、垃圾回收、强类型转换等)

多线程(java支持多个线程同时执行,并提供多个线程之间的同步机制)

java三大平台

java SE:java标准版本,主要包含JDK、JRE、JVM和java核心类库,也是java基础学习的内容,能用于开发桌面系统。

java EE:java企业级版本,以SE为基础,提供了一整套服务、API接口和协议,能够开发企业级分布式系统、web应用等。

java ME:java微型版本,随着智能手机(IOS、Android)的普及,目前应用不多,可用于开发汽车导航系统等。

java运行机制

1、需要我们编写带有后缀名为java的文件;

2、使用命令将我们编写的java文件进行编译,编译成.class文件,即字节码文件;

3、使用命令将.class文件交给虚拟机,让虚拟机去执行;

4、虚拟机会做出相应的合法安全检查判断;

5、通过检查后,然后就有虚拟机解释执行为不同平台计算机对应的机器码去执行;

6、如果不能通过合法性的检测,虚拟机就会执行相应的异常程序;

意义在于实现了跨平台,强调是我们的java程序跨平台,而不是虚拟机跨平台

终点在于了解java虚拟机的概念以及JDK、JRE、JVM的关系

java开发环境搭建:

JDK(Java Development Kit) 可以认为就是java的开发环境

JRE(Java Runtime Environment) java的运行环境

JVM(Java Virtual Machine)java虚拟机,运行java的工具

三者之间的关系是JVM包含在JRE中,JRE包含在JDK中,所以我们安装的时候仅仅需要安装JDK就行

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_52021660/article/details/124304931

智能推荐

云原生Kubernetes:简化K8S应用部署工具Helm_helm image build-程序员宅基地

文章浏览阅读1k次。HELM有点类似于 Ubuntu 中的 APT 或 CentOS 中的 YUM。Charts是创建 Kubernetes 应用实例的信息集合,也就是一个 helm 的程序包,它包含了运行一个 k8s 应用所有需要的镜像、依赖关系和资源定义等,必要时还会包含 Service 资源定义,它类似于 yum 的 rpm 文件。HELM v3版本与v2版本的架构变化1. 最大的改动就是移除了 Tiller 组件,所有功能都通过 Helm CLI 与 ApiServer 直接交互。_helm image build

一、antd简介-程序员宅基地

文章浏览阅读4.8w次,点赞6次,收藏35次。版本:v3.26.3react系列有一大堆的组件,可以在ant design官网的,社区精选组件里面看到一、简介antd 是基于 Ant Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。 Ant Design:用空格分隔的首字母大写单词,指代设计语言。 antd:全小写,指代 React UI 组件库。 ant.design:特指 ant.design 网站网址。安装:npm install antd --save使用组._antd

Spring中事务与aop的先后顺序问题-程序员宅基地

文章浏览阅读406次。Spring中的事务是通过aop来实现的,当我们自己写aop拦截的时候,会遇到跟spring的事务aop执行的先后顺序问题,比如说动态切换数据源的问题,如果事务在前,数据源切换在后,会导致数据源切换失效,所以就用到了Order(排序)这个关键字. 我们可以通过在..._spring aop和事务顺序

vue 组件封装 按钮button 支持点击按钮带阴影效果和Loading加载效果_vue u-button 加阴影-程序员宅基地

文章浏览阅读7.4k次。一,子组件shadowButton<template> <!-- 此组件支持自定义按钮文字和自定义按钮图片 --> <button :style="{backgroundColor:btnBgc,color:btnColor,width:width,height:height,fontSize:fontSize,boxShadow:boxShado..._vue u-button 加阴影

hibernate查询时出现LazyInitializationException异常的解决办法_查询对象有hibernatelazyinitializer-程序员宅基地

文章浏览阅读403次。一般是访问的属性被代理,无法获取到对应的值,解决方式:重新获取该对象的持久化对象访问属性即可。 比如获取用户的用户组public List getUserGroups(User user) { List list = new ArrayList<>(); if(user != null) { try {_查询对象有hibernatelazyinitializer

使用Kaggle安装MxNet大无语事件流程记录【成功解决】_mxnet 12.1-程序员宅基地

文章浏览阅读200次。我在3月份的时候创建的notebook直接就使用了mxnet,不知道为什么最新5月份的版本就没有mxnet了,后来看了一下三月份的是cuda11.3,但是5月份已经是12.1了,和colab遇到的问题一样,找不到匹配的版本。在尝试几次之后发现可以按照上述博客中的方法安装任意11.x版本的mxnet ,但是低版本的会有警告,别的没有什么,不会出现像colab那样的报错_mxnet 12.1

随便推点

类Unix系统(经常被称为UN*X或*nix)-程序员宅基地

文章浏览阅读308次。九号计划:Unix的后继者,采用UNIX设计与哲学,但更一致地套用至整个分布式系统,功能上并不完全相同。许多旨在为商业用户提供学术用户可用的功能的闭源。这些系统在很大程度上取代了私有副本。这些系统间日益增长的不兼容性导致了包括。进行商业二进制分许可时,出现了许多基于此的闭源系统,包括。衍生出的分布式操作系统,原本由贝尔实验室开发,现在被。的特性,有许多相似处,并且都在一定程度上遵守。- 全部重写,没有UNIX相关的代码。年代出现了各种自由、低成本和不受限的。标准,因此这些变体被成为。386BSD及其子類(_类unix

Could not open /dev/vmmon: No such file or directory. Please make sure that the kerne-程序员宅基地

文章浏览阅读5.2k次。启动虚拟机显示错误Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded.Failed to initialize monitor device.背景:Ubuntu16.04系统电脑上安装的vmware启动显示错误。..._could not open /dev/vmmon: no such file or directory. please make sure that

完美解决 matplotlib 对数上标负号乱码的问题_matplotlib负数对数轴-程序员宅基地

文章浏览阅读2.8k次,点赞11次,收藏16次。1.问题描述在matplotlib中显示中文标题时会出现乱码的问题,关于中文字体的调整见https://blog.csdn.net/txh3093/article/details/106858041但上述操作后仍然会在绘制对数图像时,对数刻度上标为负时的负号会出现乱码。本文将给出解决该问题的永久方案。2.解决方法最近发现有大佬在其他论坛中给出了解决方案,但讲述的有一点复杂,在此直接给出解决方案。通过everything软件搜索mathtext.py,一般在site-packages文_matplotlib负数对数轴

5.布局设计_布局包含设计吗-程序员宅基地

文章浏览阅读601次。在界面设计中,一个容器要放置许多组件,为了美观,为组件安排在容器中的位置,这就是布局设计。java.awt中定义了多种布局类,每种布局类对应一种布局的策略。常用的有以下布局类:FlowLayout,依次放置组件。BoarderLayout,将组件放置在边界上。CardLayout,将组件像扑克牌一样叠放,而每次只能显示其中一个组件。GridLayout,将显示区域按行、列划分成一个个相等的_布局包含设计吗

《Python学习》--- 基础部分_python轮廓提取的数据怎么让他从右到左-程序员宅基地

文章浏览阅读264次。学习笔记1:《Python从实践到入门》一:基础知识1:起步_python轮廓提取的数据怎么让他从右到左

thrift连接池问题_tiostreamtransport.read(tiostreamtransport.java:12-程序员宅基地

文章浏览阅读4.8k次。项目中用到thrift调用搜索的一个接口。后来想每次都要创建连接,为什么不用个连接池。上线之后发现有问题,总是时不时的报错:2015-08-11 15:24:13 [ERROR][apiLogger:86]- error about transportorg.apache.thrift.transport.TTransportException: java.net.SocketExce_tiostreamtransport.read(tiostreamtransport.java:129)

推荐文章

热门文章

相关标签