当前位置: 首页 > news >正文

Java(1)入门基础

1. Java简介

1.1 什么是Java

Java 是一款由Sun Microsystems公司(现为甲骨文公司Oracle Corporation的一部分)的James Gosling及其团队在1995年发布的高级编程语言。同时,Java 是一种面向对象的语言,这意味着它允许开发者通过创建类和对象来模拟现实世界的场景和行为。

1.2 Java的主要特性

Java 语言是:

1.强制面向对象的:

Java 语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制。

2.分布式的:

Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java.net),它提供了用于网络应用编程的类库,包括 URLURLConnectionSocket、ServerSocket 等。Java RMI(远程方法激活)机制也是开发分布式应用的重要手段。

3.原生支持多线程的:

Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。

4.跨平台性的:

通过Java语言编写的应用程序在不同的系统平台上都可以运行。(虚拟机)

1.3 JDK(Java Development Kit)

JDK 是提供给 Java 开发人员使用的开发工具集,其中包含了 Java 的开发工具,也包括了 JRE 。

所以安装了 JDK,就不用在单独安装 JRE 了。

注:【JRE:Java 运行环境 ( Java Runtime Environment ):包括 Java 虚拟机(JVM)、Java 编译器和 Java 程序所需的核心类库等

2. HelloWorld

开发第一个程序 HelloWorld

//声明本类所属包
package org.example1;
//Helloworld:类名(可以理解为程序名),注意:必须与文件名保持一致
public class Helloworld {//程序的入口(程序执行时,最先运行的方法),一般叫做 main 方法public static void main(String[] args) {//在控制台输出一段文本“HelloWorld”System.out.println("Hello World!");}
}

注:System.out.print()  与  System.out.println():使用println()方法输出文本后,会在输出的文本后面自动添加一个换行符(\n),使得光标移动到下一行的开始位置。

3. 名词解释

  • 关键字:Java 程序语言已经使用了的标识符(单词)叫做关键字。
  • 包:类似与 Windows 操作系统的文件夹,用来管理 Java 源代码,包名采用点分制,必须使用小写字母。
  • package一种修饰符,用来声明程序所在包。
  • public一种访问修饰符,代表公有的含义,在任意地方都可以使用。
  • class:用来声明一个类(暂时理解为一个程序)的关键字。
  • static:一种修饰符,用来修饰类及类的成员,表示静态的。
  • void:一种修饰符,用来修饰方法的,表示没有返回值。
  • 控制台:就是 Windows 操作系统使用 CMD 命令打开的窗口,又称 Console
  • Pascal:一种命名规范的名称,叫做 Pascal 命名法,该命名法的规则是(名称首字母必须大写,其 后的每个单词的首字母都需要大写)。
  • Camel一种命名规范的名称,叫做 Camel 命名法,该命名法的规则是(名称首字母必须小写,其 后的每个单词的首字母都需要大写)。

4. 关键字、保留字

  • 关键字:ifelsewhileforclasspublicprivate等。
  • 保留字:goto等(尽管在Java中未使用,但作为保留字以避免未来的冲突)。

4.1 关键字

关键字是编程语言中预先保留的单词,它们用于表示语言的语法结构或特定的操作,

也用于定义程序的结构和逻辑,如控制语句(if, else, for, while等)、访问修饰符(public, private等)和类型定义(class, interface等)。

关键字中所有字母都为小写,目前共计 50 个:

关键字详情官方地址

4.2 保留字

保留字是编程语言中当前未使用,但预留给未来版本使用的词汇。

它的存在是为了确保语言的未来发展不会与现有的代码产生冲突。

5. 标识符

对于常量、变量、函数、语句块、类、项目等都需要一个名字,这些我们都统统称为标识符。

命名规则: 

  • 26 个英文字母大小写,0 9_$组成。
  • 数字不可以开头。
  • 不可以使用关键字和保留字。
  • 严格区分大小写。

6. 编码与解码

编码 :将字符转换成计算机可以存储和处理的格式。(二进制编码即指0和1)

解码:将计算机存储的编码格式转换回人类可读的字符。

字符集:编码和解码所采用的规则,我们称为字符集。(字符集有:ASCII、ISO-8859-1、GBK、GB2312、👉UTF-8万国码👈等)

7. 变量

7.1 变量の定义

  • 内存中的一个存储区域。
  • 该区域的数据可以在同一类型范围内不断变化。
  • 变量是程序中最基本的存储单元。
  • 作用:用于在内存中保存数据。

7.2 变量の声明并赋值

int num = 10;
int num1 = 10, num2 = 20;

8. 数据类型

8.1 基本数据类型

整型

byte:8位有符号整数,范围从-128到127。

short:16位有符号整数,范围从-32,768到32,767。

int:32位有符号整数,范围从-2,147,483,648到2,147,483,647。

long:64位有符号整数,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。

浮点型

float:32位单精度浮点数。

double:64位双精度浮点数。

字符型

char:16位Unicode字符。

布尔型

boolean:只有两个可能的值:truefalse。(常用来判断逻辑条件)

8.2 引用数据类型

数组

相同类型的元素组成的固定大小的集合。

类(Class)

用户定义的自定义数据类型,可以包含数据和方法。

接口(Interface)

完全由抽象方法组成的类型,可以被类实现。

9.数据类型转换

9.1 自动类型转换

自动类型转换是指在不需要程序员显式指定的情况下,编译器自动进行的数据类型转换。

通常发生在小范围数据类型向大范围数据类型赋值时。

  • 数值类型:从小范围的整数类型(如byteshort)自动转换为大范围的整数类型(如intlong)。
  • 浮点类型:从float自动转换为double
  • 字符类型char可以自动转换为int(因为char实际上是一个较大的无符号整数)。

9.2 显式(强制)类型转换

显式类型转换是指程序员在代码中明确指定进行的数据类型转换。

通常发生在大范围数据类型向小范围数据类型赋值时,因为可能会丢失数据。

  • 数值类型:如将double显式转换为int,将舍弃小数部分。
  • 浮点转整数:如将floatdouble转换为整数类型时,小数部分将被截断。
  • 整数转浮点:如将int转换为floatdouble,整数将被转换为对应的浮点数。
  • 字符转整数:将char转换为int,可以得到对应的Unicode码点值。
  • 字符串转其他类型:可以使用parseIntparseFloat等方法将字符串转换为数值类型。
String str = "43";
int num = Integer.parseInt(str);
double num2 = 100.0;
int result = (int) (num2 * num2);

 9.3 接收用户控制台输入

//格式
//创建用户接收控制台输入的 sc 对象(暂时理解为变量)
Scanner sc=new Scanner(System.in);
//提示用户输入
System.out.println("请输入学生姓名:");
//接收用户输入
String name=sc.next();
//接收方法有
sc.next();
sc.nextByte();
sc.nextShort();
sc.nextInt();
sc.nextFloat();
sc.nextDouble();
sc.nextBoolean();
sc.nextLong();


http://www.mrgr.cn/news/82825.html

相关文章:

  • PyTorch框架——基于深度学习EfficientDeRain神经网络AI去雨滴图像增强系统
  • Redis源码阅读-源码阅读方式
  • 空间不足导致Oracle集群内存使用率暴增
  • STM32-DMA数据转运
  • 【unity调用c++动态库,c++和c#相互调用】
  • RabbitMQ案例
  • 数据结构-栈与队列笔记
  • 快速入门Spring Cloud Alibaba,轻松玩转微服务
  • 设计模式与游戏完美开发(3)
  • QT实现 端口扫描暂停和继续功能 3
  • 30、论文阅读:基于小波的傅里叶信息交互与频率扩散调整的水下图像恢复
  • 【HarmonyOS】鸿蒙应用点9图的处理(draw9patch)
  • Github提交Pull Request教程 Git基础扫盲(零基础易懂)
  • imageio 图片转mp4 保存mp4
  • 【FTP 协议】FTP主动模式
  • 【TextIn—智能文档解析与DocFlow票据AI自动化处理:赋能企业文档数字化管理与数据治理的双重利器】
  • 【学Rust开发CAD】1 环境搭建
  • WebRtc02: WebRtc架构、目录结构、运行机制
  • unity3d-搞个场景漫游如何实现Alpha
  • Java内存模型与线程
  • 《异步编程之美》— 全栈修仙《Java 8 CompletableFuture 对比 ES6 Promise 以及Spring @Async》
  • 2024年AI图像生成热门模型回顾
  • 苍穹外卖 项目记录 day03
  • Requests聚焦爬虫-数据解析
  • 服务器双网卡NCCL通过交换机通信
  • 【学Rust开发CAD】2 创建第一个工作空间、项目及库