【学习笔记】
1、【变量】
定义:存储数据的一个基本单元(根据数据类型开辟存储空间)。
给变量命名就相当于给该存储空间定义别名
声明变量(根据类型开辟内存空间):数据类型变量名;
变量初始化(第一次存入的自定义数据):变量名=初始化值;
使用变量:
Syetem.out.println(变量名);
2、【java中数据类型分类】
1、基本数据类型
整型:
byte 1byte=8bit 1字节 -128 - +127
short -32768 - +32767
int
long
字符:
char='A';单引号括起来,CH='\u00ff';(\u0000~\uFFFF)
浮点型:
float f=100.0f(默认double需要在后面加f) 精度:7位
double
布尔:
boolean turne false
2、引用数据类型
3、【变量名的命名规则】
1、由字母、数字、下划线、$符号组成
2、数字不能开头
3、不能使用java中的关键字或保留字
【变量的命名规范】
1、使用camel命名法:第一个单词字母小写,其他单词首字母大写其余字母小写
2、变量名要有实际意义
如:studentScore;
4、【变量的作用域】:变量起作用的范围
代码块:以{大括号开始,以}大括号结束
5、【java运算符】
【表达式】:由运算符操作数组成,操作数可以是常量,变量,子表达式。
1、赋值运算符
=
变量=表达式;//自右到左
+=,-=,*=,/=
a+= b; ==> a=a+b
2、算数运算符+ - * / % ++ --
inta=6;
intresult = a++;//后缀++ 先赋值,然后自身加一
==> result = a; a=a+1;
inta=6;
intresult = ++a;//前缀++ 先自身加一,再赋值
==> a=a+1;result = a;
3、关系运算符> >= < <= == != 得到的结果是布尔类型
inta=75;
intb=55;
booleanc = a == b;
------------------------------------------------------------------------------------------------------------------------
inta = 4;
intb = 3;
a= a ^ b;
b= a ^ b;
a= a ^ b;
-------------------------------------------------------------------------------------------------------------------------
4、逻辑运算符&& || ! 得到的结果为布尔类型
表达式1=true 表达式2=true
表达式1&& 表达式2; ==>true 如果第一表达式为false,不会计算第二个
注:当第一个表达式为false时,无论后面的表达式是否算法有没有错都省 略
表达式1|| 表达式2; ==>true 如果第一个表达式为true,不会计算第二个
!表达式2; ==>false
表达式1& 表达式2; ==>true 如果第一表达式为false,会计算第二个
表达式1| 表达式2; ==>true 如果第一个表达式为true,会计算第二个
5、位运算符& | ^ <<(左移) >>(右移) >>>(有符号的右移)
数制系统:
a.二进制 0or 1
b.十进制 0~9
c.八进制 0~7
d.十六进制 0~9A~F
计算机是以二进制来存储数据的
^异或:相同为0,不同为1 (在二进制下比较)
取反 ~ int a=~b;
源码:本来的编码
反码:符号位不变,后面一致取反0就是1 1就是0
正数的补码是本身,负数的补码是反码+1
在计算机中负数都是以补码的形式存储的。
7:1000 0111 -7的绝对值
1111 1000 +1
1111 1001 最终-7保持
位移:3 0000 0011
3>>2 0000 0000==>0
3<<2 0000 1100==<12
-7>>>2; 1111 1001==>1111 1110
比如 2的3次幂 2*2*2 ==> 2<<2 性能最高
3*3==> 2<<2+1
条件表达式?:
结果=表达式1?表达式2:表达式3;
先计算表达式1的值,如果结果为true结果为表达式二,否则为表达式3
一元运算符:有一操作数组成++ -- !
二元运算符:由两个操作数组成+ - * % &&
三元运算符:由三个操作数组成 ? :
运算符的优先级:
类型转换:
1、自动类型转换:(隐式类型转换,两种类型兼容int,double,目标大于源类型,double大于int型)
a、对于表达式:如果一个操作数是double型,整个操作数就是 double类型了
inta=20;double b=30 int now=a+b //now就是double型
2、强制类型转换:(显示类型转换,intsum=(int) 35.5 结果为35 会损失精度)
6、【printf格式化输出】
7、【Scannr】
变量名=对象名.next();接受输入的值 空格结束
变量名=对象名.nextline();接受输入的值,回车结束;
变量名=对象名.next().charAt(0);提取输入字符串的第一个字符;
8、【格式化输出printf】
printf("格式表述串",变量列表);
%d:整数 %-10d 长度为10 左对齐的整数格式
%c:字符
%s:字符串
%f:浮点数 %.2f 表示小数点后面有两位 %-f:左对齐,%+f右对齐默认