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),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、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. 关键字、保留字
- 关键字:
if
,else
,while
,for
,class
,public
,private
等。 - 保留字:
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
:只有两个可能的值:true
和false。(常用来判断逻辑条件)
8.2 引用数据类型
数组:
相同类型的元素组成的固定大小的集合。
类(Class):
用户定义的自定义数据类型,可以包含数据和方法。
接口(Interface):
完全由抽象方法组成的类型,可以被类实现。
9.数据类型转换
9.1 自动类型转换
自动类型转换是指在不需要程序员显式指定的情况下,编译器自动进行的数据类型转换。
通常发生在小范围数据类型向大范围数据类型赋值时。
- 数值类型:从小范围的整数类型(如
byte
、short
)自动转换为大范围的整数类型(如int
、long
)。 - 浮点类型:从
float
自动转换为double
。 - 字符类型:
char
可以自动转换为int
(因为char
实际上是一个较大的无符号整数)。
9.2 显式(强制)类型转换
显式类型转换是指程序员在代码中明确指定进行的数据类型转换。
通常发生在大范围数据类型向小范围数据类型赋值时,因为可能会丢失数据。
- 数值类型:如将
double
显式转换为int
,将舍弃小数部分。 - 浮点转整数:如将
float
或double
转换为整数类型时,小数部分将被截断。 - 整数转浮点:如将
int
转换为float
或double
,整数将被转换为对应的浮点数。 - 字符转整数:将
char
转换为int
,可以得到对应的Unicode码点值。 - 字符串转其他类型:可以使用
parseInt
、parseFloat
等方法将字符串转换为数值类型。
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…...
数据挖掘教学指南:从基础到应用
数据挖掘教学指南:从基础到应用 引言 数据挖掘是大数据时代的核心技术之一,它从大量数据中提取有用信息和知识。本教学文章旨在为学生和初学者提供一个全面的数据挖掘学习指南,涵盖数据挖掘的基本概念、流程、常用技术、工具以及教学建议。…...

2025年06月07日Github流行趋势
项目名称:netbird 项目地址url:https://github.com/netbirdio/netbird项目语言:Go历史star数:14824今日star数:320项目维护者:mlsmaycon, braginini, pascal-fischer, lixmal, pappz项目简介:使…...

第34次CCF-CSP认证真题解析(目标300分做法)
第34次CCF-CSP认证 矩阵重塑(其一)AC代码及解析矩阵重塑(其二)AC代码及解析货物调度AC代码及解析 矩阵重塑(其一) 输入输出及样例: AC代码及解析 1.线性化原矩阵 :由于cin的特性我们…...

【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录、退款业务记录
【产品业务设计】支付业务设计规范细节记录,含订单记录、支付业务记录、支付流水记录 前言 我为什么要写这个篇文章 总结设计经验生成设计模板方便后期快速搭建 一个几张表 一共5张表; 分别是: 订单主表:jjy_orderMain订单产…...
【C/C++】algorithm清单以及适用场景
文章目录 algorithm清单以及适用场景1 算法介绍1.1 分类1.2 非修改序列算法1.3 修改序列算法1.4 排序与堆算法1.5 集合操作算法(要求有序)1.5 查找算法1.6 二分查找算法(有序区间)1.7 去重与分区算法1.8 数值算法 <numeric>…...

【前端】es6相关,柯里化
0. 严格模式 严格模式的概念从ES6引进。通过严格模式,可以在函数内部选择进行较为严格的全局或局部的错误条件检测。 MDN中严格模式的描述 严格模式通过抛出错误来消除了一些原有静默错误严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷:有时…...
DuckDB + Spring Boot + MyBatis 构建高性能本地数据分析引擎
DuckDB 是一款令人兴奋的内嵌式分析型数据库 (OLAP),它为本地数据分析和处理带来了前所未有的便捷与高效 🚀。它无需外部服务器,可以直接在应用程序进程中运行,并提供了强大的 SQL 支持和列式存储带来的高性能。 什么是 DuckDB&am…...
.net webapi http参数自定义绑定模型
.NET Web API 中 HTTP 参数自定义绑定模型的深度解析 在 .NET Web API 开发里,常规的参数绑定往往能满足大部分需求。不过,当遇到一些特殊情况时,就需要自定义将 HTTP 参数绑定到 action 特定模型参数了。接下来,我们就深入探讨如…...

算法(蓝桥杯学习C/C++版)
up: 溶金落梧桐 溶金落梧桐的个人空间-溶金落梧桐个人主页-哔哩哔哩视频 蓝桥杯三十天冲刺系列 BV18eQkY3EtP 网站: OI Wiki OI Wiki - OI Wiki 注意 比赛时,devc勾选c11(必看) 必须勾选c11一共有两个方法,任用…...

垂起固定翼无人机应用及技术分析
一、主要应用行业 1. 能源基础设施巡检 电力巡检:适用于超高压输电线路通道的快速巡查,实时回传数据提升智能运检效率。 油田管道监测:利用长航时特性(1.5-2小时)对大范围管道进行隐患排查,减少人力巡…...

Qt/C++学习系列之Excel使用记录
Qt/C学习系列之Excel使用记录 前言The process was ended forcefully.解决方式断点查语句问题 总结 前言 在项目中解析条目达50多条,并且都需要将对应的结果进行显示。为了将结果显示的更加清晰,考虑采用QTableWidget进行表格设置,而在使用过…...