java 基础学习1

news2024/11/20 20:32:03

目录

一.注释

二.关键字

三.字面量

四.变量和标识符

五.键盘录入 

六.运算符


一.注释

1.单行注释://注释信息

2.多行注释:/* 注释信息*/

3.文档注释:/** 注释信息*/   

注:文档注释暂时用不上

二.关键字

关键字: 被Java赋予了特定涵义的英文单词。
1.关键字的字母全部小写。
2.常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。 

例如:class关键字表示定义一个类,后面跟随类名

 

三.字面量

字面量:告诉程序员数据在程序中的书写格式

执行:

public class hlt1 {
    public static void main(String[] args) {
        System.out.println(123);
    }
}

注意:

null需要通过字符串形式打印出来

特殊字面量:

四.变量和标识符

 1.变量的声明:在使用变量之前,需要先声明它们。声明变量时需要指定变量的类型和名称。例如,int num; 声明了一个整数类型的变量名为 num。

2.变量的赋值:在声明变量后,可以通过赋值将具体的数据存储到变量中。例如,num = 10; 将整数值 10 赋给了变量 num。

3.变量的初始化:声明变量的同时也可以进行赋值操作,这称为变量的初始化。例如,int num = 10; 声明并初始化了一个整数类型的变量 num。

4.变量的命名规则:Java对变量命名有一些规则。变量名只能包含字母、数字、下划线和美元符号,并且不能以数字开头。此外,变量名是区分大小写的。

5.变量的作用域:变量的作用域指的是变量在程序中的可见范围。在Java中,变量可以具有不同的作用域,如方法内部、代码块内部或类的成员变量等。

6.数据类型:Java中的变量都有特定的数据类型,用于指定变量可以存储的数据范围和所占内存空间。常见的数据类型包括整数类型(如int、long)、浮点数类型(如float、double)、字符类型(char)和布尔类型(boolean)等。

注意:如果要定义long类型的变量,在数据值的后面需要加一个L作为后缀。

           定义float类型变量的时候,数据值也需要加一个F作为后缀。

五.键盘录入 

Java帮我们写好- -个类叫Scanner,这个类就可以接收键盘输入的数字。

 演示如何使用Scanner类实现键盘录入:

import java.util.Scanner;

public class KeyboardInputExample {
    public static void main(String[] args) {
        // 创建Scanner对象
        Scanner scanner = new Scanner(System.in);

        // 提示用户输入信息
        System.out.print("请输入您的姓名:");

        // 使用Scanner的nextLine方法获取用户输入的一行文本
        String name = scanner.nextLine();

        // 提示用户输入年龄
        System.out.print("请输入您的年龄:");

        // 使用Scanner的nextInt方法获取用户输入的整数
        int age = scanner.nextInt();

        // 输出用户输入的信息
        System.out.println("您的姓名是:" + name);
        System.out.println("您的年龄是:" + age);

        // 关闭Scanner对象
        scanner.close();
    }
}

在上面的示例中,我们通过创建Scanner对象并传入System.in参数来实现键盘录入。然后使用Scanner的nextLine方法获取用户输入的一行文本,使用nextInt方法获取用户输入的整数。最后,输出用户输入的信息。

注意:当使用Scanner类进行键盘录入时,需要确保输入的数据类型与所期望的数据类型相匹配,否则可能会出现异常。此外,在程序结束后,应该调用Scanner对象的close方法来关闭Scanner对象,释放资源。

六.运算符

运算符就是对常量或者变量进行操作的符号。比如: +  -  *  /

  • 表达式:

​   用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式。

​   比如:a + b 这个整体就是表达式。

​   而其中+是算术运算符的一种,所以这个表达式也称之为算术表达式。

  • 注意:

/:1.整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。

2.小数直接参与运算,得到的结果有可能是不精确的。

System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335

%:取模、取余。

   他做的也是除法运算,只不过获取的是余数而已。

System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
应用场景:
//可以利用取模来判断一个数是奇数还是偶数
System.out.println(15 % 2);//1  奇数
  • 隐式转换:(自动转换)

也叫自动类型提升。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。(就是小的给大的,可以直接给)

int i = 10;
double d = i; // 自动转换为 double 类型
System.out.println(d);//输出是10.0

* 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。

* byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。

byte b1 = 10;
byte b2 = 20;
??? result = b1 + b2;//int
问变量result是什么类型的?

 因为b1和b2都是byte类型的。所以在参与计算的时候,变量b1和变量b2里面的值都会自动提升为int类型的。最终其实就是两个int类型的相加,最终结果也是int类型的。

取值范围从小到大的关系:

​   byte short int long float double

  • 强制转换

当一个大范围的数据类型被赋值给一个小范围的数据类型时,需要使用强制转换。强制转换可以通过将变量的类型放在括号中来实现。

double d = 10.5;
int i = (int) d; // 强制转换为 int 类型
System.out.println(i);

需要注意的是,强制转换可能会导致数据丢失(数据的精度丢失)或溢出,因此需要谨慎使用。

  •  自增自减运算符

放在变量的前面,我们叫做先++。 比如:++a

 放在变量的后面,我们叫做后++。 比如:a++

注意:不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

int a = 10;
a++;//就是让变量a里面的值 + 1
System.out.println(a);//11
++a;//就是让变量a里面的值 + 1
System.out.println(a);//12
  • 字符串的+操作

当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。(字符串只有+操作,没有其他操作)

当连续进行+操作时,从左到右逐个执行的。

1 + "abc" + 1

结果:"1abc1"

1 + 2 + "abc" + 2 + 1

 结果:“3abc21” 

注意:第一步:1 + 2  在这个过程中,没有字符串参与的,所以做的是加法运算,结果为3。

第二步:3 + "abc"。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc"。

​第三步:"3abc" + 2。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串"3abc2"。

第四步:"3abc2" + 1。在这个过程中,有字符串参与的,所以做的是拼接操作,产生一个新的字符串“3abc21”

String name = "hzttao";
System.out.println("我的名字是" + name);

结果: 我的名字是hzttao

当字符串跟变量相加的时候,实际上是跟变量里面的值进行拼接。

  • 字符的+操作

当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。

char c = 'a';
int result = c + 0;
System.out.println(result);//97
  • 赋值运算符

public class OperatorDemo6 {
    public static void main(String[] args) {
        //1.最为简单的赋值运算符用法
        int a = 10;//就是把10赋值给变量a
        System.out.println(a);

        //2.如果等号右边需要进行计算。
        int b = 20;
        int c = a + b;//先计算等号右边的,把计算的结果赋值给左边的变量
        System.out.println(c);

        //3.特殊的用法
        a = a + 10;//先计算等号右边的,把计算的结果赋值给左边的变量
        System.out.println(a);//20
    }
}
  •  扩展赋值运算符

+=、-=、*=、/=、%=

注意:扩展的赋值运算符中隐层还包含了一个强制转换。

以+=为例:a += b ,实际上相当于 a = (byte)(a + b);

  • 关系运算符

注意:关系运算符最终的结果一定是布尔类型的。要么是true,要么是false

           在写==的时候,千万不要写成=

  • 逻辑运算符

&:逻辑与(而且)

​   两边都为真,结果才是真,只要有一个为假,那么结果就是假。

|:逻辑或(或者)

​   两边都为假,结果才是假,只要有一个为真,那么结果就是真。

  • ^(异或)的使用

如果两边相同,结果为false,如果两边不同,结果为true

  • !(取反)的使用

是取反,也叫做非。

false取反就是true,true取反就是false(取反最多只用一个)

  • 短路逻辑运算符

分类:  &&   ||

&&:运算结果跟&是一模一样的,只不过具有短路效果。

||:运算结果跟|是一模一样的。只不过具有短路效果。

逻辑核心 :

​   当左边不能确定整个表达式的结果,右边才会执行。 

​   当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。

例如:

1.用户名正确  & 密码正确

 如果使用一个&,不管用户名是否正确都会去验证密码。

2.用户名正确  &&  密码正确

​如果用户名输入正确了,那么才会验证密码是否输入正确。 如果用户名输入错误了,那么就不会再去验证密码是否正确,最终的结果直接为false。从而提高了程序运行的效率。

  • 三元运算符

又叫做:三元表达式或者问号冒号表达式。

格式:关系表达式 ? 表达式1 :表达式2 ;

计算规则:

 计算关系表达式的值。

 如果关系表达式的值为真,那么执行表达式1。

 如果关系表达式的值为假,那么执行表达式2。

int a = 10;
        int b = 20;

        //格式:关系表达式 ? 表达式1 : 表达式2 ;
        //注意点:
        //三元运算符的最终结果一定要被使用。
        //要么赋值给一个变量,要么直接输出。
       int max =  a > b ? a : b ;
  •  运算符的优先级

在Java中涉及了很多的运算符,每一种运算符都有各自的优先级。但是这些优先级不需要记忆。

我们只要知道其中一点: 小括号优先于所有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1416892.html

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

相关文章

任意一个函数都可以写成一个奇函数与一个偶函数之和的形式

定义 张宇30讲明确指出 f(x)f(-x)必定是偶函数 f(x)-f(-x)必定是奇函数 前提:定义域关于原点对称 由上述结论得到:任意一个函数都可以写成一个奇函数与一个偶函数之和的形式,即使该函数是非奇非偶的。 f(x) 1 2 \frac 12 21​[f(x) f(-x)]…

麒麟系统—— openKylin 安装 mongodb

麒麟系统—— openKylin 安装 mongodb 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。 二、下载解压 MongoDB二、增加环境变量三、配置MongoDB创建数据目录创建日志文件运行 四、加入到服务中 MongoDB是一款高性能、开源的NoSQL数据库,因其灵活的数据结构、…

DCNv4:对视觉应用的动态和稀疏算子的重新思考

摘要 https://arxiv.org/pdf/2401.06197.pdf 我们介绍了可变形卷积v4(DCNv4),这是一种高效且有效的运算符,专为广泛的视觉应用而设计。DCNv4解决了其前身DCNv3的局限性,通过两个关键改进:1. 去除空间聚合中…

java抽象类概述——abstract关键字用法

前言: 打好基础,daydayup! 抽象类 抽象类概述 在java中有一个关键字叫abstract,代表抽象的意思,可用abstract修饰类,成员方法。 抽象类修饰方法 在方法或类前加上abstract关键字 例1:修饰类(在…

AI决策的解构与实践:初探可解释性技术(XAI)

随着人工智能(AI)技术在各个领域的广泛应用,解释性人工智能(XAI)的概念备受瞩目。作为开发者,我们深知AI系统的复杂性,以及对于用户和利益相关者来说理解AI决策过程的重要性。本文将深入探讨可解…

跟着pink老师前端入门教程-day12

二十六、HTML5CSS3的提高 1、HTML5 的新特性 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以…

MyBatis详解(5)-- MyBatis注解

MyBatis详解(5) 注解映射器xml配置文件的缺陷:常用注解1.基本注解:实现简单的增删改查操作。Insert 新增Options(useGeneratedKeys true, keyProperty "主键属性") 主键回填SelectKey ( statement "自增规则&qu…

漏洞复现-EduSoho任意文件读取漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

强化合作!浪潮信息携手业界伙伴筑牢算力底座

以太平金融科技服务(上海)有限公司(以下简称“太平金科”)为例,在算力新型基础设施建设方面,该公司一直不遗余力。近日,该公司更携手全球领先的IT基础设施供应商浪潮信息,优化算力基…

腾讯云幻兽帕鲁服务器创建教程,附4核16G服务器价格表

腾讯云0基础搭建帕鲁服务器4C16G14M服务器稳定无卡顿,先下载SteamCMD,并运行;然后下载Palserver,修改服务ini配置,启动PalServer,进入游戏服务器。腾讯云百科txybk.com分享腾讯云创建幻兽帕鲁服务器教程&am…

【Apollo CyberRT】源码分析之 “component” 模块

代码位置 apollo/cyber/component 功能 在自动驾驶系统中,模块(如感知、定位、控制系统等)在 Cyber ​​RT 下以 Component 的形式存在。不同 Component 之间通过 Channel 进行通信。Component 概念不仅解耦了模块,还为将模块拆…

Maven入门及其使用

目录 一、Maven入门 1.1 初识Maven 1.2 Maven的作用 1.2.1 依赖管理 1.2.2 统一项目结构 1.2.3 项目构建 1.3 Maven坐标 1.4 Maven仓库 1.4.1 Maven仓库概述 二、Maven的下载与安装 2.1 安装步骤 2.1.1 解压安装(建议解压到没有中文、特殊字符的路径下。&#xff09…

C语言-指针的基本知识(上)

一、关于内存 存储器:存储数据器件 外存 外存又叫外部存储器,长期存放数据,掉电不丢失数据 常见的外存设备:硬盘、flash、rom、u盘、光盘、磁带 内存 内存又叫内部存储器,暂时存放数据,掉电数据…

【MIdjourne基础】 |MIdjourney基础参数全解析,各类辅助知识

文章目录 1 参数列表1.1 基础参数列表 2 基础参数详解2.1 模型版本选择2.2 模型出图模式选择2.3 基础生图参数2.3.1 --ar2.3.2 --stylize2.3.3 --no2.3.4 --chaos2.3.5 --quality2.3.6 --stop2.3.7 --hd2.3.8 --repeat 1 参数列表 1.1 基础参数列表 模型版本选择 目标参数作…

Redis -- 前置知识

目录 简要 分布式系统 负载均衡 引入缓存 数据库分表 微服务 小结 简要 redis是存储数据在内存中, 定义变量就是在内存中, 但是redis是在分布式系统中, 才能真正发挥威力, 如果只是单机程序, 那么直接通过变量来存储数据的方式将是最优的选择. …

同为科技(TOWE)自动控制循环定时插座

随着科技的发展,智能化家居已成为我们生活的重要组成部分。作为国内领先的智能家居品牌,同为科技(TOWE)推出的自动控制循环定时插座,无疑将科技与生活完美地结合在一起。 1.外观设计 同为科技(TOWE&#x…

全能相似度计算与语义匹配搜索工具包,多维度实现多种算法,涵盖文本、图像等领域。支持文图搜索,满足您在不同场景下的搜索需求

全能相似度计算与语义匹配搜索工具包,多维度实现多种算法,涵盖文本、图像等领域。支持文图搜索,满足您在不同场景下的搜索需求。 Similarities:精准相似度计算与语义匹配搜索工具包,多维度实现多种算法,覆盖文本、图像等领域,支持文搜、图搜文、图搜图匹配搜索 Similar…

Linux 驱动开发基础知识——总线设备驱动模型(七)

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…

一道CTF签到题

点击题目的签到,提示: 看来需要修改请求的源地址: 上来我先尝试了我最常用的xff,结果不行,于是尝试了其他的几个常用请求头: 1.host头 如果后端从host取值来判断是否是本地就可以通过此方法进行绕过&…

简洁思路推理 KMP 算法——子字符串匹配

例题 28. 找出字符串中第一个匹配项的下标 暴力遍历解法 枚举原串 ss 中的每个字符作为「发起点」,每次从原串的「发起点」和匹配串的「首位」开始尝试匹配: 匹配成功:返回本次匹配的原串「发起点」。 匹配失败:枚举原串的下一个…