发表于: 2017-10-31 19:21:23

1 781


今天的学习内容:

复习了java的基本类型,byte(字节),int(4字节),char(2字节),short(2字节),float(4字节),double(8字节),boolean(1字节 true false),String,long(8字节),一个字节代表8位(0和1表示的2进制8位),整数默认类型为int,浮点数默认类型为double;float定义的数据后加大写的F;long后加大写L,

自动类型转换:大的数据类型和小数据类型运算时会自动把小的数据类型提升为大的数据类型然后再运算;要把大的数据类型转换成小数据类型需要强转,但可能损失精度,还有自动强转。

变量类型:类变量,是属于类的,在类中方法外定义的变量,该变量跟随类的加载而加载,能被类名直接调用,不需要创建对象,用static修饰,并且被类的所有对象共享,一个对象改变了他的值,那么所有对象中该变量的值也会被改变,用final和static修饰的通常称之为常量,不可变并被共享,其变量名一般全大写。

成员变量:是属于该类的对象的,类中方法外不加static修饰的变量,跟随对象的建立而建立赋值,必须在创建对象之后才能使用,成员变量也叫实例变量,实例变量可以声明在使用前或者使用后,一般情况下设置为私有并通过方法使外部调用或者获取该变量的值,该变量在创建对象的时候会被赋予默认值,基本类型默认值为0,引用类型默认值为Null,boolean类型默认为false;实例变量可以被类中的所有方法和语句块使用。

局部变量:局部变量在方法类定义的变量,只在方法内部起作用。

静态方法:static修饰的方法,可以被类名直接调用的方法。静态方法只能直接使用静态的变量,不能直接使用成员变量,要想在静态方法中使用成员变量需要在静态方法中建立该类的对象。

静态代码块和非静态代码块:静态代码块会在创建该类对象或者调用该类(不论是变量还是方法)的时候执行,并且之后无论创建多少个对象调用多少次方法、变量,静态代码块都会只执行一次;非静态代码块会在创建对象的时候调用,每创建一个对象就会调用一次。创建对象时,会先调用静态代码块再调用非静态代码块再调用构造方法;在继承中,会先调用父类静态代码块再调用子类静态代码块再调用父类非静态代码块再调用父类构造方法再调用子类非静态代码块和构造方法。静态代码块通常用于给变量赋值,使变量的声明和赋值分开。

修饰符:用于定义类、方法、变量。在语句的最前端,目的是用于保护对类、方法、变量的访问。默认为default,可以修饰类、接口、变量、方法,使得其在同一个包下可见,还有private,用于修饰方法和变量不能修饰外部类(一个class文件只能有一个外部类,使得其他的类或者方法能调用),使该方法或者变量在同一个类中可见,其他类不可见;public,用于修饰类,方法,变量,接口,使得该类对所有的类可见,即所有的类可以调用该类的方法,变量;protected,修饰变量、方法不能修饰外部类,对同一个包内的类和子类可见;常用的修饰符public和private。

final修饰符:final变量只能被初始化一次,final修饰的对象里面的值可以被改变,final修饰类时该类不能被继承,同事该类的所有成员方法都会被隐式的指定为final方法,final修饰方法时该方法不能被子类覆盖,即可以继承但不能被重写。

abstract修饰符:修饰抽象类和接口,其修饰的类或者接口不能被实例化,即不能被创建对象,一个类不能同时被abstract和final同时修饰;修饰方法时该方法为抽象方法,即只有方法名,没有具体语句块,只能由子类继承后重写。任何继承抽象类的子类必须重写父类的抽象方法除非该子类也是抽象类。一个抽象类可以不包含抽象方法。

synchronized修饰符,其修饰的方法同一时间只能被一个线程访问。

 

运算符:

算数运算符:+、-、*、、、%、++、--;%为取模运算符,即左边的数除以右边的数的余数。

关系运算符:==、!=、<、>、<=、>=;关系运算符就是比较左右两边的值的关系。

位运算符:&、|、^、~、<< 、>>。&逻辑与,判断左右两边数值的二进制,相对应位都是1,结果为1,反之0;|逻辑或:左右两边对应位为0则结果为1,反之0;^对应位相同为0,反之位1;~ 0变1,1变0;<<左移运算符,左边的数左移右边数位数(变大),>>与上相反(变小);部分资料和教材都是这么写,但实际操作发现&和|的用法和&&、||是一样的,区别是没有短路。

逻辑运算符:&&、||、!;&&一个为false都为false;||一个为真都为真;!取相反,!true为假,逻辑运算符有短路的特点。

赋值运算符:=、+=、-=......

条件运算符:也叫三元运算符:(x=(boolean表达式)?a:b)boolean为true,x=a;为false,x=b;

instanceof:判断左边的对象是否是右边的类或者接口的对象,子类继承父类,子类对象instanceof父类也返回true;返回boolean类型

运算符优先级,加括号!!

循环语句:

while,do...while;

while(布尔表达式){循环体}  ;do{循环体}while(表达式)至少执行一次循环然后再判断再决定是否继续循环

for:for(初始化循环变量;布尔表达式;变量更新){循环体},也可以for(;;)这样写for就变成了死循环除非循环体中有break或者return子类的语句;还有for循环嵌套等等

增强for循环,主要用于数组的遍历,for(声明语句:表达式){循环体},

int[] i = {1,2,3};

for(int a;i){循环语句},会遍历数组i并将i中的值依次赋给a;直到数组遍历完;

switch:switch(变量) case 常量(字符串、字符);在switch中传入一个变量,如果与case后的数值相等,则执行该case下的语句,每条case语句结束后要加break,否则会穿透。

continue关键字:适用于任何循环,让程序立刻跳转到下一次循环的迭代,在for中会使程序跳转到变量更新语句,while中跳转到布尔判断语句。

分支语句if(布尔表达式){语句}else{语句}或者if(布尔表达式){语句}else if(布尔表达式){语句}else{语句} 通俗来说就是 如果(布尔表达式){就怎样};或者(布尔表达式){就怎样}

 

 今天的收货:复习了一些基本语法,同时复习过程中学会向深处思考

遇到的问题:百度的资料有些不准确,需要自己验证。

明天计划:继续复习基本语法。



返回列表 返回列表
评论

    分享到