第1 章 第一节:基础语法

news/2024/12/22 20:14:59/

第1 章 第一节:基础语法

1.1书写规则

1.1.1关键字

在Java语言中,已经定义好的,具有一定的功能和作用的英文单词。所有的关键字都是小写的

在Java中总共有51个关键字,还有两个保留字const\goto.

常见的关键字:

if else for while do switch case default break continue return

int byte short long float double char boolean

null true false

class interface enum

public private protected …

static final abstract native …

new

this super…

1.1.2 标识符

编写Java过程中,需要定义的一些名字(即需要我们自己去定义的名字)

例如:类名,方法名,变量名,接口名,枚举名,包名…

四个规则:(法律–必须遵守)

1)只能由字母,数字,_,$组成

2)标识符不能以数字开始

3)标识符不能使用关键字和保留字

4)严格区分大小写

定义规范:(道德)

1)尽量使用具有相应含义的英文

比如:String name;

请不要使用汉语拼音

String xing ming

更不要使用拼音的缩写

String xm

非常用的英文缩写也不要使用

2)定义标识符时,根据不同的功能有以下规则:

类名,接口名,枚举名,采用大驼峰命名法—每个单词的首字母大写,其它的小写,起到分隔的作用

比如:public class StudentInfo{}

变量名,方法名,采用小驼峰命名法,即首单词的所有字母都小写,比如:public class studentName{}

常量:采用全大写字母,_作为单词分隔

final int MAX_COUNT=55

包名:反域名法定义

比如www.situ.com —>com.situ.student.dao

( . 相当于电脑上的 \ 。)

1.1.3变量和常量
1.变量

程序运行过程中,值可以被改变的量(内存)

语法:

数据类型 变量名;

保存一个可以改变的值

赋值:使用赋值运算符 = 可以给变量或者常量进行赋值操作

变量和常量都是有数据类型的,保存的值必须是指定类型的值

int num=100;

对于变量,可以使用=修改它的值

num=200;

在Java中,变量的使用需要注意:

1)变量必须先定义,才能使用

2)变量必须要进行初始化;

2.常量

程序运行工程中,值不可以被改变的量(内存)

语法:

final 数据类型 变量名(即被final修饰的变量是常量)

保存不可以改变得 值,比如圆周率

double PI=3.14;

对于常量,只能赋值一次,不能再修改常量的值

double PI;

PI=3.14; //首次赋值,初始化

PI=3.1415;//是错误的,常量不能修改,是 不允许的

1.1.4数据类型
1.数据的类型

对于一个学生:姓名、性别、学号、年龄、身高、体重…

Java中的数据类型可以分为基本数据类型和引用类型两大类。

2.基本数据类型

基本数据类型有8种:

类型作用内存范围备注
byte整型1字节-128 … 127
short整型2字节-32768 … 32767
int整型4字节−231…231−1
long整型8字节−263…263−1赋值时需要使用L/l
float浮点型4字节-3.40E+38 ~ +3.40E+38赋值时需要使用F/f
double浮点型8字节-1.79E+308 ~ +1.79E+308
char字符型2字节Unicode字符赋值时需要使用’'包括字符
boolean布尔型1字节true、false

Java中的整数常量值,默认为int类型。

Java中的小数常量值,默认为double类型。

3.引用类型

引用类型有3种:数组、类、接口。

枚举也是类。

4.类型转换
4.1自动类型转换

自动转换:

​ 不需要显式的增加任何代码,就可以实现一种数据类型转换成另外一种数据类型。

​ 自动类型转换是指范围小的类型可以不经任何处理自动转换为大的类型,也叫隐式类型转换。注意:boolean不能参与任何数据类型的转换。

举例说明:
在这里插入图片描述

自动转换方向:

在这里插入图片描述

强制类型转换:

可自动转换的类型之间,如果要反过来转换是不可以的,除非使用强制类型转换

​ 小类型变量=大类型变量

​ 强制类型转换是指使用类型转换符,将一种类型转换为另一种类型,也叫显式类型转换。

语法:

变量 = (数据类型) 表达式;
注意

1) 整数类型自动转换为浮点型时,可能造成精度的丢失。

2) 强制类型转换时,可能导致数据和溢出和精度的丢失。

3) 布尔类型不能与其它类型进行转换。

1.1.5 注释

注释就是在嵌入代码中不会被执行,对代码进行解释和说明的文本。一个优秀代码,注释占到40%~60%。

1.单行注释
// 单行注释
2.多行注释
/** 多行注释,可以指定开始和结尾的位置,可以跨多个行*//* 行内注释 */
3.文档注释
/***  文档注释*/

文档注释一般用于对类、接口、属性、方法的解释和说明。

文档注释可以借助javadoc工具生成API文档。

IDE也可以通过读取文档注释,提供相关信息。

比如:
在这里插入图片描述

1.1.6 输入输出
1.输入

在控制台中进行输入使用java.util.Scanner类。

使用前需要引入该类。

写法:Scanner alt+?

import java.util.Scanner;

具体的步骤实现:

1)创建对象

​ Scanner sc = new Scanner(System.in);

​ 即在控制台上创建出一个扫描器,扫描用户输入的内容

2) 使用相应的方法获取指定数据类型的值

​ next(); //获取String类型的值

​ nextInt(); //获取int类型的值

​ nextByte(); //获取byte类型的值

​ nextXXX(); //获取xxx类型的值

获取输入数据:

// 创建Scanner对象Scanner sc = new Scanner(System.in);// 获取字符串
String str = sc.next();// 获取int
int i = sc.nextInt();// 获取long
long l = sc.nextLong();// 获取float
float f = sc.nextFloat();
1.1对应的代码分析
java// 创建Scanner对象
Scanner sc = new Scanner(System.in);
  1. 创建 Scanner 对象
    • 这行代码声明并初始化一个 Scanner 对象,sc`,用于从标准输入流(通常是键盘)读取数据。

读取数据

java// 获取字符串
String str = sc.next();

2.获取字符串

  • sc.next():这个方法读取用户输入的下一个完整的单词,返回类型是 String。如果用户输入了“Hello World”,调用 sc.next() 将返回“Hello”。
java// 获取int
int i = sc.nextInt();

3.获取整数

  • sc.nextInt():这个方法读取下一个输入的整数值。用户输入的内容会被解析为一个 int 类型。如果输入的内容不是有效的整数,将抛出 InputMismatchException 异常。
java// 获取long
long l = sc.nextLong();

4.获取长整型

  • sc.nextLong():这个方法读取下一个输入的长整数值,返回类型是 long。它适用于较大的整数。如果用户输入的内容不是有效的长整数,同样会抛出 InputMismatchException 异常。
java// 获取float
float f = sc.nextFloat();

5.获取浮点数

  • sc.nextFloat():这个方法读取下一个输入的浮点数,返回类型是 float。如果输入的内容不是有效的浮点数,将抛出 InputMismatchException 异常。
1.1.2完整示例

以下是一个完整的示例代码,展示了如何使用 Scanner 类来读取不同类型的输入:

javaimport java.util.Scanner;public class InputExample {public static void main(String[] args) {// 创建Scanner对象Scanner sc = new Scanner(System.in);// 获取字符串System.out.print("请输入一个字符串: ");String str = sc.next();System.out.println("你输入的字符串是: " + str);// 获取intSystem.out.print("请输入一个整数: ");int i = sc.nextInt();System.out.println("你输入的整数是: " + i);// 获取longSystem.out.print("请输入一个长整数: ");long l = sc.nextLong();System.out.println("你输入的长整数是: " + l);// 获取floatSystem.out.print("请输入一个浮点数: ");float f = sc.nextFloat();System.out.println("你输入的浮点数是: " + f);// 关闭Scannersc.close();}
}

注意事项

  • 输入类型:在使用 nextInt(), nextLong(), 和 nextFloat() 等方法时,确保输入的值与预期的类型匹配。如果输入的类型不匹配,程序将抛出异常,导致程序崩溃。
  • 使用 nextLine():如果在调用 nextInt(), nextLong(), 或 nextFloat() 之后需要读取字符串,最好在读取整数或浮点数后调用一次 nextLine() 来清除输入缓冲区中的换行符。
  • 关闭 Scanner:在不再需要 Scanner 对象时,使用 sc.close() 方法关闭它,以释放系统资源。
2.输出

输出使用System.out对象的print系列方法:

System.out 依赖于系统的输出对象(控制台)

// 将参数的值打印到控制台,并且不换行
System.out.print(参数);// 直接打印换行
System.out.println();// 将参数的值打印到控制台,换行
System.out.println(参数);

在打印时,可以将不同的数据类型进行字符串化,对于引用数据类型调用tostring方法


http://www.ppmy.cn/news/1533121.html

相关文章

华为设备所有查看命令以及其对应作用

display interface:查看接口的状态、配置和统计信息。display ip interface brief:简要查看接口的 IP 地址信息。display ip routing-table:查看路由表信息。display ospf peer:查看 OSPF 邻居的状态。display ospf routing&#…

快速选择算法--无序数组中寻找中位数 O(n)的算法及证明

一、排序算法 排序的算法是最容易想到的&#xff0c;但是即使是快排&#xff0c;平均复杂度也只有 O ( n log ⁡ n ) O(n \log n) O(nlogn)。 #include <iostream> #include <vector> #include <algorithm> using namespace std;double findMid(vector<…

【吊打面试官系列-MySQL面试题】为表中得字段选择合适得数据类型

大家好&#xff0c;我是锋哥。今天分享关于【为表中得字段选择合适得数据类型】面试题&#xff0c;希望对大家有帮助&#xff1b; 为表中得字段选择合适得数据类型 字段类型优先级: 整形>date,time>enum,char>varchar>blob,text 优先考虑数字类型&#xff0c;其次是…

DevExpress WinForms中文教程:Data Grid - 如何添加或删除行?

本教程介绍DevExpress WinForm的Data Grid控件UI元素和API&#xff0c;它们使您和最终用户能够添加或删除数据行。您将首选学习如何启用内置的数据导航器&#xff0c;然后学习如何使用Microsoft Outlook启发的New Item行添加新记录。最后教程将向您展示基本的API&#xff0c;它…

k8s 部署 prometheus

创建namespace prometheus-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: ns-prometheus拉取镜像 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/quay.io/prometheus/prometheus:v2.54.0prometheus配置文件configmap prometheus-configmap.yaml …

PHP 中,将 JSON 数据与二进制数据之间进行相互转化主要涉及两个步骤:

在 PHP 中&#xff0c;将 JSON 数据与二进制数据之间进行相互转化主要涉及两个步骤&#xff1a; 将 JSON 数据转换为二进制数据将二进制数据转换为 JSON 数据 1. 将 JSON 数据转换为二进制数据 要将 JSON 数据转换为二进制数据&#xff0c;首先需要将 JSON 数据解析成 PHP 数…

爬虫逆向学习(九):记录一个集cookie、请求参数、请求体、响应文本加密的站点反爬

此分享只用于学习用途&#xff0c;不作商业用途&#xff0c;若有冒犯&#xff0c;请联系处理 反爬前置信息 站点&#xff1a;aHR0cHM6Ly96d2Z3LmNxLmdvdi5jbi9pY2l0eS9pY2l0eS9lbmdpbmVlcmluZy9uYXZpZ2F0aW9u 接口&#xff1a;/icity/api-v2/cq.app.icity.engineering.Engine…

滚雪球学MySQL[11.2讲]:MySQL未来学习方向:大数据、云计算与迁移路径

全文目录&#xff1a; 前言11.2 未来学习方向1. MySQL与大数据1.1 MySQL与大数据生态的结合1.2 MySQL在大数据场景中的应用 2. MySQL与云计算2.1 云数据库服务2.2 容器化与MySQL2.3 云计算与MySQL的结合优势 3. MySQL的替代与迁移3.1 迁移到NoSQL数据库3.2 迁移到分布式SQL数据…