当前位置: 首页 > news >正文

Java 基础语法

Java 是一门广泛使用的编程语言,由于其简单易学和可移植性,已成为开发 Web 应用程序、移动应用程序、桌面应用程序以及企业级应用程序的首选语言之一。在本文中,我们将探讨 Java 的基础语法,包括变量、数据类型、运算符、控制流等。

变量

变量是 Java 中的基本概念之一,用于存储数据。在 Java 中,必须先声明一个变量,然后才能使用它。

变量的声明使用关键字 var 或者具体的数据类型(比如 intdouble 等)。以下是一些变量声明的示例代码:

var age = 18;
int number = 123;
double price = 12.34;
String name = "John";
boolean isStudent = true;

这些代码中,var 是 Java 10 新增的关键字,用于自动推断变量类型。变量的类型一旦确定,就不能再改变。因此,要在声明变量时慎重考虑变量的数据类型。

数据类型

Java 有两类数据类型:基本数据类型和引用数据类型。

基本数据类型

Java 的基本数据类型有八种,分别是:

  • byte:字节类型,占用 8 位,取值范围为 -128 到 127。
  • short:短整型,占用 16 位,取值范围为 -32768 到 32767。
  • int:整型,占用 32 位,取值范围为 -2147483648 到 2147483647。
  • long:长整型,占用 64 位,取值范围为 -9223372036854775808 到 9223372036854775807。
  • float:单精度浮点型,占用 32 位,取值范围为 ±1.4E-45 到 ±3.4E38。
  • double:双精度浮点型,占用 64 位,取值范围为 ±4.9E-324 到 ±1.8E308。
  • char:字符型,占用 16 位,取值范围为 \u0000 到 \uffff。
  • boolean:布尔型,只有两个取值:truefalse

引用数据类型

除了基本数据类型,Java 还有引用数据类型,包括数组、类和接口等。这些数据类型是由开发人员定义的,它们的大小和取值范围不固定,取决于它们所表示的数据类型。

类型转换

在 Java 中,存在自动类型转换和强制类型转换两种类型转换方式。

自动类型转换是指,在表达式中不同类型的数据进行运算时,低精度的数据类型会自动转换为高精度的数据类型。例如,当一个 int 类型的数据和一个 double 类型的数据进行运算时,Java 会自动将 int 类型的数据转换为 double 类型的数据。

强制类型转换是指,将一个数据类型强制转换为另一个数据类型。强制类型转换需要使用圆括号和目标类型,圆括号中放置需要进行类型转换的表达式。例如:

double d = 3.14159;
int i = (int) d;

 

在这个例子中,将一个 double 类型的数据强制转换为 int 类型的数据,变量 i 的值将会是 3。

需要注意的是,在进行强制类型转换时,可能会出现精度损失或者溢出的情况,因此需要谨慎使用。

4.5 控制流程语句

控制流程语句是指能够改变程序执行流程的语句,主要包括条件语句和循环语句。

4.5.1 条件语句

条件语句是指根据条件来选择执行不同的代码块,Java 中的条件语句包括 if 语句和 switch 语句。

if 语句的语法格式如下:

if (condition) {// 执行代码块
}

其中,condition 表示一个布尔表达式,如果 condition 的值为 true,就会执行代码块中的语句。

if 语句也可以与 else 语句一起使用,else 语句用于在 if 语句的条件不满足时执行。

if (condition) {// 执行代码块1
} else {// 执行代码块2
}

switch 语句用于根据一个变量的值来选择执行不同的代码块,语法格式如下:

switch (variable) {case value1:// 执行代码块1break;case value2:// 执行代码块2break;default:// 执行代码块3
}

其中,variable 表示需要判断的变量,value1、value2 等表示 variable 可能的取值,每个 case 后面的代码块用于执行对应的操作,default 用于处理 variable 取值不在 value1、value2 等范围内的情况。

当我们需要对字符串进行修改时,可以使用 Java 中的字符串操作方法。以下是一些常用的字符串操作方法:

  1. 字符串长度:可以通过字符串的 length() 方法获取字符串的长度。
    String str = "Hello World!";
    int length = str.length(); // length = 12
    

  2. 字符串连接:可以使用加号运算符(+)或 concat() 方法将两个字符串连接起来。
    String str1 = "Hello";
    String str2 = "World";
    String result1 = str1 + str2; // result1 = "HelloWorld"
    String result2 = str1.concat(str2); // result2 = "HelloWorld"
    

  3. 字符串截取:可以使用 substring() 方法从字符串中截取一部分。
    String str = "Hello World!";
    String result = str.substring(6); // result = "World!"
    

  4. 字符串查找:可以使用 indexOf() 方法查找一个字符或字符串在字符串中的位置。
    String str = "Hello World!";
    int index1 = str.indexOf('W'); // index1 = 6
    int index2 = str.indexOf("World"); // index2 = 6
    

  5. 字符串替换:可以使用 replace() 方法将字符串中的一个字符或字符串替换为另一个字符或字符串。
    String str = "Hello World!";
    String result = str.replace("World", "Java"); // result = "Hello Java!"
    

  6. 字符串分割:可以使用 split() 方法将一个字符串分割成多个子字符串。
    String str = "Hello,World,Java";
    String[] arr = str.split(","); // arr = ["Hello", "World", "Java"]
    

  7. 字符串比较:可以使用 equals() 方法或者 compareTo() 方法来比较两个字符串是否相等。
    String str1 = "Hello";
    String str2 = "hello";
    boolean isEqual1 = str1.equals(str2); // isEqual1 = false
    int result2 = str1.compareTo(str2); // result2 = -32
    

    Java 中的字符串操作方法可以帮助我们方便地对字符串进行处理和修改,这在实际工作中是非常常见的需求。因此,掌握好这些方法的使用,对于 Java 程序员来说是非常重要的。

相关文章:

Java 基础语法

Java 是一门广泛使用的编程语言,由于其简单易学和可移植性,已成为开发 Web 应用程序、移动应用程序、桌面应用程序以及企业级应用程序的首选语言之一。在本文中,我们将探讨 Java 的基础语法,包括变量、数据类型、运算符、控制流等…...

python下如何安装并使用matplotlib(画图模块)

在搜索命令中输入cmd,以管理员身份运行。 输入以下命令,先对pip安装工具进行升级 pip install --upgrade pip 升级完成 之后使用pip安装matplotlib pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 也可以使用pycharm来安装matp…...

系统分析师---计算机网络思维导图

TCP、IP协议簇(4星) 传输协议:TCP有连接、可靠、有回应机制、三次握手基于TCP的应用层协议:POP3:邮件收取,默认端口110SMTP:邮件发送,默认端口25FTP:文件传输协议&#…...

算法练习(七)数据分类处理

一、数据分类处理 1、题目描述: 信息社会,有海量的数据需要分析处理,比如公安局分析身份证号码、 QQ 用户、手机号码、银行帐号等信息及活动记录。采集输入大数据和分类规则,通过大数据分类处理程序,将大数据分类输出…...

nohup ./startWebLogic.sh >out.log 2>1 解析

在启动weblogic的时候我们经常看到如下的命令: nohup ./startWebLogic.sh >out.log 2>&1 & 从09年开始用weblogic到现在已经过去3年多了 ,今天终于将该命令理解清楚了。 其中 0、1、2分别代表如下含义: 0 – stdin (standa…...

OpenCV 坡度计算(基于DEM,C++版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 假设一个点位于曲面 z = f ( x , y ) z=f(x,y) z=...

IDEA上使用git,知道这几步操作就够了!

前言由于一年多没用git(种种原因不堪回首),所以在上班当天,整个人都不好了,从拉取代码到提交代码,整整花费了不少时间,而且有些操作都不知道啥作用,点也不是,不点也不是&…...

Shell的退出状态(if语句判断的是某个命令的退出状态)

以下内容源于C语言中文网的学习与整理,如有侵权,请告知删除。 一、退出状态 (1)不管是 Bash 内置命令,还是外部的 Linux 命令,还是自定义的 Shell 函数,当它运行结束或者退出时,都…...

Scala面向对象

与java的区别和联系 类的定义: class Person{ var name "scala" def sayHello(){ println("Hello,"name) } def getName name } 注意:如果在定义方法的时候指定了(),那么在调用的时候()可写可不写,如果在定…...

LLaMA-META发布单卡就能跑的大模型

2023年2月25日,Meta使用2048张A100 GPU,花费21天训练的Transformer大模型LLaMA开源了。 1.4T tokenstakes approximately 21 days 以下是觉得论文中重要的一些要点 1)相对较小的模型也可以获得不错的性能 研究者发现在给定计算能力限制的情…...

第一篇自我介绍(单片机)

小白的单片机之旅 🤔自我介绍🤔 😊学习目标😊 😜关于单片机😜 🌝目标公司🌝 🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢…...

Tik Tok品牌营销,如何做好内容打法

TikTok 上做好品牌营销,并不能只关注品牌所获得的视频浏览量和点赞量,根据潜在客户需求生成的内容策略同样至关重要。通过建立营销漏斗模型,可以将 TikTok 策略分为三种不同类型的内容,从具有广泛吸引力的内容转变为具有高度针对性…...

2023年5月软考软件设计师备考经验

一、考试目标: 通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成…...

SpringBoot 2.x ——使用 mail 实现邮件发送

文章目录前言环境、版本等pom依赖引入springboot项目配置文件获取邮箱授权码配置properties文件定义接口信息接收类编写邮件发送服务类编写接口swagger测试1、简单邮件发送2、html格式发送(支持附件)前言 最近再看xxl-job的源码,其中在邮件告警通知中使用到了告警信…...

项目结束先别着急庆祝,项目经理还有这些事要做

项目管理生命周期结束阶段的目的是确认项目可交付成果的完成,使项目发起人满意,并向所有参与者和利益相关者传达项目的最终处置和状态。 项目结束确保项目的所有参与者和利益相关者都清楚后续活动(如新项目、服务过渡、SLA等)&a…...

没想到的 IIFE

没想到的 IIFE 有时候我们想要立即执行一下所定义的函数,可以怎么做呢? function foo(num) {return num ?? 1; }foo();写完然后调用对吧,这是可以的,但你有没有觉得这其实有点脱裤子放屁了,完全可以直接调用就是了…...

「牛客网C」初学者入门训练BC156

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练 🔥座右铭:“不要等到什么都没有了,才下定决心去做” 🚀🚀🚀大家觉不错…...

【Proteus仿真】【STM32单片机】粮仓温湿度控制系统设计

文章目录一、功能简介二、软件设计三、实验现象联系作者一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用声光报警模块、LCD1602显示模块、DHT11温湿度模块、继电器模块、加热加湿除湿风扇等。 主要功能: 系统运行后,LCD1602显示…...

九年时间,倾情投入,JumpServer开源堡垒机v3.0正式发布

2023年2月27日,JumpServer开源堡垒机正式发布v3.0版本。在JumpServer开源堡垒机v3.0版本的设计过程中,我们始终秉持着“内外兼修”的原则,旨在进一步提升用户的使用体验,真正用心做好一款开源堡垒机。 在JumpServer v3.0版本中&…...

【ROS学习笔记5】服务通信

【ROS学习笔记5】服务通信 文章目录【ROS学习笔记5】服务通信前言一、服务通信的理论模型二、服务通信自定义srv三、服务通信自定义srv的Cpp实现四、服务通信自定义srv的Python实现五、Reference写在前面,本系列笔记参考的是AutoLabor的教程,具体项目地址…...

告别抓包烦恼:在Mumu模拟器Android 12上配置Frida的保姆级避坑指南

告别抓包困境:Mumu模拟器Android 12环境Frida全流程实战手册 移动应用安全测试领域正面临一个关键转折点——随着主流应用逐步放弃对Android 9及以下版本的支持,测试人员不得不将工作环境升级到Android 10平台。Mumu模拟器提供的Android 12镜像成为当前最…...

无需前端!Nanbeige 4.1-3B极简WebUI,纯Python打造高级聊天界面

无需前端!Nanbeige 4.1-3B极简WebUI,纯Python打造高级聊天界面 1. 项目概览:当Streamlit遇上二次元设计 如果你正在寻找一个既美观又易部署的大模型交互界面,这个Nanbeige 4.1-3B专属WebUI绝对值得尝试。与传统技术方案不同&…...

Cesium河流流向效果实战:从‘会动’到‘真实’的避坑指南(解决闪烁、错位问题)

Cesium河流流向效果实战:从‘会动’到‘真实’的避坑指南 在三维GIS可视化领域,河流流向动画一直是提升场景真实感的关键细节。当你在水利工程模拟中看到一条自然流动的河流,或在城市内涝分析中观察到雨水流向的动态呈现,这种视觉…...

VMware虚拟化环境部署FLUX小红书V2:隔离开发环境搭建指南

VMware虚拟化环境部署FLUX小红书V2:隔离开发环境搭建指南 1. 环境准备与虚拟机配置 在开始部署FLUX小红书V2之前,我们需要先搭建一个合适的虚拟化环境。VMware作为业界领先的虚拟化平台,能够为我们提供稳定且高性能的隔离开发环境。 首先确…...

PvZ Toolkit终极指南:如何轻松掌控植物大战僵尸游戏体验

PvZ Toolkit终极指南:如何轻松掌控植物大战僵尸游戏体验 【免费下载链接】pvztoolkit 植物大战僵尸 PC 版综合修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztoolkit 你是否曾经在玩《植物大战僵尸》时感到束手无策?想要无限阳光轻松通…...

从医学影像数据到三维可视化:MRIcroGL如何改变你的研究流程

从医学影像数据到三维可视化:MRIcroGL如何改变你的研究流程 【免费下载链接】MRIcroGL v1.2 GLSL volume rendering. Able to view NIfTI, DICOM, MGH, MHD, NRRD, AFNI format images. 项目地址: https://gitcode.com/gh_mirrors/mr/MRIcroGL 你是否曾经面对…...

3分钟搞定智慧树自动刷课:解放双手的学习加速器终极指南

3分钟搞定智慧树自动刷课:解放双手的学习加速器终极指南 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台繁琐的网课学习而烦恼吗&#xff…...

前端工程化配置完整指南

前端工程化配置完整指南:提升开发效率的利器 在当今快节奏的前端开发中,工程化配置已成为提升团队协作效率和项目质量的关键。无论是构建工具、代码规范,还是自动化部署,合理的前端工程化配置能够显著减少重复劳动,确…...

从像素到现实:5分钟搞懂OpenCV中的坐标系转换(附Python代码)

从像素到现实:5分钟搞懂OpenCV中的坐标系转换(附Python代码) 当你用手机拍下一张照片时,屏幕上那些彩色的像素点其实对应着现实世界中的三维物体。这种从二维图像到三维空间的映射关系,正是计算机视觉中最基础也最重要…...

Redis AOF 文件优化技巧

Redis作为高性能内存数据库,其持久化机制中的AOF(Append Only File)通过记录写操作命令确保数据安全,但随着运行时间增长,AOF文件可能膨胀至GB级别,影响性能。本文将分享几个关键优化技巧,帮助开…...