JAVA的数据类型和运算符

JAVA的标识符和数据类型

①:Java中的标识符

标识符是编程时使用的名字:Java对包、类、接口、方法、变量、常量(不包括项目名)等命名时使用的字符序列称为标识符。

Java标识符有如下命名规则:
1、标识符由字母、数字、 “_”、 “$”组成,且首字母不能是数字;
2、不能把Java关键字作为标识符(例如:for while int return等);
3、标识符没有长度限制;
4、标识符区分大小写。

标识符的命名规则建议:

规范(类、接口、方法名、变量名采用驼峰式,包名一律小写,常量一律大写并且有多个单词组成时以_间隔)、易读(简短)、含义清楚(见名知意)。

关于关键字

关键字也称做保留字,是Java语言规定的具有特定含义的标识符。这些关键字已经被Java语言本身所使用。

关键字不能用作变量名、方法名、类名、包名。

下面给出Java语言中已定义好的所有关键字表

注意
goto和const标识符虽从不使用,但作为Java保留字保留 。
Java中所有关键字一律由小写英文字母组成。

②Java中的数据类型

数据类型决定了内存中存储数据的类型及所需内存的大小。

通俗说即:用于定义数据的类型 开辟空间并且界定空间能存什么数据类型的数据
(例如: int age=12;//:开辟一块32字节的空间 保存数据)

Java的数据类型可分为两大类:

基本数据类型:byte、short、int、long、double、float、boolean、char

引用数据类型:类、接口、数组、枚举、注解

下面给出基本的数据类型表

整型:

整型是用来定义整数的关键字,四种整型(byte、short、int、long)都有其表示范围。

Java整形数据类型的有如下4种表示形式:
十进制整数,例如12,-127,0。
二进制整数,以0b开头,例如0b011 (对应于十进制的3 ) (JDK7.0开始)。
八进制整数,以0开头,例如014(对应于十进制的12)。
十六进制整数,以0x或0X开头,例如0XF(对应于十进制的15)。
注意:
由于不同整型数据类型在内存中分配的大小不一样,所以我们在开发中到底使用哪种数据类型要慎重思考,这关系到程序的性能,比如人的年龄不会超过200岁,所以选择short比较合适。选择浮点型的时候也应如此。

不过随着计算机硬件的飞速发展,存储空间的增长飞快,在现代的程序设计中,只要是整型的数据类型,在定义时通常用int或者long

在此处,如果定义整型变量时,int或者long的申请空间仍然不足时,可以用longlong申请一个8字节的内存空间。

浮点型:

浮点型是用来定义小数的关键字,有两种浮点型:float(四字节)和double(八字节)。

浮点型数据有如下两种表示方式:
十进制形式,例如3.14。
科学计数法形式,例如3.14e1。(e1表示10的一次方)

注意:
float f = 1.3;是错误的,1.3默认是double型的。在对float数据进行赋值时,要在数字的后面添加f(或F),否则Java编译器会认为1.3是一个double类型的数值,而double不能直接赋值给float类型,故:正确赋值方式应为float f1 = 1.3f;

布尔型:

布尔型,又称逻辑类型,只有true和false两个取值,默认初始值为false。

注意:这区别与C语言,在C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真。而在Java语言中规定1才为真,0为假。

字符型:

字符型采用Unicode编码,一个Unicode编码占2个字节(即16位),由于字符型不存在正负之分,所以其表示范围为0至2的16次方-1(0~65535)。

该种数据类型的变量可以有以下几种赋值方式
使用英文单引号(’)括起单个字符;例如:

 char c1 = 'a';
   char c2 = '中';//char可以存储一个中文(一个中文也占2个字节);

使用英文单引号括起来十六进制字符代码值来表示单个字符,格式为’\uXXXX’,其中u是约定的前缀,为Unicode的第一个字母,例如:

 char c1 ='\u0061';// 实质代表a字母

可以直接使用数字表示单个字符,例如:

char c2 = 97;//表示a字母

某些特殊的字符可以采用转义符’'来表示,以将其后面的字符转变为其它含义,例如:

  char c1 = '\t';//制表符
   char c2 = '\n';//换行符-New Line
   char c3 = '\r';//回车符-Carriage Return

基本数据类型转换

Java数据类型转换(无论是基本数据类型还是引用类型)
分为:

自动类型转换
强制类型转换

将表示范围小的数据类型赋值给表示范围大的数据类型时,Java自动使用隐式类型完成数据类型转换,即:

  低---------------------------------------------------------------------------------->高
  byte  ----->  short/char ---->  int  ------->  long  ----->  float  -------->  double
float x = 100;//int赋值给float,x的值为100.0
int x = 50; double y; y=x;//int赋值给double,y的为50.0

当把级别高的变量赋值给级别低的变量时,必须使用显式类型转换。显示转换格式:(要转换的类型)被转换的值。

例如:

int x=(int)23.89;//x的值为23
long y=(long)34.98F; ;//y的值为34
byte z = (byte)256;//z的值为0,数据结果出现溢出

注意

显式类型转化(强制类型转换)可能导致数据精度损失或溢出。

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
1. 自我介绍2. 项目都是自己写的吗?3. 我看你用 koa2 写后端,为什么选择它,能讲讲吗?4. 那你提到 koa2 它是不提供中间件的,你是怎么解决的?5. 中间件的原理是什么?(洋葱模型)6. 你刚刚说碰到 next() 就进入下一个中间件,那 next 只能执行同步,如果是异步的话,你是怎么处理的?(async/await,但是我发现,有的中间件需要在异步中间件之前执行,所以我用 try/catch 来处理异步中间件的异常)7. JS 异步发展史,以及它们的优缺点说一下 (回调函数--Promise--Generator--async/await)8. 你刚刚说 Promise 状态不能更改,那如果我要设计一个能修改 Promise 状态的函数,你会怎么设计?9. CSS 水平垂直居中的方法(flex、grid、绝对定位 + margin:auto、绝对定位 + 负 margin、绝对定位 + transform、table-cell)10. 你刚刚说到 flex 布局,那 flex:1 是什么意思?(flex: flex-grow  flex-shrink  flex-basis;等价 flex:1 1 0%表示元素可以均分剩余空间,可拉伸、可压缩,不依赖内容宽度,自动自适应填充布局。)11. 父容器宽是 500px,然后它左右各有两个子容器是 100px,如果设置 flex: 1,那它的宽度是多少?(500-100-100=300px)12. 说说你对浏览器缓存的理解(强缓存、协商缓存)13. 如果一个用户,他怎么去刷新都无法刷到最新版的代码,你能说下可能的原因吗?(版本号、hash等)还有吗?(我说我不知道了,面试官说还有 CDN 没有同步,我说企业才会这么干,自己写项目一般不会,我知道 cdn 是用来解决高并发的手段)14. React你熟吗?说下 React 函数组件和类组件的区别15. 怎么避免 Hooks 导致组件重新渲染?(使用 useCallback、useMemo、React.memo、useRef等等)16. 谈一下我对 React 的状态管理的理解(Redux、Mobx、Zustand,我说 Zustand 用的最多)17. React 常见的 hooks 有哪些?(useState、useEffect、useRef、useCallback、useMemo、useReducer、useContext、useImperativeHandle、useLayoutEffect、useDebugValue)18. TS 你熟吗?我们引进 TS 的目的是为什么?19. interface 和 type 的区别20. 说下 TS 里的泛型21. 我现在有十个字段,比如十个字段就要 A B C D E F G 这种。那我现在另有另外一个方法,这个方法接受的参数呢,必须是这个 interface A 里面的这个 K。就比如说你可以是 A B C 可以 A B C D 任何组合都可以,但是必须是这个 interface 里面的 A 里面的定义的。这个 K 这种类型的话是怎么去定义呢?(说实话我有点不太理解啥意思,反正我说了 keyof)``` TypeScriptinterface Obj {A: stringB: stringC: stringD: stringE: string// 其他字段...}```22. vite 用过吗?说说和 webpack 的区别。vite 的优缺点是什么23. 说说 Tree shaking(树摇) 和 Code Splitting (代码分割)的区别24. Git 你熟吗?说说 git merge 和 git rebase 的区别,什么时候用 git merge,什么时候用 git rebase?25. web3 你熟吗?(不太熟,听说过而已)26. 我看你自我介绍说了 AI,你是怎么用的?27. 除了提示词,还有什么能让 AI 更聪明?28. AI 的优缺点你说一下29. AI 发展这么快,你觉得我们以后会扮演什么角色?30. 反问基本都答上来了。面了我80分钟,我还以为稳过的
查看29道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务