Java语言基础组成:
(1)关键字:被赋予特殊含义的单词,main不是关键字
(2)标示符:程序中自定义的一些名称,自定义名称,由26个字母大小写,数字0-9,_$组成,数字不可以开头,不可以使用关键字,Java中严格区分大小写,在起名字时,为了提高阅读性,要尽量有意义。包名,所有字母都小写。类名和接口名,所有单词的首字母大写。变量名和函数名,第一个单词首字母小写,第二个单词开始每个单词首字母大写。常量名,所有字母都大写。
(3)注释:单行,多行,文档(Java特有)
(4)常量:常量表示不能改变的数值。Java整数的三种表现形式,十进制,八进制(0开头),十六进制(0x开头),八位二进制数表示一个字节byte (01101001),ASCII编码表,十进制和二进制之间的转换,二进制的负数就是正数取反+1
(5)变量:将不确定的数据进行存储,也就是在内存中开辟一个空间。注意变量名,不能重复。
(6)数据类型:基本数据类型:数值型:整数类型:(byte-1字节,short-2字节,int-4节,long-8节)
浮点类型:(float-4字节,double-8字节)
字符型:(char-2字节)
布尔型:(boolean-2个值-true-false)
引用数据类型:类:(class)
接口:(interface)
数组:[]
float x = 1.0f; float 型数值后面要加f。
long y = 213123l;long 型数值后面要加小写L。
整数类型默认是 int 浮点类型默认是 double
字符型(char)可以做运算。
byte x = 1;
x = x + 1; --> x = (byte)(x+1);
int y = 2134;
y = y/1000*1000; 结果是???.
(7)运算符:+正号-负号+加-减*乘/除%取余数,(-1%5)是多少??(1%-5)是多少?? ++ 自加 -- 自减 b=a++;和 b=++a 的区别
字符串相连接用连接符号(+):”aaa“+”bbb“
System.out.print(5+5); 运行结果是???
System.out.print(‘a’+5+5);运行结果是???
System.out.print("a"+5+5);运行结果是???
System.out.print(5+5+"a");运行结果是???
字符串数据和任何数据使用+号 都是相连接,最终都会变成字符串
int a ,b;
a=1;
b=++a;
System.out.print(a,b);运行结果是???
int a ,b;
a=1;
b=++a;
System.out.print(a+" "+b);运行结果是???
int a ,b;
a=1;
b=a++;
System.out.print(a+" "+b);运行结果是???
int a ,b;
a=1;
b=a=a+1;
System.out.print(a+" "+b);运行结果是???
转义字符 \ :通过\ 来转变后面字母或者符号的含义,例:\n 是换行的意思,\r 是回车键,\t 制表符。
System.out.print(“\”hello\“”);
System.out.print("\\hello\\");
System.out.print("\"hello\""+\t+"\\hello\\");报错
System.out.print("\"hello\""+"\t"+"\\heloo\\");正确
char ch =‘\‘; ch1=‘‘‘;
System.out.print(ch+ch1);报错
char ch = ‘\\‘;ch1 =‘\‘‘;
System.out.print(ch+ch1);字符作数学运算
赋值运算符:= += -= *= /= %= :x+=1 是 x=x+1 吗? 是 ++x 吗?是 x++ 吗?
例:int a=0,b=0; b=a+=1;
b=a=a+1;
b=++a;
b=a++; b 分别是多少??????
例:short s = 5;
s = s+5;报错, + 号 和 = 号 分别 是一次加法运算和一次赋值运算,数据类型不匹配报错
(整数 默认是 int 型,小数默认是double型)
s+=5;正确,+= 号是一次赋值操作,把+=左右两边的和赋给左边
比较运算符:== ,!= ,<,>,<=,>=,instanceof,
逻辑运算符:用于连接boolean类型的表达式
&(与)一个假及为假,
|(或)一个真及为真,
^(异或)两边相同为假不同为真,
!(非),
&&(双与)有一个为假剩余部分不再运算效率比&高一点点,
||(双或)有一个为真剩余部分不再运算效率比|高一点点,
位运算符:
<<(左移):3<<2=12 ---> 就是 3*2的2次方,
>>(右移):6>>2=1 ---> 就是 6/2的2次方,最高位是1用1补齐,最高位是0用0补齐
>>>(无符号右移):都用0补齐
&(与)(当位运算符使用):
|(或)(当位运算符使用):
^(异或)(当位运算符使用):相同为假,不同为真,一个数异或一个数两次,结果不变,加密使用
~(反码):0...110=6 --->(取反)--->1...001--->(加1)---> 1...010=-6;
0...111=7 1...000 1...001=-7;
01111111 127
10000001 -127(129)
00000001 1
11111111 -1(255)
00000010 2
11111110 -2(254)
00000000 0
10000000 128
用位运算,计算得出十进制数相对应的十六进制数和二进制数????运用&和>>>
三元运算符:x>1?100:200;
(8)语句:
if else语句:{}内只有一条语句,{}可以省略不写
三元运算符 与 if else 的区别:三元运算符可以简化if else代码,但是运算符号运算完一定要返回一个结果。
优先判断用户输入的数据是否在客运算区间。
switch 语句:判断条件的数据类型是(byte,short,int,char)
switch(){
case 1:
case 2:
System.out.print("aaaaa");
}
多个答案对应一个执行语句
switch不能判断boolean型,不适合判断区间