Java基础总结

来源:互联网 发布:java软件如何下载? 编辑:程序博客网 时间:2024/05/16 09:37

------- android培训、java培训、期待与您交流! ----------

关键字:被Java语言赋予特定含义的全部小写的单词,用来让jvm的语法解析器来识别解析的;

标识符:由英文大小写字母,数字,$和下划线(_)组成,给自定义类型,节后,方法和变量起名字的单词组合,通常要见名知意;

标识符注意事项:
1:不能以数字开头
2:不能是java中的关键字
3:区分大小写

常见的命名规范:
1:包 :通常用域名的反转类命名,因为域名是唯一性的,所以这样来命名,中间用点分割:com.itheima.com,因为点在os中用来表示目录的意思;
2:类或者接口:一个单词:首字母大写      多个单词:每个单词首字母大写,例如:Person ,SocketDemo
3:方法或者变量一个单词:首字母小写      多个单词:从第二个单词开始,每个单词首字母大写,驼峰命名;例如:show(), personFunction()
4:常量:特点:(全部大写)一个单词:大写,  多个单词:大写,并用_隔开  例如:PI,STUDENT_MAX_GRADE

基本数据类型:四类八种
1:整数 占用字节数
byte 1
short 2
int 4
long 8
2浮点数
float 4
double 8
3字符
char 2
4:布尔
boolean 1

转换规则:

隐式转换:

1:从小到大,byte,short,char -- int -- long -- float -- double
2:byte,short,char之间不相互转换,再有运算符的时候直接提升int类型(操作系统一次运行的最小单位数)参与运算。

3boolean类型不参与转换

强制转换:
1:从大到小,格式:目标数据类型 变量名 = (目标数据类型) (被转换的数据);
2:可能会有精度的损失,一般不建议这样使用。

常量:在程序执行的过程中,其值不发生改变的量
字面值常量:注:小数默认为double,长整型要加L/l,单精度要加F/f

字符串常量   "hello"
整数常量 12,89,45
小数常量 12.345
字符常量 'a','A','0'
布尔常量 true,false
自定义常量:就是被final修饰的数据类型值,例如: private final  int  STUDENT_AGE=89;如果引用类型,表示的是其内存地址值不发生改变;

变量:在程序的执行过程中,其值在某个范围内可以发生改变的量
变量的定义格式:数据类型可以是基本数据类型和引用数据类型
1数据类型 变量名 = 初始化值;
2数据类型 变量名;后面在初始化:变量名 = 初始化值;

运算符:

算术运算符:+(加),-(减),*(乘),/(取除数),%(取余数),++(自增),--(自减少)
特列:+:加法,正号,字符串连接符
++和--的用法:单独使用:i++,++i结果一样,都是i自加1再赋值给自己;
   参与操作使用
放在操作数的前面:先自增或者自减,再参与操作int x= 3;   int y = ++x;   syso(x+""+y)
放在操作数的后面:先参与操作,再自增或者自减int x = 10;int y = x++;   syso(x+""+y)
赋值运算符 :=  (扩展运算符,左右操作之后将值赋值给左边的变量)+=,-=,*=,/=,%=
                 例如:int   x = 5; 
 扩展的赋值运算符的特点:隐含了自动强制转换,不会编译报错;
比较运算符:==,!=,>,>=,<,<=,结果都为boolean值
特点:无论运算符两端简单还是复杂最终结果是boolean类型。
逻辑运算符:&(与),|(或),!(非),  &&,||,^(异或),连接boolean的运算符
特点:
&:有false则false
|:有true则true
^:相同则false,不同则true。(情侣关系,nn,nm)
!:非true则false,非false则true
&&:结果和&是一样的,只不过有短路效果。左边是false,右边不执行。
||:结果和|是一样的,只不过有短路效果。左边是true,右边不执行。
位运算符:<<,>>,^(源码,反码,补码)
^的特殊用法
一个数据针对另一个数据位异或两次,该数不变,常常用来交换两个数的值
请用最有效率的方式计算出2乘以8的结果:2<<3
三元运算符:比较表达式?表达式1:表达式2;
执行流程:
首先计算比较表达式的值,看是true还是false。true则执行表达式1,否则执行表达式2

弊端:比较表达式必须为boolean,不能为其他值,比if  else弱一点

流程控制语句:
顺序结构 从上往下,依次执行
选择结构 按照不同的选择,执行不同的代码
循环结构 做一些重复的代码

对应的流程控制语句为:

选择结构:

if(比较表达式) {
语句体;
}

if(比较表达式) {
语句体1;
}else {
语句体2;
}

if(比较表达式1) {
语句体1;
}else if(比较表达式2){
语句体2;
}
...
else {
语句体n+1;
}

switch(表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
...
default:
语句体n+1;
break;
}

特点:switch语句的结束条件,1遇到break就结束了,如果省略了break则会有穿透效果,直到遇到break才会结束2执行到末尾就结束了

循环结构:for,while,do...while

for格式
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}
执行流程:
1执行初始化语句
2执行判断条件语句
如果这里是true,就继续
如果这里是false,循环就结束
3执行循环体语句
4执行控制条件语句
5回到2

while循环
基本格式
while(判断条件语句) {
循环体语句;
}
扩展格式:while循环可以和for循环等价转换。
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
for和while使用区别:for适合于一个范围的判断, while适合次数不明确

do...while循环:循环至少执行一次循环体
基本格式
do {
循环体语句;
}while(判断条件语句);

扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

控制跳转语句

1break:中断的意思
用在循环和switch语句中,离开此应用场景无意义。
作用:跳出单层循环
跳出多层循环,需要标签语句的配合

ok:
for (int  i= 0;  i< 10; i++) {
for (int j = 0; j < 10; j++) {
if(i==0&&j==1){
break ok;
}
System.out.println("小黑马");
}
}
ok就是标签语句
2continue:继续
用在循环中,离开此应用场景无意义。
作用
跳出单层循环的一次,可以继续下一次

3return:返回

一旦遇到return,程序就不会在继续往后执行

代码练习1:写出结果:

System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");

结果:5+5=55
10=5+5
helloa1
98hello

练习2:交换两个变量的值

int x=3,b=6;
x=x^b;
b=b^x;
x=b^x;
System.out.println(x+"      "+b);

结果:6     3

练习4:补齐代码

如何让控制台输出2次:黑马程序员
如何让控制台输出7次:黑马程序员
如何让控制台输出13次:黑马程序员

结果:

for(int i=1; i<=10; i++) {
if(i%3 == 0) {
//补齐代码
//break;
//continue;
System.out.println("黑马程序员");
}
System.out.println("黑马程序员");
}

练习5打印九九乘法表:

//控制外循环

for (int i = 1; i < 10; i++) {

//控制具体的行内容,列
for (int j = 1; j <= i; j++) {
System.out.print(j+"*"+i+"="+(i*j)+"\t");
}
System.out.println();
}

结果:

1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

总结:

注意:java基础基本类型在定义时的运算编译器不会运算看类型,比如,byte b=2+3;是不会报错的,但是在参与运算的时候,就将byt类型提升为int类型,想要重新赋值为byte就会有强转类型的错误,比如:byte c=b+4;因为4默认为int类型,所以在参与运算的时候类型提升了,要进行强转;

2,swithch语句中可以是byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是字符串,没有Long类型

3,关于推出多层for嵌套时要使用标记来退出,一中编程语句;

4,循环结构常常用来计数器,累加器,以及标记(boolean)判断来使用;


0 0
原创粉丝点击