第1 章 第一节:基础语法

news2024/10/1 19:14:21

第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);

        // 获取int
        System.out.print("请输入一个整数: ");
        int i = sc.nextInt();
        System.out.println("你输入的整数是: " + i);

        // 获取long
        System.out.print("请输入一个长整数: ");
        long l = sc.nextLong();
        System.out.println("你输入的长整数是: " + l);

        // 获取float
        System.out.print("请输入一个浮点数: ");
        float f = sc.nextFloat();
        System.out.println("你输入的浮点数是: " + f);

        // 关闭Scanner
        sc.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.coloradmin.cn/o/2182982.html

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

相关文章

User-Agent在WebMagic爬虫中的重要性

对于需要从网站上抓取数据的开发者来说,WebMagic是一个强大的工具。它是一个简单灵活的Java爬虫框架,用于抓取网页数据。在爬虫技术中,User-Agent(用户代理)是一个关键的HTTP请求头,它告诉服务器关于客户端…

中九无科研无竞赛保研经验帖——上交软院、中科大计算机、复旦工程硕、南大工程硕、浙大软件

本人bg: 学校:中九软件工程rk:夏令营5%,预推免3%(都是写的预估排名)六级:480, 四级:540科研:无竞赛:美赛M,以及水赛国三、省二若干 保研前期没有…

jenkins项目发布基础

随着软件开发需求及复杂度的不断提高,团队开发成员之间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。Jenkins 自动化部署可以解决集成、测试、部署等重复性的工作,工具集成的效率明显高于人工操作;并且持续集成可以更早的获取代码变更的信息,…

向日葵远程控制怎么下载?推荐4个远程控制工具网站。

从官网下载的软件质量有保障,安全性和可信度也比较好。所以不管需要使用什么样的软件,最好是到官网下载。如果是有远程控制的需求,我可以推荐几个安全可靠的网站给大家。 1、向日葵远程控制大师 直达链接:https://dow…

【STM32单片机_(HAL库)】4-3【定时器TIM】定时器输出PWM实现呼吸灯实验

1.硬件 STM32单片机最小系统LED灯模块 2.软件 pwm驱动文件添加定时器HAL驱动层文件添加GPIO常用函数定时器输出PWM配置步骤main.c程序 #include "sys.h" #include "delay.h" #include "led.h" #include "pwm.h"int main(void) {HA…

运用循环单链表实现约瑟夫问题

代码&#xff1a; #include <iostream> using namespace std; struct node {int id;node *next; }; int len0; //存现在链表的长度int main() {node*head,*temp,*tail;headnew node;head->next head;tailhead;int A,B;cin>>A>>B;lenA;int num1;while…

unity一键注释日志和反注释日志

开发背景&#xff1a;游戏中日志也是很大的开销&#xff0c;虽然有些日志不打印但是毕竟有字符串的开销&#xff0c;甚至有字符串拼接的开销&#xff0c;有些还有装箱和拆箱的开销&#xff0c;比如Debug.Log(1) 这种 因此需要注释掉&#xff0c;当然还需要提供反注释的功能&am…

数据结构-链表笔记

移除节点 203. 移除链表元素 - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListN…

windows上安装mingw教程及mingw64国内下载地址汇总

​ 首先进去官方官网地址&#xff1a;https://www.mingw-w64.org&#xff0c;注意如果下载不了或者下载慢可以使用下面提供国内下载地址&#xff0c;可以满速下载。 进入官网后&#xff0c;直接在左侧点击Downloads即可。 点击Sources选项   点击Downloads后&#xff0c;在右…

qfluentwidgets组件库的配置与使用

文章目录 前言一、安装1 安装conda环境2 配置designer和pyuic3 查看是否成功二、简单使用前言 这篇博客用来记录qfluentwidgets组件库的基本使用。 如果你愿意花200块钱去官网github地址买一份作者的组件库,添加到了designer中了。那么本博客前面的所有配置对你都是没有用的,…

Chromium 用户数据目录User Data 初始化过程c++

一、先说结论 User Data 路径优先级如下&#xff1a; 1、注册表中策略配置的路径。 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Chromium UserDataDir"xx_path" 2、命令行中的路径。 --user-data-dir"xx_path" 3、默认用户路径 %LOCALAPPDATA%/Chrom…

在使用visual studio 2022,运行程序时弹窗:“ 此任务要求应用程序具有提升的权限“

系列文章目录 文章目录 系列文章目录前言一、问题原因二、解决方法1.第一种解决方法2.第二种解决方法 前言 在使用visual studio 2022&#xff0c;运行程序时弹窗&#xff1a;" 此任务要求应用程序具有提升的权限"&#xff0c;每次都要再次点击“使用其他凭证重新启…

【LeetCode HOT 100】详细题解之二叉树篇

【LeetCode HOT 100】详细题解之二叉树篇 94 二叉树的中序遍历方法一&#xff1a;递归方法二&#xff1a;迭代 104 二叉树的最大深度方法一&#xff1a;递归方法二&#xff1a;迭代 226 翻转二叉树方法一&#xff1a;递归方法二&#xff1a;迭代 101 对称二叉树方法一&#xff…

麦克斯韦方程组的独立方程与辅助方程

第四个方程可以由第一个方程得到。注意哈密顿算符求散度是对空间求偏导&#xff0c;也就是xyz&#xff0c;而麦克斯韦方程组中的矢量除了xyz还有t也是自变量。 方程1推出方程4&#xff08;用到求微分的换顺序&#xff09; 方程2推出方程3&#xff0c;用到电流面密度和电荷体密…

python调用opencv报错“module ‘cv2‘ has no attribute ‘namedWindow‘”

之前电脑上使用pip install安装过opencv相关的python模块&#xff0c;不过后续学习opencv时主要使用OpenCVSharp在VS2022中创建项目测试。今天学习过程中突然想用python试试&#xff0c;不过运行下面代码时报错“module ‘cv2’ has no attribute namedWindow”。 import cv2c…

单调队列与单调栈<2>——单调栈

单调栈的定义 单调递增栈 栈中元素从栈底到栈顶是递增的。 单调递减栈 栈中元素从栈底到栈顶是递减的。 单调栈的核心内容 我们从左到右遍历元素&#xff0c;构造单调栈&#xff08;从栈顶到栈底递增或减&#xff09;&#xff1a;在 i 从左往右遍历的过程中&#xff0c;我…

【高频SQL基础50题】16-20

day by day. 目录 1.进店却未进行过交易的顾客 2.项目员工 I 3.销售分析III 4. 判断三角形 5. 电影评分 1.进店却未进行过交易的顾客 连接题。 思路&#xff1a;根据trans表中的visit_id号在 visits表中排除&#xff0c;再将剩下的合并相同客户&#xff08;累加visit…

300Kg载重履带式无人车底盘定制开发技术详解

关于300Kg载重履带式无人车底盘的定制开发技术&#xff0c;可以从以下几个方面进行详细解析&#xff1a; 一、总体设计思路 300Kg载重履带式无人车底盘的定制开发&#xff0c;旨在打造一款承载能力强、行驶稳定、适应复杂地形的无人运输平台。设计过程中需充分考虑动力系统的…

【C++ 前缀和 数论】1590. 使数组和能被 P 整除|2038

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 质数、最大公约数、菲蜀定理 LeetCode 1590. 使数组和能被 P 整除 给你一个正整数数组 nums&#xff0c;请你移除 最短 子数组&#xff08;可以为 空&#xff09;&am…

麒麟系统文件扩展名所表示的文件种类

图 1 .conf 配置文件&#xff0c;如图2&#xff1b; 图 2 .Deb 安装包&#xff0c;如图3&#xff1b; 图 3 .sh 可执行程序&#xff0c;如图4&#xff1b; 图 4 .tar或者.gz 压缩包&#xff0c;如图5&#xff1b; 图 5 .bin 二进制文件&#xff0c;如图6&#xff1b; 图 6…