[Java基础]基本概念(上)(标识符,关键字,基本数据类型)

news2025/1/18 6:51:14

       hello 大家好,计算机语言各有不同,但本质上都是操作内存和计算。这章的内容是介绍Java中的基本概念展开,包括:标识符,关键字,Java基本数据类型,运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用。这些是Java运行的基础,就像我们人体内的筋骨,肌肉,血管一样。

 

1、标识符

       Java语言中,对于变量,常量,函数,语句块也有名字,我们统统称之为Java标识符,只要可以自己起名字的,都是标识符。

       作用:标识符用来给类、对象、方法、变量、接口和自定义数据类型命名。

        Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。

        命名约定:

        1)类和接口名。每个字的首字母大写,含有大小写。例如,MyClass,HelloWorld,Time等。

        2)方法名。首字符小写,其余的首字母大写,含大小写。尽量少用下划线。例如,myName,setTime等。这种命名方法叫做驼峰式命名。

        3)常量名。基本数据类型的常量名使用全部大写字母,字与字之间用下划线分隔。对象常量可大小混写。例如,SIZE_NAME。

        4)变量名。可大小写混写,首字符小写,字间分隔符用字的首字母大写。不用下划线,少用美元符号。给变量命名是尽量做到见名知义。

2、关键字

     Java关键字是电脑语言里事先定义的,有特别意义的标识符,用做专门用途,有时又叫保留字。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。

      作用:关键字是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特征等信息。

        所有的关键字都是小写。

Java共定义了下面的关键字:

abstract

assert

boolean

break

byte

case

catch

char

class

const

continue

default

do

double

else

enum

extends

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

strictfp

short

static

super

switch

synchronized

this

throw

throws

transient

try

void

volatile

while

还有些关键字没有具体含义,比如goto,const,

3、常量

      使用 final关键字修饰,表示变量只能被赋值一次,一旦被赋值不能被改变,习惯上变量名使用大写。

       我们在项目中,会使用类常量,用static修饰,使一个常量可以被类中的多个方法使用。或者再使用public修饰此时,可以被工程的其他类使用。

4、变量

       变量是程序中基本的存储单元。其实变量代表内存中一小块区域,不同类型的变量在内存中占不同的长度,通过变量名来访问这块区域。所以变量在使用时,要先声明,再赋值,才能使用。

       格式:类型 变量名 = 值;

       从内存的角度分析:在程序执行时,将执行的代码加载到内存中,操作系统找到代码的main方法后开始执行。内存分为4块存取,存储变量和运行时产生的数据:

        code segment:存放代码;

        data segment:存放静态变量,字符串常量;

        stack:存放变量;

        heep:存放new出来的对象;

        放一张马老师总结的图:

 变量有哪些类型呢?

1)按被声明的位置划分:局部变量,成员变量;

局部变量:方法,或语句块中声明的变量;

成员变量:方法外部,类的内部声明的变量;

2)按所属数据类型分为:基本数据类型,引用数据类型;

基本数据类型:4类8种;

数据类型说明

逻辑型:

boolean

用于逻辑运算,程序判断。只能取值:true或false

文本型:

char

表示通常意义上的字符;

字符常量,是用单引号括起来的单个字符,如'a','字';

Java字符,可以使用转义字符'\',将其后面的字符转变为其他的含义。利如:

char c2='\n';

整数型:

byte,short,int,long

整数类型有固定的表数范围和字段长度,不受操作系统影响;

整数类型有3种表现形式:

十进制:1,2,3,300;

八进制:以0开头,05,034;

十六进制:以0X或0x开头,如,0x12;

默认int型,声明long类型,需要在数值后面加L或l;

不同类型有不同的表数范围

 

浮点数型:

double,float

有固定的表数范围和字段长度,不受操作系统系统影响。

浮点类型有2种表现形式:

十进制:1.23,2.56;

科学计数法:3.14e2,3.14E2,3.14E-2;

小数默认double类型,声明float类型,需要在数值后面加F或f;

 

基本类型之间的转换:

1.boolean不能转换为其他数据类型;

2.整数,字符型,浮点型间转换,需要遵循以下原则:

1)容量小的自动转成容量大的,是自动转换,程序员无感知;

2)容量大的转成容量小的,需要强转;可能损失精度或溢出,是强制转换,显式,需要声明类型。

3)多种类型数据混合计算时,系统首先将数据转成最大的类型,再进行计算。

数据类型,按容量大小排序:byte,short,char—>int—>long—>float—>double

byte,short,char之间不能互相转换,需要时,要先转成int,再运算。

强制转换中,哪些场景可能引起精度损失或溢出?

1)整数之间转换,超过目标类型表数范围,对目标表数范围取余;

2)浮点数转整数,会发生截尾,把小数点后面截掉。同样此时的整数超过目标类型表数范围,也会对目标表数范围取余。

       // 1.自动转换和强转
        int a = 129;
        int a1 = -200;
        // 自动转换:1.23默认double类型,a自动转为double类型参与运算;
        double c = a * 1.23;
        // 强转:double类型需要强转到float类型
        float e = (float) (a * 1.23);

        // 2.溢出和精度损失
        byte b = (byte) a; //byte能接收范围是: 负128 .正127
        System.out.println("b = " + b);//b = -127 结果错误
        int f = (int) 158.23;
        System.out.println("f = " + f); // f = 158 精度损失;直接舍弃小数,不是四舍五入

        // 3.声明一个float类型的变量
        float h = 1.23f;
        // 4.如果不加f,1.23是double类型,需要强转为float类型
        float j = (float) 1.23;
        // 5.int 类型转换成long
        long i = 123;
        // 6.声明一个long类型的变量
        long k = 123l;

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

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

相关文章

前端架构师-week6-require源码解析

require 源码解析——彻底搞懂 npm 模块加载原理 require 的使用场景 加载模块类型 加载内置模块:require(fs)加载 node_modules 模块:require(ejs)加载本地模块:require(./utils)支持文件类型 加载 .js 文件加载 .mjs 文件加载 .json 文件…

AI女友同时和1000人谈恋爱,狂赚500万

AI女友,预计暴赚4亿 要说当下什么最火,AI首当其冲无可置疑。00后网络红人红卡琳玛乔丽(Caryn Marjorie)最近与Forever Voices公司合作,通过视频训练等方式打造出个人形象、声音和性格的AI虚拟女友,就像在和…

Redis高可用--持久化

在Web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准实在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提提供正常服务&a…

大疆无人机 MobileSDK(遥控器/手机端)开发 v4版<3>

导读 第三篇文章准备单独拿出来写,因为在大疆为人机的所有功能中,航线规划的功能最为复杂,也相当的繁琐,这里需要说仔细一点,可能会将代码进行多步分解。 航线规划 1)航线打点 点击 按钮进行打点,在地图中手动选择点位选择完成后点击**[完成]**按钮,即可完成航线打点…

新展预告 | YT U LOVE——许峰个展即将亮相!

深圳东方美术馆荣幸地宣布,将于5月20日呈现艺术家许峰在鹏城的首次个展“YT U LOVE”,展出艺术家从2020年至2023年创作的油画、纸本及雕塑40余件作品。此次展览以“YT U LOVE”为题,恰逢兔年,yutu在中国意指玉兔,前后两…

美创科技首家互联网医院数据安全建设案例实践

互联网医院作为医疗服务模式创新发展的新产物,在各项配套政策支持下快速发展。然而,蓬勃之势下,无数双“暗夜之手”也在蠢蠢欲动,试图从中渔利,关乎患者隐私、种类繁多的医疗数据迎来愈加严峻的安全挑战。 某市中心医院…

劳有所学|文献可视化分析工具CiteSpace、vosviewer使用指南

【基于Citespace和vosviewer文献计量学相关论文 】 专题一:文献计量学方法与应用 1 文献计量学方法基本介绍 2 与其他综述方法区别联系 3 各学科领域应用趋势近况 4 主流分析软件优缺点对比 5 经典高分10SCI思路复盘 6 软件安装与Java环境配置 专题二&#…

理解PMP的顺序

PMP,大量考的是“下一步”、“本应该”的顺序逻辑。在学习的时候,我们需要把整本书十个知识领域,穿起来形成一个线性的结构。 在整理的过程中,很多人都会认为,线性结构,应该是这样的: 每个过程…

安卓播放H264/H265实时流(安卓实时预览H264/H265 安卓实时预览AVC/HEVC)

实际项目中经常遇到两种场景,第一种从无人机拿H264/H265码流转GB28181等协议,转协议的同时可能还需要实时预览无人机画面; 第二种是安卓接USB外置摄像头, 由于USB2.0传输带宽有限,对于高分辨率图像, 带宽无法满足YUV图像的传输, 摄像头只好先…

数据的比较

前言 在学习Java过程中&#xff0c;数据的比较是必学的。 对于不同的数据有不同的比较方式。 目录 前言 一、算术比较器 二、equals() 三、Comparable接口 四、Comparator接口 结语 一、算术比较器 算数比较器有&#xff1a;、>、<、>、<、! 但是算数比较器…

win下C++部署深度学习模型之clion配置pytorch+opencv教程记录

win下clion配置pytorch和OpenCV 一、clion配置vs编译器以及测试二、clion配置pytorch2.1、下载libtorch2. 2、环境变量配置2.3、cmakelist.txt编写2.4、main函数测试运行 三、clion配置opencv3.1、源码下载3.2、编译3.3、环境变量配置3.4、cmakelist.txt编写3.5 main函数测试运…

揭 秘~月薪2-3万的程序员一天到底是怎么度过的?

程序员的高薪资&#xff0c;一直是大家热衷讨论的话题&#xff0c;几乎每隔一段时间就会在社交平台被网友们热议一番。 比如这条“月薪2万到3万的程序员的一天是怎么样度过的&#xff1f;”的帖子就一直排在知乎前列。 作为薪资可观的岗位&#xff0c;大家都非常好奇&#xff…

【Fiddler移动端抓包】~抓包不是偷窥,Fiddler教你看透移动应用背后的秘密~

目录 引言 抓包 什么是抓包 哪些场景下需要抓包 Fiddler Fiddler抓包原理 安装 Fiddler移动端抓包 第一步&#xff1a;允许远程计算机连接 第二步&#xff0c;设置手机网络代理 第三步&#xff0c;允许捕获HTTPS连接 第四步&#xff0c;手机安装证书 结语 引言 当…

探寻生机 | 数说故事助力微播易第七届风向大会,研判新风向,洞察新趋势

“过去一年&#xff0c;有的人用ChatGPT谁出具的北京烤鸭图片最准确搞怪&#xff0c;有的人却已经利用虚拟主播单场带货百万&#xff1b;有的人正在被AIGC淘汰&#xff0c;有的人却通过人机协作实现20秒制作100张创意图&#xff1b;有的百万粉丝接不到广告&#xff0c;有的仅靠…

使用python实现微博评论分词与关键词提取(从MySQL数据库中读取数据)

一、实验环境 &#xff08;1&#xff09;Windows 操作系统&#xff1b; &#xff08;2&#xff09;PyCharm 2019.1。 &#xff08;3&#xff09;数据库用户名为 root&#xff0c;密码为 123456. (4) 学校机房电脑&#xff0c;带有mysql 二、获取数据库信息 &#xff08;1&a…

【Linux从入门到精通】进程的基本概念

我们通过对上篇文章冯诺依曼体系结构对硬件进行讲解后&#xff0c; 本篇文章会对进程进行深入讲解。同时会讲解PCB&#xff08;进程控制块&#xff09;。希望本篇文章内容会对你有所帮助。 文章目录 一、再次理解操作系统 1、1 操作系统的作用 1、2 操作系统的管理 二、进程基本…

【Linux】12. 模拟实现shell

回顾 在之前的学习过程中&#xff0c;我们掌握了进程的相关概念&#xff0c;冯诺依曼体系结构&#xff0c;进程地址空间概念&#xff0c;进程状态&#xff0c;进程控制&#xff0c;进程退出&#xff0c;进程替换…等等一系列的基础知识&#xff0c;这些基础知识让我们清楚的知…

Qt6之字符串类内存分配新变化——16的次方增加

qt提供了比标准c string更强大&#xff0c;更丰富&#xff0c;更实用的字符串类QString&#xff0c;它的主要功能22个已经在之前逐一分析过&#xff0c;感兴趣的可前往以下链接查看&#xff0c;本文主要重点分析下qt在字符串类上面做的优化&#xff0c;主要是两个方面&#xff…

当产品进化遇见亿元福利,华帝携手人民日报为消费复苏添了一把火

这个五一黄金周&#xff0c;消费复苏的热火彻底被点燃。统计数据显示&#xff0c;2023年“五一”假期累计超过2.74亿人次出游&#xff0c;消费市场恢复到2019年同期水平。久违的“人间烟火气”再度回归。 除了旅游市场的火爆&#xff0c;同样助燃消费市场的还有全民“厨房焕新…

使用Vue+Python基于卷积神经网络前后端分离实现蔬菜种类预测系统

使用VuePython基于卷积神经网络前后端分离实现蔬菜种类预测系统 一、实现效果 1、种类预测界面 2、数据处理分析界面 3、网络模型界面 4、结果分析界面 二、需求分析 用户通过上传待预测图片到系统&#xff0c;系统预测出该图片对应的蔬菜种类&#xff0c;并且提示用户预测信…