Java关键字,标识符,数据类型,运算符
关键字: Java预定义的有特殊含义的单词
特点:1.常用的开发工具高级记事本/IDE,能够变颜色的一些单词2.都是小写字母组成3.都是由特殊含义的单词public : 公共的class: 类static: 静态的void: 无返回值4.Java一共提供了50个关键字其中,"const"和"goto"这两个关键字在Java语言中并没有具体含义goto这个关键字可以实现代码的跳转,导致程序的可读性下降,所以JDK将改关键字的含义屏蔽但是没有删除它,可能未来JDK升级之后重新使用,保留使用5.关键字不能够作为标识符
标识符:Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。
简而言之就是给类,接口,抽象类,接口的实现类,常量,变量,方法等元素取名字。
规则:必须准守1.由字母,数字,下划线_,美元符号$组成2.不能以数字开头3.Java对于大小写严格区分4.不能是Java中的关键字规范: 1.见名知意2.不允许使用中文和拼音3.满足驼峰命名法(待会讲)4.命名的长度最好不要超过31个字符提供一套开发中标准规范:
包,类,抽象类,接口,接口的实现类,变量,方法,常量
包(文件夹) 1.一般都是公司的域名反写2.所有单词使用.隔开3.每个单词都是小写组成eg: www.sxt.com com.sxt.www www.baidu.com com.baidu.test
类(满足抬头骆驼) class1.所有单词的首字母大写,其他字母小写eg: HelloWorld IdentifiedDemo
接口: (满足抬头骆驼) interface1.所有单词的首字母大写,其他字母小写2.一般会在第一个单词的前面加上一个大写的I eg: IStudent ITeacher
接口的实现类 (满足抬头骆驼)1.所有单词的首字母大写,其他字母小写2.一般都会在最后一个单词后面加上 Impl implementseg: StudentImpl
抽象类(满足抬头骆驼)1.所有单词的首字母大写,其他字母小写2.在单词的开头一般都会加上 Abs abstractAbsStudent
变量 (满足低头骆驼)1.第一个单词首字母小写,其他单词首字母大写2.一般都是名词eg: studentName studentScore score totalScore
方法(满足低头骆驼)1.第一个单词首字母小写,其他单词首字母大写2.一般都是动词eg: getTotalScore getAverageScore getMaxValue getMinValue main
常量: 1.所有单词都是大写2.每一个单词都使用_隔开eg: MAX_VALUE MIN_VALUE PI面试题: 说一说你Java的命名规范
注释: 为程序进行解释说明,不会被JVM执行
注释分类:1.单行注释 // 2.多行注释/x x/3.文档注释(后面在讲解面向对象的时候详细讲解) javadoc/xx x/注意: 1.注释不能够嵌套2.注释不要随意的删除3.养成一个好的习惯,先写注释,再写代码,能够培养一个程序员的逻辑思维,以及代码的可读性注释的好处:1.能够提高程序的可读性2.开发中工作的交接 (文档注释)3.程序调试 (后期还会使用Debug断点调试)
为什么需要有常量?
PI 一周有7天
常量: 在程序的执行过程中,其值不会发生改变的量
常量的分类:
字面值常量整型常量 进制转换二进制 由0,1组成,由0b开头 0101010101 也可以使用下划线分割数字八进制 由0~7组成,由0开头十进制 由0~9组成,默认就是十进制十六进制 由0~9,A,B,C,D,E,F 组成,由0x开头小数常量0.2F float类型的小数常量0.2D double类型的小数常量后面讲解数据类型的时候介绍float和double布尔常量只能取两个值 true false 字符常量什么是字符?字符的本质是什么?数字 整数 a 97 0 48 A 65 今晚攻打高老庄 27 48 65 32 89 98 36 什么是字节?字节本质是什么? 数字 数据传输的最基本单位 a 1 张 换行 制表符 都是字符 65535 字符在计算机中存储本质还是数字1byte = 8bit 0001 00011kb = 1024byte 1mb = 1024kb1gb = 1024mb1tb = 1024gb2个字节足够表示全世界所有的字符 11 00 10 011bit 能够表示多少种状态 2种 0 1 2bit 4 10 01 11 003bit 8 8bit 25616bit 65536 16bit = 2byteJava使用2个字节表示一个字符0000 0000 0000 0000 65536一般2个字节表示一个汉字GBKGBK UTF-8 Unicode ISO-8859-1 ASCII 0 48A 65a 971.字符常量由 '' 包裹2.里面只能够有一个字符3.转义字符可以由两个字符组成,第一个是\先记住常见的字符编码:a 97 b 98A 65 B0 48\t 制表\n 换行\r\n 换行\'\\\"字符串常量1.由双引号包裹2.里面可以有一个字符也可以有多个字符3.字符串里面可以是空串null常量表示的是引用类型的常量,会在后面讲解面向对象的时候详细讲解自定义常量 后面讲解面向对象的时候讲解 (使用 final 关键字修饰的 变量 称为常量)注意:1.System.out.println();输出的都是数值的十进制2.默认整型常量默认是 int 类型3.默认小数类型就是 double 类型4.字符的数量不会超过655355.windows系统的换行符是 \r\n \n \R 6.计算机最多能表示36进制 (Integer类可以轻易地实现进制转换)补充知识点:
进制转换的5种情况 3 ——> 9
1.其他进制 -> 十进制
2.十进制 -> 其他进制
3.X进制 -> Y进制
4.十进制和二进制的快速转换 8421BCD码
5.二进制和八进制和十六进制之间的快速转换法 分组法
变量: 在程序的执行过程当中,其值可以发生改变的量,类似于数学的未知数X
变量的本质 : 就是一个地址变量的内存分配int x = 10;int x; // 1.声明x = 10; // 2.赋值System.out.println(x); // 3.使用变量的定义:变量的三要素:1.声明2.赋值3.使用注意:1.变量一定要先声明再赋值再使用2.变量不能够重复定义3.变量不能够连续定义 int a = b = c = 10; 4.建议一行只写一条语句数据类型: Java是一门强类型语言,针对每一种数据都提供了对应的类型int x; byte short int longfloat f;JavaScript是一门弱语言类型,只有一种数据类型的声明,就是varvar x;var f;数据类型的分类:数值的表示方式:655360000 0000最高位是符号位: 1表示负数,0表示整数其他位是数值位: 八大基本数据类型整数类型 字节数 取值范围byte 1 0000 0000 -128~127 short 2 0000 0000 0000 0000 -32768 ~ 32767int 4 -2^31 ~ 2^31 - 1long 8 -2^63 ~ 2^63 - 1小数类型float 4 -3.403E38 ~ 3.403E38double 8 -1.798E308~1.798E3080000 0000 0000 0000 0000 0000 0000 0000 注意: 1.虽然小数表示的范围特别大,但是永远不能够存储所有的小数,因为小数存在无限不循环小数2.同样是4/8个字节的小数类型取值范围大于整数类型,原因是小数和整数的存储形式不一样3.在处理金融相关项目的时候,小数的计算要求精度非常高,那么使用float或者double来表示会出现精度问题,后期考虑使用BigDecimal来处理 布尔类型boolean 1 0000 0000 false / 0000 0001 true 字符类型char 2 0 ~ 65535引用数据类型 后面讲解面向对象详细说明类 (class) 接口 (interface)数组 ([])面试题: 1.String是基本数据类型吗?2.说一说Java的数据类型3.数组是什么类型?
数据类型转换
类型转换的依据: 取决数据的取值范围byte -> short -> int -> long -> float -> doublechar ->注意:1.boolean类型不能够参与类型转换2.char和byte/short只有交集关系,没有子集关系1.自动类型转换将小类型的数据转换成大类型数据,系统会自动转换2.强制类型转换将大类型的数据转换成小类型的数据,会编译报错解决办法: 强制类型转换 格式:目标类型 变量名 = (目标类型) 被转换的类型;强制类型转换会出现的问题:1.精度的丢失2.数据的溢出3.byte/short/char特例4.byte/short 和 char 参与转换,都需要强制类型转换5.表达式类型提升当表达式的运算符两边类型不一致的时候,结果的类型会自动向高类型转换6.当byte short char 之间参与运算的时候,底层都会转换成int类型来计算7.boolean类型不能够参与运算和转换8.字符串在参与运算中的转换问题,字符串相加是拼接操作9.变量计算和常量计算问题变量相加,系统无法判断具体的结果常量相加,在编译时期,系统就会运算结果
public class DataTypeConvertDemo {public static void main(String[] args){/* byte by = 128;System.out.println(by);*/// float f = 2.5;// 自动类型转换: 将小类型的数据转换成大类型数据,系统会自动转换// 理解为将小杯子水倒入到大杯子中,不会出现任何问题double d = 2.5f;// 2.强制类型转换// 错误: 不兼容的类型: 从double转换到float可能会有损失// float f = 2.5D;float f = (float)2.5D;System.out.println(f);int i = (int)2.5;System.out.println(i);byte by = (byte)130;System.out.println(by);// 为什么 byte by = 30; 是可以通过编译的?// 3.byte/short/char特例short s = (short)32768;System.out.println(s);char ch = (char)65536; // \u0000 空字符System.out.println(ch);// 4.byte/short 和 char 参与转换,都需要强制类型转换byte by2 = 97;char ch2 = (char)by2;System.out.println(ch2);char ch3 = 'a';byte by3 = (byte)ch3;System.out.println(by3);// 5.表达式类型提升// 当表达式的运算符两边类型不一致的时候,结果的类型会自动向高类型转换/*表达式由操作数和运算符构造的式子操作数: 常量和变量运算符: + - * /*/double d2 = 3.5;int i2 = (int)(d2 + 10);System.out.println(i2);// 6.当byte short char 之间参与运算的时候,底层都会转换成int类型来计算// 其实在Java中只有整数一种类型(int)是我们在计算机底层运算的类型, char byte short 都是扩展类型// 参与运算指的是 + - * / > < ...short s2 = 30;byte by4 = 10;short s3 = (short)(s2 + by4);System.out.println(s3);// 7.boolean类型不能够参与运算和转换boolean bool = false;// int i3 = (int)bool;// 8.字符串在参与运算中的转换问题,字符串相加是拼接操作// 字符串和任意类型进行拼接,结果还是字符串类型String str = "HelloWorld";str = str + 1;System.out.println(str);System.out.println(2 + 2 + "222" + 2 + 2); // 422222/*9.变量计算和常量计算问题*/byte by6 = 10;short s4 = 20;short s5 = by6 + s4;System.out.println(s5);short s6 = 10 + 20;System.out.println(s6);}
}
运算符: 针对常量和变量之间进行运算的符号
eg: a + 1 a + b a / b a > b
运算符的分类:算术运算符 赋值运算符 关系运算符 逻辑运算符 位运算符 三目运算符算数运算符+ - * / % ++ --+在Java当中含义很多1.作为正数 单目运算符 双目运算符 三目运算符 +5 a + b a ? b : c2.加法运算3.字符串连接符技巧:1.如何计算中防止精度丢失2.如何分离中一个数的每一位1234分离个位: 1234 / 1 % 10分离十位: 1234 / 10 % 10分离百位: 1234 / 100 % 10分离千位: 1234 / 1000 % 10
自增自减运算符
++ -- 属于单目运算符++ 表示自增1
-- 表示自减1分为单独使用表示自增或者自减,没有任何区别参与运算如果++放在操作数的左边,就表示先自增再参与运算如果++放在操作数的右边,就表示先参与运算,再自增或者自减1赋值运算符= : 这个等于号在Java中表示赋值的意思,真正数学意义上的相等是 ==,在JavaScript中还有===扩展赋值运算符:+= -= *= /= %= 面试题:short s1 = 1;?s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错??
前者编译失败,short和int类型计算结果是int类型,将int类型赋值给short类型,需要强制类型转换
后者编译通过,因为使用扩展赋值运算符系统会自动帮我们强制类型转换技巧: 如何交换两个数?
int x = 10;
int y = 20;
定义中间变量temp
关系运算符
> < >= <= != ==关系运算符的结果是boolean类型
逻辑运算符
作用: 连接多个boolean类型的表达式
boolean类型的表达式1 逻辑运算符 boolean类型的表达式2 逻辑运算符 boolean类型的表达式3
& 按位与
| 按位或
^ 异或&& 短路与
|| 短路或! 非与: 有一个为false结果为false如果都为true结果才为true或: 有一个为true结果为true如果两个都为false结果才为false面试题: & 和 && 的区别& 表示按位与,无论什么情况都会同时计算运算符两边的表达式&& 表示短路与, 如果前面的表达式为false,那么无论后面结果如何,都不会去计算后面表达式的值&&开发中使用,&基本不用&常用于位运算,位运算的效率比普通运算要高很多 1001 & 0110 = ?1 0 0 1& 0 1 1 0-----------0 0 0 01001 | 0110 = ?1 0 0 1| 0 1 1 0-----------1 1 1 1^ : 相同为false,不同为true1001 & 0110 = ?1 0 0 1^ 1 1 1 0-----------0 1 1 1! : 取反当!的个数是奇数个的时候,结果相反当!的个数是偶数个的时候,结果不变
条件运算符(三目运算符)
格式: X ? Y : ZX表达式必须是boolean类型的表达式执行流程:首先计算X表达式的结果, 如果X的结果为true, 那么整个表达式的结果就是Y的值如果X的结果为false,那么整个表达式的结果就是Z的值关于三目运算符值的类型问题
表达式: 符合一定语法规则的运算符和操作数的式子
运算符: 算数运算符,赋值运算符,关系运算符,逻辑运算符,位运算符(了解), 三目运算符
操作数: 变量或者常量a + b a * 6 4 - 3
表达式的分类:按照复杂程度来分:简单表达式: 只有一个运算符的表达式 a + b a * 6 4 - 3复杂表达式: 两个或者两个以上的运算符组成的表达式 a > b && a < b如果复杂表达式就必须要知道运算符的优先级按照运算符两边的操作数来分单目 双目 三目+5 3+a x?y:z按照名称来分a + b 算数表达式式表达式的值: 整个表达式的结果int a = 30; int b = 40; a * b
表达式的值的类型: int a = 30; int b = 40; a * b学习复杂表达式:(a - b) * c - 4 i < 30 && i % 10 != 0 运算符的优先级1.有括号先计算括号里面的2.单目运算符 > 双目运算符 > 三目运算符3.算数运算符(* / % > + -) > 关系运算符(> <... > == !=) > 逻辑运算符(&& > ||) > 条件运算符 > 赋值运算符4.如果运算符的优先级相同,从左至右即可5.+ - > ++ -- !
技巧: 如果针对特别复杂的表达式,可以根据运算符的优先级规律,然后使用()改变优先级,提高程序的可读性
Java关键字,标识符,数据类型,运算符相关推荐
- Java关键字—基本数据类型
Java关键字之-基本数据类型 byte.shout.int.long.float.double.boolean.char 关键字 byte.shout.int.long.float.double基本 ...
- java标识符命名规范 java关键字 标识符
前言 标识符的认识和熟练运用对程序员来说很重要,标识符是程序员为程序组件起的名字.起名字是一门艺术,这一点对标识符也一 样.一个好的标识符命名风格和习惯,能够很大程度上增加代码的可读性. . Java ...
- 关键字 标识符 数据类型
转载于:https://www.cnblogs.com/chengruifeng/p/9899512.html
- 【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出
目录 1 注释 2 数据类型 3 变量与常量 4 关键字.标识符 5 运算符 6 键入值.输出值 1 注释 注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序. ...
- Java基础篇(标识符、关键字、数据类型、运算符、类型转换、注释方法、扫描器)
一.Java标识符命名规范 标识符:用来标识类名.对象名.变量名.方法名.类型名.数组名.文件名的有效字符序列: 合法的标识符:----字母.数字.下划线'_'.美元符号'$'组成:不能用数字开头,不 ...
- 【Java1】jdk安装/idea安装,关键字/数据类型/标识符,运算符,/包/类,运算符,if/switch,for/while
文章目录 1.jdk安装:JAVA_HOME 2.idea安装:全局settings 3.关键字/常量/变量:javac 4.数据类型/标识符/类型转换:小大自 5.算术/赋值/自增运算符:前先自加1 ...
- java关键字和标识符_Java数据类型和标识符
java关键字和标识符 在本教程中,我们将了解Java中的数据类型和标识符. Java语言具有丰富的数据类型实现. 数据类型指定大小和可以存储在标识符中的值的类型. Java数据类型分为两类: 原始数 ...
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算...
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
- java中标识符,关键字,数据类型
什么是标识符? 在java语言中用来给一个类,变量或方法命名的符号 标识符的命名规则 标识符可以由字母.数字.下划线(_).美元符($)组成,但不能包含 @.%.空格等其它特殊字符,不能以数字开头. ...
最新文章
- 技术大佬们都推荐的vim学习指南来了,值得收藏!
- php执行rsync,使用rsync工具构建php项目管理平台,rsync项目管理
- next_permutation函数
- python limit_Python MySQL Limit
- 前后端分离之JWT用户认证
- java.net.unknown_android -------- java.net.UnknownServiceException
- 【LCT】弹飞绵羊(luogu 3203/金牌导航 LCT-2)
- 第八篇:稳定性之提升团队潜意识【及时复盘、开关设计】
- mysql脚本中如何写判断_mysql中如何写判断语句
- linux 开机 找不到 文件系统 下载文件系统就好了,开机启动找不到文件系统的修复步骤...
- 对称构型机器人轮直径校准思路
- 有时间依存效应或时间依存风险因素的生存分析
- Linux 常用命令 tar 打包文件夹
- 代码质量分析利器之SonarQube【史上最全】
- 八、图像金字塔(高斯金字塔、拉普拉斯金字塔)
- Ecshop3.x漏洞复现
- yolov5环境配置及训练coco128数据集
- 浅谈简单线性回归(Simple linear regression)part3SEE,MSE,SSE的关系
- Linux的文件权限理解及文件种类与扩展名
- 为什么培训班都是python
热门文章
- 【CV语义分割】全卷积神经网络FCN(更新ing)
- nowcoder 点击消除 (字符串 + 栈)
- SQLZOO 练习题 6 JOIN
- windows num_workers
- scrapy ,Selenium 企查查模拟登录
- android 调出键盘表情_android 表情,软键盘冲突解决方案(仿微博等SNS应用)
- POSTGRESQL index advisor 4种方式 (国内,国外,远程,云)那个更好
- ELK生态系统——修改es中index的mapping平滑过渡数据
- 如何通过TotalControl系统设置,提高电脑操作手机速度(教程)
- android接入华为推送