关键词
被Java语言赋予特定含义的单词
在高级记事本或者开发工具eclipse/idea中,针对关键字有一种特殊颜色标记
class:Java中最基本的单元 (定义一个类)
public:权限修饰符(公开的/公共的:访问权限足够大)
static:静态修饰符(面向对象中讲(共享/共用))
void:和Java中的方法定义有个关系(方法中讲解)
标识符
是一种给类名,方法名,接口名,变量名,常量等
组成规则
1)26个英文大小写字母
2)$符号
3)_下划线
4)数字字符
给类起名字
遵循的是"大驼峰命名法"(阿里的规范)
如果当前类名/接口 是一个单词:那么首字母大写,其他单词小写
class Hello{}
class Demo{}
如果当前类名/接口 是多个单词:那么每一个单词的首字母都大写,其余小写
class HelloWorld{}
class MakeNameDemo{}
给方法和变量名起名字
遵循的"小驼峰命名法"
如果是一个单词: 字母全部小写 main():jvm识别的main方法
如果是多个单词: 第一个单词全部小写,从第二个单词开始,每个单词的首字母都是大写
定义方法名
checkUserName():检查用户名的方法
checkUserPassword():检查密码的方法
给常量起名字
单个单词:字母全部大写(很少用) HEELLO
常量
在程序的执行过程中,其值不发生改变的量
字面值常量
字符串常量
字符常量 使用单引号括起来的单个内容 'a','b','0','A','B' 'ab':不行 jvm就认为是一个字符串
*当字符不参与运算的时候:本身就是描述的就是字符本身的值, 但是如果字符参与运算的时候,字符就会寻找对应的ASCII码表的值,进行运算
整数常量 进制也属于常量的范畴!
小数常量 1.34/12.56...
布尔常量true/false
空常量 null
自定义常量
(面向对象中讲解---final关键字)
变量
在程序的执行过程中,其值发生改变的量!
变量的三要素
1)数据类型
2)变量名:按照标识符的组成规则: 遵循 "小驼峰命名法"
3)初始化值:如果变量使用之前都没有赋值,就"报错了"
格式
数据类型 变量名 = 初始化值 ;
Java中的数据类型(重点)
基本数据类型(四大类型,8种)
整数类型:默认int类型
byte 字节类型 占用的字节数1个字节 (-128~127:范围)
short 短整类型 占用的字节数 2个字节
int 默认类型 占用的字节数 4个字节
long 长整型 占用字节数 8个
浮点类型:默认就是double类型
float 单精度类型 (占4个字节)
double 双精度类型 (占8个字节)
字符类型 char 占两个字节数 char ch = 'A' ;
布尔类型 占1个字节 boolean (true/false) boolean flag = true ;
引用数据类型:类,数组,接口
定义的时候的注意事项
1)同一个变量,不能被定义多次(重复定义),这种情况是因为Java是一个强类型语言 强类型语言:语法和格式是非常严谨的! (Java语言)
2)实际开发中,不建议同一行上定义多个变量 一行同时定义多个变量
3)方法定义中的变量:局部变量,它在使用之前必须进行初始化否则报错!
(1)要么定义的变量的时候就初始化了
数据类型 变量名 = 初始化值;
(2)要么就先去定义,然后在使用之前必须初始化
数据类型 变量名; //声明变量
变量名 = 初始化; //然后初始化了
4)语句结束,都是以"分号结束" ; (英文字符)
Java中基本数据类型存在概念(运用)
1)默认类型提升
byte,short,char三者之间不转换,但是分别自己参与运算的时候优先提升为int(考点)---long---float---double
boolean类型:不参与任何的运算!它只是描述逻辑判断的结果(true/false)
2)现在的接收的结果类型的变量是byte类型,而且a和b要进行变量相加
当前我们变量相加计算的时候,如果接收的类型 范围小于计算结果的数据类型 需要使用Java的强转类型转换-----让我们的数据进行类型匹配,防止出现(jvm提示不兼容的类型:)
3)显示转换(强制类型转换)---- 不仅适用于基本类型,引用数据类型(后期研究引用类型)
4)格式: 目标数据类型 变量名 = (目标数据类型)(结果) ;
实际开发中,尽量避免强转类型转换,可能会造成数据精度损失
运算符
算术运算符
基本的算术运算符号: +,-,*,/,%(模:求余数) /:默认取整 %:求余数
扩展的算术运算符:++和--
++或者--如果在数据的前面,先自增或者自减,然后在参与运算
++或者--如果在数据的后面,先运算,然后在自增或者自减
赋值运算符
基本的赋值运算符 :=
注意事项: =不能写成==
反之也不能,==不能写成=
扩展的赋值运算符 :+=,-=,*=,/=,%=
关系(比较)运算符
<,>,<=,>=,!=,==
比较运算符的表达式都是boolean;
逻辑运算符
逻辑单与&,逻辑单或|,逻辑异或^,逻辑非!
基本的逻辑运算符
逻辑单与& (并列关系) 特点:有false,则false
逻辑单或| (或的关系) 特点: 有true,则true
逻辑异或^ 特点: 相同则为false,不同则为true
逻辑非! 特点:非true,则false;非false,则true 偶数个非是它本身!
逻辑双与&&和逻辑单与&的区别
共同点: 都是表示并列关系,基本特点:有false,则false
不同点: 具有"短路"效果 逻辑双与&& 连接的表达式:如果左边是一个false,右边就不执行了!
位运算符
位运算符: 就是对当前这些数据进行计算的(补码进行计算的)
基本位运算符:
位与&: 有0则0
位或|: 有1,则1
位异或^: 相同则为0,不同则为1
*一个数据被另一个数据如果位异或两次,其值是它本身! ~反码: 全部按位取反(0变1,1变0) 其他的位运算符:
移位符号
<<:左移
>> :右移
>>>:无符号右移
好处:提高逻辑判断的执行效率,开发中经常使用时逻辑双与&&和逻辑双或||
三元(三目)运算符
二目运算符 int m =20,n =10;
单目运算符 int a = 10 ;
三元运算符的格式:(表达式)?执行 true的结果:执行false 的结果;
流程:首先判断表达式是否成立,如果成立,则执行true的结果 否则,执行false的结果;
键盘录入数据
在写程序的过程中,想让程序更加灵活,使用Scanner类: jdk提供的这个类----作用 "一个简单的文本扫描器"
目前:就是录入int类型数据
操作步骤
1)导包 import(关键字) java.util.Scanner ; 格式必须class类上面 需要在我当前的代码中使用jdk提供的这个类Scanner
2)创建一个文本扫描器对象 (键盘录入对象) 固定格式 Scanner 对象名 = new Scanner(System.in) ;
3)友情提示并录入int类型数据 System.out.println("请您输入一个数据:") ; 表示:录入的是int类型数据 int 接收的变量名 = 对象名.nextInt() ; //nextInt() ;键盘录入Scanenr的方法
4)然后 "接收的变量名 "输出出来"
import java.util.Scanner;
class Demo4{
public static void main (String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("a=");
int a=sc.nextInt();
System.out.println("b=");
int b=sc.nextInt();
boolean flag=(a==b)?true:false;
System.out.println(flag);
}
}