当前位置: 首页 > 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();

相关文章:

Java(1)入门基础

1. Java简介 1.1 什么是Java Java 是一款由Sun Microsystems公司(现为甲骨文公司Oracle Corporation的一部分)的James Gosling及其团队在1995年发布的高级编程语言。同时,Java 是一种面向对象的语言,这意味着它允许开发者通过创…...

2024.1.5总结

今日不开心:这周本来想花点时间学习的,没想到全都花在刷视频,外出消费去了。 今日思考: 1.找对象这件事确实不能强求,顺其自然吧,单身和不单身,其实,各有各的利弊。在一次坐地铁的过程中,我一…...

【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 一、循环控制 / 跳转语句的使用 1. 循环控制语句(for 循环) 2. 循环控制语句(while 循环) 3. 跳转语句(break 语句) 4. 跳转语句(continue 语句&…...

在调用 borrowObject 方法时,Apache Commons Pool 会根据连接池的配置触发一系列相关的方法

在调用 borrowObject 方法时,Apache Commons Pool 会根据连接池的配置触发一系列相关的方法 1. GrpcChannel 的概念 GrpcChannel 是 gRPC 客户端与服务器之间通信的核心组件。它是基于 HTTP/2 的连接,支持多路复用,即通过单个通道可以发送多…...

Linux中的tty和pts概念和区别

目录 1、什么是tty (1)tty的概念 (2)tty0 (3)tty1~6 2、什么是pts (1)pts的含义 (2)pts的具体解释 3、pts与 tty 设备的比较 4、设备文件的位置 1、什…...

【SOC 芯片设计 DFT 学习专栏 -- RTL 中的信号名和 Netlist 中的信号名差异】

Overview 本文将介绍 soc 设计中 RTL-to-Netlist 映射及 RTL 中的信号名和 Netlist 中的信号名差异, 在 SoC设计中,RTL-to-Netlist映射 是从RTL(Register Transfer Level)代码转换为Netlist的过程。这通常涉及将用硬件描述语言&…...

机器学习经典算法——线性回归

目录 算法介绍 一元线性回归模型 多元线性回归模型 ​误差项分析 相关系数 算法案例 一元线性回归预测——广告销售额案例 二元线性回归预测——血压收缩案例 多元线性回归预测——糖尿病案例 算法介绍 线性回归是利用数理统计中回归分析,来确定两种或两种…...

MLU上使用MagicMind GFPGANv1.4 onnx加速!

文章目录 前言一、平台环境准备二、环境准备1.GFPGAN代码处理2.MagicMind转换修改env.sh修改run.sh参数解析运行 3.修改后模型运行 前言 MagicMind是面向寒武纪MLU的推理加速引擎。MagicMind能将人工智能框架(TensorFlow、PyTorch、Caffe与ONNX等)训练好…...

VulnHub—potato-suncs

使用命令扫描靶机ip arp-scan -l 尝试访问一下ip 发现一个大土豆没什么用 尝试扫描一下子域名 没有发现什么有用的信息 尝试扫描端口 namp -A 192.168.19.137 -p- 尝试访问一下端口,发现都访问不进去 查看源代码发现了网页的标题 potato,就想着爆破一下密码 hydr…...

【Flink CDC】Flink CDC的Schema Evolution表结构演变的源码分析和流程图

Flink CDC版本:3.2.1 说明:本文从SchemaOperator接收到,表结构变更事件开始,表结构变更事件应由source端产生,本文不讨论。 可以先看流程图,研究源码。 参考文章: Flink cdc3.0动态变更表结构—…...

【智能算法】改进蚁狮优化算法【matlab】

目录 1 主要内容 2 部分程序 3 程序结果 下载链接 1 主要内容 该程序方法复现《改进蚁狮算法的无线传感器网络覆盖优化》两种改进算法模型,即原始ALO算法的基础上添加了两种改进策略: - 改进1:将原先的间断性边界收缩因子变为连续性边界…...

swagger导出json

要将 Swagger(或者 OpenAPI)文档导出为 JSON 文件,通常有几种常见的方法,具体取决于你使用的 Swagger 工具(如 Swagger UI、Swagger Editor、Swagger Hub 等)。下面列出了几种常见的导出 JSON 文件的方法。 1. 通过 Swagger UI 导出 JSON 文件 如果你在使用 Swagger UI…...

Go语言的 的引用数据类型(Reference Data Types)核心知识

Go语言的引用数据类型(Reference Data Types)核心知识 引言 Go语言作为一种现代编程语言,因其简洁的语法、强大的并发支持以及丰富的标准库而受到广泛欢迎。在Go语言中,数据类型可以分为值类型和引用类型。本文将深入探讨Go语言…...

JAVA解析Excel复杂表头

废话不多说,直接上源码。前后端都有哦~~~~~~~~ 能帮到你记得点赞收藏哦~~~~~~~&#…...

jmeter 中 BeanShell 预处理程序、JSR223后置处理程序使用示例

1. 各个组件如何新建的? 2. "http请求" 组件内容样例: "消息体数据" 源码: {"task_tag": "face_detect","image_type": "base64","extra_args": [{"model"…...

我的创作纪念日——《惊变128天》

我的创作纪念日——《惊变128天》 机缘收获日常成就憧憬 机缘 时光飞逝,转眼间,我已在这条创作之路上走过了 128 天。回顾起 2024 年 8 月 29 日,我满怀忐忑与期待,撰写了第一篇技术博客《讲解LeetCode第1题:两数之和…...

vuedraggable 选项介绍

vuedraggable 是基于 SortableJS 的 Vue 组件,提供了丰富的选项来定制拖拽行为。以下是 vuedraggable 常用的选项和它们的详细说明: 常用选项介绍 group 配置拖拽分组。多个列表可以共享同一个分组,允许它们之间的项目互相拖拽。 group: { na…...

微信小程序获取后端数据

在小程序中获取后端接口数据 通常可以使用 wx.request 方法,以下是一个基本示例: // pages/index/index.js Page({data: {// 用于存储后端返回的数据resultData: [] },onLoad() {this.fetchData();},fetchData() {wx.request({url: https://your-backe…...

ThreadLocal` 的工作原理

ThreadLocal 的工作原理: ThreadLocal 是 Java 提供的一个类,它用于为每个线程提供独立的变量副本。也就是说,多个线程访问同一个 ThreadLocal 变量时,每个线程看到的值都是不同的,相互隔离,互不干扰。 T…...

数据挖掘教学指南:从基础到应用

数据挖掘教学指南:从基础到应用 引言 数据挖掘是大数据时代的核心技术之一,它从大量数据中提取有用信息和知识。本教学文章旨在为学生和初学者提供一个全面的数据挖掘学习指南,涵盖数据挖掘的基本概念、流程、常用技术、工具以及教学建议。…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

深度学习习题2

1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...