1,常量,变量的理解
常量,程序运行过程中,不能改变的,叫常量。
变量,程序运行过程中,改变的,叫变量。
2,变量的理解
变量,用来存储数据的,数据类型,存放哪种数据的种类。
变量的概念:程序运行期间,可以在一定范围内发送改变的。
变量的本质,其实就是一个小内存的空间。
用来存储数据,内容可以发送改变,一次只能存放一个数据,可以通过变量的名称使用其中的数据。
且里面的数据必须符合数据整型的要求。
3,如何使用变量
创建一个变量,放入数据,这是第一种方案
创建一个变量同时放入数据,这是第二个方案
方案一:1,数据类型 变量名称 -------创建变量
2,变量名称=数据值 ----放入数值
等号是赋值的意思。
方案二:
数据类型 变量名称=数据值 -------创建的同事进行赋值
4,标识符
作用:给类,变量,包,方法等起名字组织的规则。硬性规则。
1,只能是由字符,下划线,美元符号组成。这里的字符可以是小写,大写,数字等,符号只能是下划线和美元符号。
2,不能以数字开头
3,软性建议
1,基本要求,见名知意
2,建议只使用英文字母和数字
3,常见的命名规则。
类:每个单词字母大写。 Student ,HelloWorld
变量:第一个单词完全小写,后续更多单词首字母要大写,eag,eagOfMyFriend
方法:与变量命名规则一样
包,就是文件夹,用于对类进行管理
cn.itcase cnitcase
com.ithema comithema
5,数据类型
1,基本类型 2引用类型
基本类型 byte short int long
浮点类型 float double
字符类型 char
布尔类型 boolean
注意事项:整数类型有4种,默认为int类型
浮点数有2种,默认是double
定义一个long类型,在数值后面加L,大小写均可
定义一个float类型,在数值后面要引用F作为。
字符char类型,是可以包含中文的
byte num; 创建变量
num = 100 给变量赋值
byte num2 =90; 定义变量并赋值
6,运算符:
运算符是一种特殊的符号,用以表示数据的运算,赋值,比较等,java中有以下类型运算符
1.算数运算符
java支持所有的基本算术运算符,这里介绍7种基本算术运算符
+:加法运算符,字符串的连接符
-:减法运算符,求负运算符
*:乘法运算符
/:除法运算符
%:求余运算符
++:自加运算符
--: 自减运算符
自加和自减:
1)自加和自减都是弹幕运算符,只能操作一个操作数,只能操作单个数值型的变量,不能操作常量或表达式
2)运算符可以出现在操作数左边或右边,如果运算符出现在左边,则先把操作数自增或自减再放入表达式中运算
如果运算符出现在操作数右边,则先进行表达式运算再自增自减
注意点:
1)除法运算的两个特殊性。a.如果两个操作数都是整数类型,则计算结果也是整数,就是将自然除法的结果截断取 整,
例如15/4的结果是3,不是4。两个操作数都是整数类型,则除数不能为0,否则引发算数异常。
b.如果两个操作数有一个或两个是浮点数,结果为自然除法的浮点数。而且此时允许除数可以为0或0.0,结果为正无穷大或负无穷大
2)求余的运算结果不一定是整数,它的计算结果是整除结果剩下的值。因为求余运算也经过除法运算,遵循除法运算的第一个特殊性。
但是如果两个操作数有一个以上是浮点数,第二个数值为0或0.0时,求余的结果是非数NaN。0或0.0对非0的任何数求余将得到0或0.0;
public static void main(String[] args) { double a = 5.2; double b = 3.1; System.out.println(a%b); System.out.println("5对0.0的求余结果是:"+5%0.0); System.out.println("0对5的求余结果是:"+0%5); System.out.println("0对5的求余结果是:"+0%5); System.out.println("0对0.0的求余结果是:"+0%0.0); //下面语句抛出异常 // System.out.println("5对0的求余结果是:"+5%0); int c = 5; int f = 5; int d = c+++3; int e = ++f+3; System.out.println(c); System.out.println(f); System.out.println(d); System.out.println(e); c = -c; System.out.println(c); }
输出:
2.1
5对0.0的求余结果是:NaN
0对5的求余结果是:0
0对5的求余结果是:0
0对0.0的求余结果是:NaN
6
6
8
9
-6
2.赋值运算符
java中支持"="号作为运算符,其格式为: 装入的变量=直接量或变量,java支持连续赋值,但可读性低不推荐
3.比较运算符
比较运算符通常用于比较两个变量或常量的大小,返回的结果为布尔值true或false
>:大于号。比较运算符左右两边数值类型的变量或常量是否左边大于右边
>:小于号。比较运算符左右两边数值类型的变量或常量是否左边小于右边
>=:大于等于号。比较运算符左右两边数值类型的变量或常量是否左边大于或等于右边
<=:大于等于号。比较运算符左右两边数值类型的变量或常量是否左边小 于或等于右边
==:等于号。 可以比较数值类型,boolean类型和引用类型。只有两个引用类型具有父子关系时
才可以比较,且指向同一个对象时才返回true。比较数值类型时,只要数值相等就返回true,
例如‘a'==97返回true
4.逻辑运算符
逻辑运算符操作两个布尔型的变量或常量
&&:与。前后两个操作数返回true才返回true
&:不短路与。
||:或。前后两个操作数返回false才返回false
|:不短路或。
!:非。只有一个操作数。true的非操作为false,false的非操作为true
^:异或。操作数不同时返回true,相同时返回false
注意:对于&和&&的区别,都进行两个操作数的逻辑运算,当第一个操作数为false时,&&不会进行右边操作数的运算,
第二操作数被短路,但使用&仍然会执行第二个操作数的运算,第二个操作数不会被短路,但是最总返回的结果跟&& 一样。
|和||的区别解释同理
public static void main(String[] args) { System.out.println("!false的结果是"+!false); System.out.println(4>=5||'c'>'a'); System.out.println(4>=5^'c'>'a'); int a = 97; int b = 36; if(a>54 || ++a>97){ System.out.println(a);//a得不到自加运算 if(b>24 | ++b>36){ System.out.println(b);//b得到自加运算 } } }
输出:
!false的结果是true
true
true
97
37
5.位运算符
java支持7个位运算符:&,|,~,^,<<,>>,>>>。一般来说,位运算符只能操作整数类型的变量或值
位运算符,都是计算机底层补码操作
&:按位与,当两位同时为1时才返回1
|:只要有一位为1时就返回1
~:单目运算符,将操作数在计算机底层的二进制码的每个位全部取反
^:按位异或,当两位相同时时返回0,不同时返回1
<<:左移运算符,移位后以0补充
>>:右移运算符,移位后以原符号位补充,也就是负数以1补充,正数以0补充
>>>:无符号右移运算符,移位后总是以0补充
进行移位运算遵循的规则
1)对于低于int类型(byte,char,short)的操作数,总是自动类型转换为int类型后在移位
2)对于int类型的整数移位a>>b,当b>32时,系统先将b对32求余(int类型数值32位),
得到的结果才是移动的位数,例如a>>33与a>1结果完全一致
3)对于long类型的整数移位a>>b,当b>>64时,也是移(b%64)位
4)对于<<和>>移位,把操作数左移n位,其结果等于操作数乘以2的n次方,
右移n位的结果等于操作数除以2的n次方,移位不会改变操作数本身
public static void main(String[] args) { System.out.println("5&9="+(5&9)); System.out.println("5|9="+(5|9)); System.out.println("~-5="+(~-5)); System.out.println("5^9="+(5^9)); System.out.println(5<<2); System.out.println(-5<<2); System.out.println(-5>>2); System.out.println(-5>>>3); int a=6; int b=a>>3; System.out.println(a+"右移3位后是"+b+",原操作数是"+a+",其本身并没有变"); }
输出:
5&9=1
5|9=13
~-5=4
5^9=12
20
-20
-2
536870911
6右移3位后是0,原操作数是6,其本身并没有变
6.三目运算符
三目运算符只有一个?:,语法格式如下:(expression)?if-true stament : if-false stament
int c=11; int d=12; System.out.println(c>d?"c大于d":(c == d?"c等于d":"c小于d"));
输出:c小于d
7.扩展后的赋值运算符
赋值运算符可以跟算数运算符,移位运算符结合,扩展成为更强大的运算符。只要能使用这些扩展后的运算符,通常都推荐使用它们,不仅有更好的性能,而且程序更加健壮
+=:对于x+=y,相当于x=x+y;
-=:对于x-=y,相当于x=x-y;
*=:对于x*=y,相当于x=x*y;
/=:对于x/=y,相当于x=x/y;
%=:对于x%=y,相当于x=x%y;
&=:对于x&=y,相当于x=x&y;
|=:对于x|=y,相当于x=x|y;
^=:对于x^=y,相当于x=x^y;
<<=:对于x<<=y,相当于x=x<<y;
>>=:对于x>>=y,相当于x=x>>y;
^=:对于x^=y,相当于x=x^y;
>>>=:对于x>>>=y,相当于x=x>>>y;
8.运算符优先级
9,