Java语言程序设计篇一

Java语言概述

  • Java语言起源
  • 编程语言最新排名
  • 名字起源
  • Java语言发展历程
  • Java语言的特点
    • Java虚拟机
    • 垃圾回收
    • Java语言规范
    • Java技术简介
    • Java程序的结构
      • Java程序注意事项:
      • 注释
      • 编程风格
      • 练习

Java语言起源

  • 1990年Sun公司提出一项绿色计划。
  • 1992年语言开发成功最初取名为Oak(橡树)。
  • Java于1995年5月23日正式发布第一个版本。
  • Java随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
  • Java语言在TIOBE世界编程语言排行榜中一直处于前四位。

编程语言最新排名

在这里插入图片描述

名字起源

Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。
在这里插入图片描述

Java语言发展历程

在这里插入图片描述

Java语言的特点

1、简单易学
  Java自身小巧玲珑,对硬件的要求很低。只需要理解一些基本的概念,就可以编写适合于不同情况的应用程序。Java源于C++语言,但在Java中略去了运算符重载、多重继承、指针、联合体和结构体等概念,并实现了垃圾自动收集大大简化了程序设计者的内存管理工作。
2、面向对象(封装、继承、多态)
  Java语言吸取了C++面向对象的概念,将数据封装于类中,是完全面向对象的。除了很少的基本数据类型,所有的数据都作为对象呈现,所有的GUI构建都是对象。与C++不同,Java语言中的所有函数都必须和对象相关(这些函数被称为类方法),即使用于启动应用程序的主函数也不再是孤立的,必须捆绑在类中。
3、平台无关性(跨平台性)
  无论哪种编程语言编写的程序最终都需要操作系统和处理器来完成程序的运行,平台无关性是指软件的运行不因操作系统、处理器的变化导致程序无法运行或出现运行错误。
4、分布式
  Java的分布性包括操作分布和数据分布,其中操作分布是指在多个不同的主机上布置相关操作,而数据分布是将数据分别存放在多个不同的主机上,这些主机是网络中的不同成员。
5、可靠性
Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集进行内存管理,防止了内容丢失等动态内存分配导致的问题。Java不支持指针,从而防止了对内存的非法访问。Java提供了完善的异常处理机制,程序员可以把一组可能产生运行异常的代码放在异常处理结构中,简化了异常处理过程,增加了程序的健壮性。
6、安全性
   Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统,也避免了指针操作中易产生的错误。Java对程序提供了安全管理器,防止程序的非法访问。

7、支持多线程
  多线程技术允许同一个程序中有两个以上的执行线路,即同时做两件以上的事情。Java支持多线程,允许多个线程共存于同一块内存中,且共享资源。
8、支持网络编程
   Java语言通过它所提供的类库可以处理TCP/IP,用户可以通过URL地址在网络上访问其它资源。

9、编译与解释并存
  由编译器将Java源程序编译成字节码文件,然后再由Java运行系统解释执行字节码文件(解释器将字节码再翻译成二进制码运行) 。

Java虚拟机

核心机制——Java虚拟机
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指令,管理数据、内存、寄存器。

  • JVM用于运行Java应用程序
  • 对于不同的平台,有不同的虚拟机
  • Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处执行”
    在这里插入图片描述

垃圾回收

核心机制——垃圾回收

  • 垃圾回收:将不再使用的内存空间进行回收
  • 在C/C++等语言中,由程序员负责回收无用内存
  • Java不需要程序员负责回收无用的内存:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
  • 垃圾回收在Java程序运行过程自动进行,程序员无法精确控制和干预

Java语言规范

  • Java语言规范(Java Language Specification, JLS)Java语言的语法和语义技术性定义。
  • 应用程序接口(Application Program Interface, API)Java预定义类和接口。
  • Java开发工具包(Java Development Kit, JDK)包含软件库、编译器、解释器以及其它工具。
  • 集成开发环境(Integrated Development Environment, IDE)在一个图形界面中,完成编辑、编译、调试和在线帮助等功能。

Java技术简介

在这里插入图片描述

  • Java SE(Java Flatform, Standard Edition)
    以前称为 J2SE。它允许开发和部署在桌面环境中使用的 Java 应用程序。
  • Java EE(Java Flatform, Enterprise Edition)
    以前称为 J2EE。它帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API。
  • Java ME(Java Flatform, Micro Edition)
    以前称为 J2ME。它为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。

    Java程序的结构

一个复杂的程序可以由一个或多个Java源程序文件构成,每个文件中可以有多个类定义。
一般的Java源程序文件由以下三部分组成:
package语句(0句或1句);
import语句(0句或多句);
类定义(1个或多个类定义)。

Java程序注意事项:

  • Java是严格区分大小写的语言。
  • 一个程序中可以有多个类,但只能有一个类是主类。在Java应用程序中,这个主类是指包含main()方法的类。Java应用程序的主类必须有一个定义为 public static void main(String[] args) 的主方法,这个是Java应用程序执行的入口点。
  • 同一个Java程序中定义的若干类之间没有严格的逻辑关系要求,但它们通常是在一起协同工作的,每一个类都可能需要使用其他类中定义的属性或方法。

注释

  • Java程序包含三种注释
    1、多行注释:用于某行的一部分、单行或多行注释
    /* 注释内容
    注释内容
    */
    2、单行注释:用于单行或不到一行的注释
    // 注释内容
    3、文档注释:可以使用javadoc提取注释,形成文档
    /**注释内容
    注释内容
    */

编程风格

  • 良好的编程风格有利于减少错误,产生容易阅读、易于理解的代码。
  • 注释
    ——类和方法前使用文档注释
    ——方法步骤前使用行注释。
  • 命名
    -变量和方法名使用小写,如果有多个单词,第一个单词首字母小写,其它单词首字母大写。
    -类名的每个单词的首字母大写。
    -常量使用大写,单词间以下划线分隔。

练习

package shujia_test1;

//This program prints Welcome to Java! 
public class Welcome {
	public static void main(String[] args) {
		System.out.println("Welcome to Java!");
	}
}

运行结果:
在这里插入图片描述
博主用心写,读者点关注;互动传真情,知识不迷路

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/780811.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Blender新手入门笔记收容所(一)

基础篇 基础操作 视角的控制 控制观察视角:鼠标中键平移视图:Shift鼠标中键缩放视图:滚动鼠标中键滚轮 选中物体后:移动物体快捷键G,移动后单击鼠标就会定下来。 进入移动状态后:按Y会沿着Y轴移动进入移动…

成人高考本科何时报名-深职训学校帮您规划学习之路

你有想过继续深造自己的学历吗?也许你已经工作多年,但总觉得学历是一块心病,想要通过成人高考本科来提升自己。不用着急,今天我们来聊一聊成人高考本科的报名时间,以及深职训学校如何帮助你顺利完成报名。 深圳成人高…

2024上半年网络工程师考试《应用技术》试题一

阅读以下说明,回答问题。 【说明】 MPLS基于(1)进行转发,进行MPLS标签交换和报文转发的网络设备称为(2),构成MPLS域(MPSDomain)。位于MPLS域边缘、连接其他网络的LSR称为(3),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时&#xf…

文件管理下:文件函数的学习

前言 Hello,小伙伴们你们的作者君又来了,上次我们简单介绍了文件的坐拥并简单提到了数据的读取,和C语言的默认流的作用,今天我将继续带领大家探索文件的奥秘,大家准别好了吗? 在内容开始之前还是按照惯例&#xff0c…

Alt与Tab切换窗口时将Edge多个标签页作为一个整体参与切换的方法

本文介绍在Windows电脑中,使用Alt与Tab切换窗口时,将Edge浏览器作为一个整体参与切换,而不是其中若干个页面参与切换的方法。 最近,需要将主要使用的浏览器由原本的Chrome换为Edge;但是,在更换后发现&#…

Python爬虫系列-让爬虫自己写爬虫(半自动化,代替人工写爬虫)

现在的PC、手机客户端等终端设备大量使用了网页前后端技术,另外主流的网站也会经常会更新,导致以前一个月更新一次爬虫代码,变成了天天需要更新代码,所以自动化爬虫技术在当前就显得特别重要,最近我也是在多次更新某个…

Java | Leetcode Java题解之第220题存在重复元素III

题目&#xff1a; 题解&#xff1a; class Solution {public boolean containsNearbyAlmostDuplicate(int[] nums, int k, int t) {int n nums.length;Map<Long, Long> map new HashMap<Long, Long>();long w (long) t 1;for (int i 0; i < n; i) {long i…

【Java探索之旅】初识多态_概念_实现条件

文章目录 &#x1f4d1;前言一、多态1.1 概念1.2 多态的实现条件 &#x1f324;️全篇总结 &#x1f4d1;前言 多态作为面向对象编程中的重要概念&#xff0c;为我们提供了一种灵活而强大的编程方式。通过多态&#xff0c;同一种操作可以应用于不同的对象&#xff0c;并根据对象…

【Python迭代器探秘】:揭秘迭代器与生成器的魔法,掌握高效循环的艺术

文章目录 一、迭代器的基本概念1.1 迭代器优点1.2 迭代器的编写方法1.3 python内置迭代器函数1.4 小结1.5 迭代器对象与迭代对象1.5.1 区别1. 迭代对象2. 迭代器对象3. 小结 1.5.2 方法区分 二、生成器基本概念1. 生成器函数2. 生成器表达式 一、迭代器的基本概念 迭代器是Pyt…

一.2.(2)基本共射放大电路组成、工作原理;

1.基本共射放大电路组成 共什么取决于输入输出&#xff0c;共剩下的那一极 2.工作原理 输入信号ui通过电容C1加到三极管的基 极&#xff0c;引起基极电流iB的变化&#xff0c;iB的变化又使集电极电流ic发生变 化&#xff0c;且ic的变化量是iB变化量的β倍。由于有集电极电压&…

【数据结构】05.双向链表

一、双向链表的结构 注意&#xff1a;这里的“带头”跟前面我们说的“头节点”是两个概念&#xff0c;带头链表里的头节点&#xff0c;实际为“哨兵位”&#xff0c;哨兵位节点不存储任何有效元素&#xff0c;只是站在这里“放哨的”。 “哨兵位”存在的意义&#xff1a;遍历循…

Django QuerySet对象,filter()方法

filter()方法 用于实现数据过滤功能&#xff0c;相当于sql语句中的where子句。 filter(字段名__exact10) 或 filter(字段名10)类似sql 中的 10 filter(字段名__gt10) 类似SQL中的 >10 filter(price__lt29.99) 类似sql中的 <29.99 filter(字段名__gte10, 字段名__lte20…

LightGlue: Local Feature Matching at Light Speed【文献阅读】

论文&#xff1a;LightGlue: Local Feature Matching at Light Speed 代码&#xff1a;https://github.com/cvg/LightGlue 作者&#xff1a;1 ETH Zurich__2 Microsoft Mixed Reality & AI Lab Abstract 提出的LightGlue是一个深度神经网络用于学习图像间的局部特征匹配。…

基于AOP的数据字典实现:实现前端下拉框的可配置更新

作者&#xff1a;后端小肥肠 创作不易&#xff0c;未经允许严禁转载。 目录 1. 前言 2. 数据字典 2.1. 数据字典简介 2.2. 数据字典如何管理各模块的下拉框 3. 数据字典核心内容解读 3.1. 表结构 3.2. 核心代码 3.2.1. 根据实体类名称获取下属数据字典 3.2.2. 数据字…

python库(6):Pygments库

1 Pygments介绍 在软件开发和文档编写中&#xff0c;代码的可读性是至关重要的一环。无论是在博客文章、技术文档还是教程中&#xff0c;通过代码高亮可以使程序代码更加清晰和易于理解。而在Python世界中&#xff0c;Pygments库就是这样一个强大的工具&#xff0c;它能够将各…

【YOLOv9教程】如何使用YOLOv9进行图像与视频检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

【论文阅读】AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising

论文&#xff1a;2406.06911 (arxiv.org) 代码&#xff1a;czg1225/AsyncDiff: Official implementation of "AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising" (github.com) 简介 异步去噪并行化扩散模型。提出了一种新的扩散模型分布式加…

python脚本“文档”撰写——“诱骗”ai撰写“火火的动态”python“自动”脚本文档

“火火的动态”python“自动”脚本文档&#xff0c;又从ai学习搭子那儿“套”来&#xff0c;可谓良心质量&#x1f44d;&#x1f44d;。 (笔记模板由python脚本于2024年07月07日 15:15:33创建&#xff0c;本篇笔记适合喜欢钻研python和页面源码的coder翻阅) 【学习的细节是欢悦…

001uboot体验

1.uboot的作用&#xff1a; 上电->uboot启动->关闭看门狗、初始化时钟、sdram、uart等外设->把内核文件从flash读取到SDRAM->引导内核启动->挂载根文件系统->启动根文件系统的应用程序 2.uboot编译 uboot是一个通用的裸机程序&#xff0c;为了适应各种芯片&…

盘点8款国内顶尖局域网监控软件(2024年国产局域网监控软件排名)

局域网监控软件对于企业网络管理至关重要&#xff0c;它们可以帮助IT部门维护网络安全&#xff0c;优化网络性能&#xff0c;同时监控和控制内部员工的网络使用行为。以下是八款备受推崇的局域网监控软件&#xff0c;每一款都有其独特的优势和适用场景。 1.安企神软件 试用版领…