java教程系列一:什么是Java语言?
海上生明月,天涯共此时。

Java是一种通用的计算机编程语言,它具有卓越的通用性、高效性、平台移植性和安全性。它旨在让应用程序开发人员“write once, run anywhere”(WORA),这意味着编译的Java代码可以在支持Java的所有平台上运行,而无需重新编译。
例如,你可以在UNIX上编写和编译Java程序,并在Microsoft Windows,Macintosh或UNIX计算机上运行它,而无需对源代码进行任何修改。WORA是通过将Java程序编译成称为字节码的中间语言来实现的。字节码的格式与平台无关。称为Java虚拟机(JVM)的虚拟机用于在每个平台上运行字节码。

Java的历史
Java最初是由Sun Microsystems的James Gosling开发的(后来被Oracle Corporation收购),并于1995年作为Sun Microsystems Java平台的核心组件发布。该语言的大部分语法来自C和C ++,但它比它们任何一种都简单易学。
在2010年1月27日收购Sun Microsystems之后,Oracle Corporation成为Java SE平台官方实施的当前所有者。此实现基于Sun最初的Java实现。Oracle实施适用于Microsoft Windows,Mac OS X,Linux和Solaris。
Oracle实现打包成两个不同的发行版:
Java运行时环境(JRE),包含运行Java程序所需的Java SE平台部分,面相大多数用户。Java Development Kit(JDK),面向软件开发人员,包括Java编译器,Javadoc,Jar和调试器等开发工具。
垃圾回收
Java使用自动垃圾收集器来管理对象在内存中的生命周期 。程序员只需要确定何时创建对象,并且Java运行时负责在对象不再使用时恢复内存。一旦没有对对象的引用,无法访问的内存就有资格被垃圾收集器自动释放。
如果程序员的代码保存对不再需要的对象的引用,则通常会发生类似于内存泄漏的事情,通常是当不再需要的对象存储在仍在使用的容器中时。如果调用不存在的对象的方法,则抛出“NullPointerException”。
垃圾收集可能随时发生。理想情况下,它会在程序空闲时发生。如果堆上的可用内存不足以分配新对象,则可以保证触发;这可能导致程序暂时失速。Java中不可能进行显式内存管理。
Java Hello world
传统的“Hello,world!”程序可以用Java编写:
public class HelloWorldApplication {
public static void main(String[] args) {
System.out.println("Hello World!"); // Prints Hello World! to the console.
}
}
Java类文件
Java源文件必须以它们包含的公共类命名,并附加后缀.java,例如HelloWorldApplication.java。- 必须首先使用
Java编译器将其编译为字节码,从而生成名为HelloWorldApplication.class的文件。只有这样才能执行或“启动”。 - Java源文件可能只包含一个公共类,但它可以包含多个不具有公共访问权限的类和任意数量的公共内部类。
- 当源文件包含多个类时,请将一个类设置为
“public”,并使用该公共类名称命名源文件。

java教程系列一:什么是Java语言?的更多相关文章
- Java 并发系列之十:java 并发框架(2个)
1. Fork/Join框架 2. Executor框架 3. ThreadPoolExecutor 4. ScheduledThreadPoolExecutor 5. FutureTask 6. t ...
- Java 并发系列之九:java 原子操作类Atomic(13个)
1. 原子更新基本类型类 2. 原子更新数组 3. 原子更新引用 4. 原子更新属性 5. txt java 原子操作类Atomic 概述 java.util.concurrent.atomic里的原 ...
- Java 并发系列之二:java 并发机制的底层实现原理
1. 处理器实现原子操作 2. volatile /** 补充: 主要作用:内存可见性,是变量在多个线程中可见,修饰变量,解决一写多读的问题. 轻量级的synchronized,不会造成阻塞.性能比s ...
- Java入门系列(七)Java 集合框架(JCF, Java Collections Framework)
Java 集合概述 List.Set.Map可以看做集合的三大类 java集合就像一个容器,可以将多个对象的引用丢进该容器中. Collection和Map是java集合的根接口. List List ...
- java教程系列二:Java JDK,JRE和JVM分别是什么?
多情只有春庭月,犹为离人照落花. 概述 本章主要了解JDK,JRE和JVM之间的区别.JVM是如何工作的?什么是类加载器,解释器和JIT编译器.还有一些面试问题. Java程序执行过程 在深入了解Ja ...
- 死磕 java同步系列之JMM(Java Memory Model)
简介 Java内存模型是在硬件内存模型上的更高层的抽象,它屏蔽了各种硬件和操作系统访问的差异性,保证了Java程序在各种平台下对内存的访问都能达到一致的效果. 硬件内存模型 在正式讲解Java的内存模 ...
- Java虚拟机系列(一)---Java内存划分
Java和C++之间有一堵由内存管理和垃圾收集技术所围成的“高墙”,墙外的人想进去,墙内的人却想出来. ------摘自<深入理解Java虚拟机> 作为一个Java程序员,因为虚拟机的好 ...
- Java基础系列(2)- Java开发环境搭建
JDK下载与安装 安装JDK 1.百度搜素JDK8,找到下载地址 2.下载电脑对应的版本 3.双击安装JDK 4.记住安装的路径,可以自定义,默认路径如图 卸载JDK 删除Java安装目录 删除环境变 ...
- Java入门系列(十)Java IO
概述 总体而言,java的读写操作又分为两种:字符流和字节流. 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件. 什么是流? ...
随机推荐
- Jmeter使用csv文件读取测试数据
最近有同事在测试过程中遇到需要造批量测试数据的问题,这些数据往往是同一种单据,但是单据的内容不同,如果手工创建就比较费时费力.那我们用jmeter的csv文件来读取测试数据就完美解决了这个问题. 我们 ...
- Prometheus 集成 Node Exporter
文章首发于公众号<程序员果果> 地址:https://mp.weixin.qq.com/s/40ULB9UWbXVA21MxqnjBxw 简介 Prometheus 官方和一些第三方,已经 ...
- (三十一)c#Winform自定义控件-文本框(四)
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. 开源地址:https://gitee.com/kwwwvagaa/net_winform_custom_control ...
- lxml解析网页
目录 1. 什么是lxml 2. 初次使用 3. xpath 3.2 标签定位 3.3 序列定位 3.4 轴定位 4. 实例 1. 什么是lxml lxml是干什么的?简单的说来,lxml是帮助我们解 ...
- 网络安全攻击与防护--HTML学习
第一节. HTML基本语法(文末有对该文视频讲解) HTML的官方介绍什么的我就不说了,打字也挺累的,只简单介绍一下吧,其他的懂不懂都没关系. HTML全称为Hypertext Markup Lang ...
- 性能测试学习第一天-----概念、环境、LR录制&参数化
1.性能测试的概念: 通过一定的手段,在多并发情况下,获取被测系统的各项性能指标, 验证被测系统在高并发下的处理能力.响应能力.稳定性等,能否满足预期.定位性能瓶颈,排查性能隐患,保障系统的质量,提升 ...
- linux+jenkins+python+svn 自动化测试集成之路
本文背景: 背景1---个人基础: 本机win7上安装pycharm,使用python搭建API自动化测试框架,本地运行Pass.本机上搭建jenkins,创建测试任务,定时构建Pass. 背景2-- ...
- python+unittest框架第四天unittest之断言(一)
unittest中的测试断言分两天总结,hhh其实内容不多,就是懒~ 断言的作用是什么? 答:设置测试断言以后,能帮助我们判断测试用例执行结果. 我们先看下unittest支持的断言有哪些: 对上面 ...
- zabbix利用自带模板-监控mysql性能
环境: zabbix3.4.4 mariadb 5.5.56 要求: 利用zabbix 自带的模板 监控mariadb 上的 并发连接数,慢查询数量,增删改查.请求流量带宽,mysql响应流量带宽等 ...
- Python学习 之 Python入门
第二章 Python入门 2.1 环境安装 2.1.1 下载解释器: py2.7.16 (2020年官方不再维护) py3.6.8 (推荐安装) 1.下载解释器一定去官网下载,https://www. ...