【JAVA SE】初识JAVA

news2024/11/24 0:48:26

✨✨欢迎大家来到Celia的博客✨✨

🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉

所属专栏:JAVA

个人主页:Celia's blog~

目录

​编辑

一、关于JAVA

1.1 JAVA语言简介

1.2 语言优势

1.2.1 简单性

1.2.2 面向对象

1.2.3 分布式

1.2.4 健壮性

1.2.5 安全性

1.2.6 体系结构的独立

1.2.7 可移植性

1.2.8 解释性

1.2.9 高性能

1.2.10 动态性

二、main方法

 2.1 运行JAVA程序

 2.2 关于JDK

 三、注释

 四、标识符

五、关键字


 

一、关于JAVA

1.1 JAVA语言简介

Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

 Java 语言源于 1991 年 4 月,Sun 公司 James Gosling博士 领导的绿色计划(Green Project) 开始启动,此计划最初的目标是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个就是Java的前身: Oak (得名与Java创始人James Gosling办公室外的一棵橡树),但由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1995年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布,并提出“Write once, Run anywhere" 的口号。

 JAVA 发展历程上一些重要的里程碑:

  1. 1995年,Java正式发布。
  2. 1996年1月,Sun公司发布JDK1.0,Java语言有了第一个正式版本的运行环境。
  3. 1998年12月,Sun公司发布JDK1.2(代号Playground竞技场),Java技术体系拆分为3个方向,分别是面向桌面应用开发的J2SE(Java 2 Platform, Standard Edition)、面向企业级开发的J2EE(Java 2 Platform, Enterprise Edition)和面向手机等移动终端开发的J2ME(Java 2 Platform, Micro Edition)。
  4. 2004年9月,Sun公司发布JDK1.5(代号Tiger老虎),J2SE 1.5更名为Java SE 5.0(内部版本号1.5.0),成为Java语言发展史上的又一里程碑。
  5. 2006年11月,Sun公司宣布最终会将Java开源,并在随后的一年多时间内,陆续将JDK的各个部分在GPL v2(GNU General Public License v2)协议下公开了源码,并建立了OpenJDK组织对这些源码进行独立管理。

1.2 语言优势

1.2.1 简单性

  在某种程度上,我们可以把JAVA看作是C/C++的一个”纯净版本“,在JAVA中,不存在头文件、指针、结构、联合、操作符重载等。

1.2.2 面向对象

  在JAVA中,一切皆对象。比如人、房子,这些都算作一个对象,JAVA会将这些对象的多种特性一一描述出来,包括关于这些对象的信息操作方式,也会定义出来,统一封装在一个类中,统一管理。

1.2.3 分布式

  Java有丰富的例程库,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

1.2.4 健壮性

  JAVA采用的指针模型可以消除在访问内存时,重写和消除数据的可能性。JAVA对于数据类型的检查极其严格,避免了许多越界问题,以及数据类型不匹配而造成的不可控因素。在此之外,JAVA还可以检查出很多其他语言只能在运行中才能检测出的问题(比如死循环、逻辑语句常为真/假逻辑错误)。

1.2.5 安全性

  JAVA适用于网络/分布式环境。在研发的时候,为了达到这个目的,研发团队投入了大量精力,以至于让JAVA构建的系统具有防病毒、防篡改的特性。

1.2.6 体系结构的独立

  JAVA不同于其他语言依赖系统运行,JAVA的体系结构是独立出来的。编译器会根据JAVA代码生成一个特定的字节码文件,再按照指定规范生成一系列的机器指令,也就是说,只要有JAVA系统,JAVA文件就可以在任何系统上运行。

1.2.7 可移植性

  与C/C++不同,在JAVA中,没有“依赖具体实现的地方”,JAVA对于所有的数据类型的大小做了明确的规定。比如在JAVA中,int类型永远是32位的整数,但是在C/C++中,int类型可能是16位,也有可能是32位。JAVA的这种规范大大提高了代码的可移植性。

1.2.8 解释性

  Java为了实现与平台无关,自己维护了一套基于栈架构的指令集,Java源代码经过编译之后,字节码文件中的指令就是按照自己的指令集来组织的,但是在具体硬件环境中运行时,系统并不能识别,因为Java程序在执行时,Java解释器会逐条的将字节码文件中的指令翻译成CPU的指令集

1.2.9 高性能

  JAVA可以实现边解释便执行,随着在近些年来JVM的不断优化,比如:JIT、热点代码探测,可以让JAVA程序运行的效率大大提高,在某些场合甚至不亚于C/C++。

1.2.10 动态性

  JAVA比C/C++更见具有动态性,能够适应不同的时代发展环境,库中可以自由添加方法、实例变量,而对客户端没有任何影响。

二、main方法

public class Text{
//修饰        类名
    public static void main(String[] args) {  //main方法
        System.out.println("Hello,Celia!");   //输出Hello,Celia!
    }
}

以上是一个简单JAVA程序的示例。

 一般来讲,JAVA代码由以下三个部分组成:

  • 源文件(扩展名为.java),源文件中有类的定义。类用来表示程序的一个组件,类中的内容必须在花括号中。
  • 类,在类中会有一个或多个方法。方法必须在类的内部声明。
  • 方法,在方法的花括号中编写方法所需要执行的语句。

注意:在一个源文件中只能有一个public修饰的类,且这个类的类名必须与文件名相同。

 2.1 运行JAVA程序

  JAVA是一门半编译型,半解释型语言。javac编译器会先把程序的源文件进行编译,生成一个字节码文件(.class为后缀),此文件与平台无关,仅仅是面向JVM(JAVA虚拟机)的。在这之后,JVM会将字节码文件转换成平台能够理解的形式,这样不论在什么平台上,JAVA代码都能够运行起来。

  • 可以使用记事本或者IDEA(集成开发环境)来编写JAVA程序。(安装了JDK)
  • 在cmd上使用命令来生成以.class为后缀的字节码文件。
     
    javac xxx.java
    //   文件名

  • 在cmd上使用命令来执行字节码文件。
     
    java xxx
    //   只有文件名,没有后缀

 2.2 关于JDK

  • JDK(Java Development Kit):Java开发工具包,提供给Java程序员使用,包含了JRE,同时还包含了编译器javac与自带的调试工具Jconsole、jstack等。
  • JRE(Java Runtime Environment):Java运行时环境,包含了JVM,Java基础类库。是使用Java语言编写程序运行的所需环境。
  • JVM:Java虚拟机,运行Java代码

 三、注释

  在JAVA中,注释主要分为以下三种:

  • //单行注释
  • /*多行注释*/
  • /**文档注释*/
    
    //可以被Javadoc工具解析,生成一个以网页形式的程序说明文档

 四、标识符

  在整个程序中,为类名、方法名、变量所取的名字就是标识符。

  • 可以包含字母、数字、下划线、$符号
  • 标识符不能以数字开头,也不能是关键字

一些规范建议:

  • 类名:每个单词的首字母大写
  • 方法名:首字母小写,后面的每个单词首字母大写
  • 变量名:同方法名

五、关键字

关键字是JAVA事先定义好的,有明确特殊意义的标识符。以下是一些常见的关键字:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Shell】shell编程之数组

目录 一、数组的概念 二、数组定义方法 三、数组 1.获取数组长度 2.获取数组数据列表 3.获取数组下标列表 4.读取某下标赋值 5.数组遍历 6.数组切片 7.数组替换 8.数组删除 四、数组追加元素 五、向函数传数组参数 ​编辑六、数组排序算法 1.冒泡排序 2.直接选…

Vue的学习 —— <路由与网络请求>

目录 前言 正文 一、初识路由 二、初识Vue Router 1、安装Vue Router 2、Vue Router基本使用 三、路由重定向 四、嵌套路由 前言 在之前的学习中了解到单页Web应用通常只有一个HTML页面,所有的组件展示和切换都在这个页面上完成。虽然我们可以通过动态组件…

数据密码机独特的安全性能

数据密码机,作为一种专用的信息安全设备,在现代社会的各个领域中都发挥着至关重要的作用。它以其独特的加密技术和安全性能,为数据的传输和存储提供了坚实的保护屏障。 首先,数据密码机的工作原理是基于复杂的加密算法。这些算法能…

【Javaer学习Python】2、Django的MVT设计模式,完成CRUD小应用

系列文章:学习Python Django的MVT设计模式由Model(模型), View(视图) 和Template(模板)三部分组成,分别对应单个app目录下的models.py, views.py和templates文件夹。它们看似与MVC设计模式不太一致,其实本质是相同的; 实践是检验学…

Leetcode2391. 收集垃圾的最少总时间

Every day a Leetcode 题目来源:2391. 收集垃圾的最少总时间 解法1:前缀和 收集垃圾的时间分为两部分: 垃圾车收拾垃圾的时间:垃圾车收拾一单位的任何一种垃圾都需要花费 1 分钟。三辆垃圾车行驶的时间:每辆垃圾车…

24HN逆向部分wp

24H&N逆向部分wp 菜鸡新手师傅wp,Re 5/9,记录一下qaq(好久没写博客了,水一篇hh) 最喜欢的逆向题 64位,进主函数之后直接看,要求输入第5位为i,然后后面依次相等,长…

线性系统(一)

线性系统(一) 1.什么是线性系统2.高斯消元法3.高斯-约旦消元法4.线性方程组解的结构 链接: 线性系统(二) 1.什么是线性系统 线性:未知数只能是一次方项 非线性: 同时,读者也可以通过作图来更直观地感受&…

HNU-算法设计与分析-作业1

算法设计与分析 计科210X 甘晴void 202108010XXX 前言 这个系列本来想只用一个博客搞定的,谁曾想CSDN对于大批量文字的在线编辑一塌糊涂,感觉走倒车了。只能分成几个博客分别来讲了。后续会有作业-23456。作业重要的是搞懂原因。 文章目录 算法设计与…

怎么把图片改成300dpi?照片dpi调整方法

在进行印刷设计时,例如制作海报、宣传册、名片、杂志等,通常要求图片具有高分辨率,将图片分辨率设为300dpi可以确保图像在印刷过程中保持细节和清晰度,但是修改图片分辨率的方法有哪些呢?今天小编整理了几个关于改变图片分辨率的…

OpenAI王炸更新GPT-4o,具有极强的文本、图片、视频、语音混合理解能力

OpenAI刚刚发布了GPT-4o,这是一种新的人工智能模式,集合了文本、图片、视频、语音的全能模型。能够实时响应用户的需求,并通过语音来实时回答你,你可以随时打断它。还具有视觉能力,能识别视觉物体并根据视觉作出快速的…

使用Docker进行Jmeter分布式搭建

大家好,随着技术的不断发展,对性能测试的要求也日益提高。在这样的背景下,如何利用 Docker 来巧妙地搭建 Jmeter 分布式成为了关键所在。现在,就让我们开启这场探索之旅,揭开其神秘的面纱。前段时间给大家分享了关于 L…

Java ( 框架界面 , 按钮 , 动作监听ActionListener ,鼠标监听MouseListener,键盘监听KeyListener)的使用方法

package 拼图阶段任务.ui;import javax.swing.*; import java.awt.*; import java.awt.event.*;public class UseMethod {public static void main(String[] args) { // 框架的用法JFrame jf new JFrame();// 设置界面的宽高jf.setSize(603,680);// 设置界面的标题jf.setTitle…

k8s 二进制安装 详细安装步骤

目录 一 实验环境 二 操作系统初始化配置(所有机器) 1,关闭防火墙 2,关闭selinux 3,关闭swap 4, 根据规划设置主机名 5, 做域名映射 6,调整内核参数 7, 时间同步 三 部署 dock…

Git项目管理——提交项目和版本回退(二)

个人名片: 🎓作者简介:嵌入式领域优质创作者🌐个人主页:妄北y 📞个人QQ:2061314755 💌个人邮箱:[mailto:2061314755qq.com] 📱个人微信:Vir2025WB…

嵌入式——C51版本Keil环境搭建

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 目标搭建流程下载与安装激活STC环境添加校验是否导入STC环境 目标 ● 了解C51版本Keil开发环境的概念和用途 ● 掌握C51版本Keil环…

PG Vacuum 空间管理工具与pg_freespacemap使用

1.什么是Vacuum: PG pageinspect使用与块空间清理学习-CSDN博客 之前说过PG块更新的特点:先删除后插入,但老元组并不会真正删除,只是把老元组标记为删除状态,这就导致了PG中会有大量的垃圾数据,update所造成的资源消…

LeetCode518:零钱兑换Ⅱ

题目描述 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号…

进程信号 signal

文章目录 信号基础信号的产生OS中的时间 信号的保存sigset_tsigprocmasksigpending 信号的捕捉用户态和内核态sigactionvolatile SIGCHLD 信号基础 生活中的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临…

Blog搭建:pycharm+虚拟环境+django

pycharm创建项目 在pycharm新建项目,选择Django 项目名称:自定义项目位置:自定义创建git:方便上传到github选择虚拟环境方式venvpython解释器位置,和版本,如果你没有下载他会跳转到不同版本的供你下载temp…

分布式计算、并行计算、网格计算、边缘计算

分布式计算 分布式计算是一种计算方法,它将一个大型的计算任务分解成多个子任务,并将这些子任务分布在网络上的多台计算机(节点)上同时执行。这些节点通过通信网络协同工作,共同完成任务。每个节点可以独立处理自己的…