java中关键字的各自用法
abstract:抽象类和抽象方法都必须使用abstract关键字来修饰;
abstract class类名称{ //定义抽象类
声名成员数据:
访问权限 返回值的数据类型 方法名称(参数…)
{
//定义一般方法
}
abstract返回值的数据类型方法 方法名称(参数…);
//定义抽象方法,在抽象方法里没有定义方法体
}
boolean:用来声明布尔类型,被声明为布尔类型的变量,只有true(真) false(假)两种。
break:其实break语句不仅可以用在switch语句中,在while ,for ,do …while等循环语句结构中的循环体或语句组中也可以使用break语句,其作用是使程序立即退出该循环,转而执行该结构下面的第一条语句。break语句也称为中断语句,它通常用来在适当的时候退出某个循环或终止某个case并跳出switch结构。
byte:字节在java中,byte类型占据1字节内存空间,数据的范围为-128-127
case:在switch…case中,case(情况)后的常量选择值要和switch后表达式的数据类型一致,并且不能重复
try(尝试),catch(捕捉),finally(最终)这三个关键词来处理异常。
char;在java中,字符类型变量在内存中占有2个字节:
定义时的语法为:char a=‘n’;
需要注意的是:字符变量的赋值,在等号右边,要用一对单引号(’ ')将所赋值的字符括起。
class:声明一个类时在class关键字后面加上类的名称,这样就创建了一个类,然后在类里定义成员变量和方法:
类的声明:
[标识符]class类名称{
//类的成员变量
//类的方法
}
continue:在while ,do…while和for语句的循环体中,执行continue语句将结束本次循环而立即测试循环条件,以决定是否进行下一次循环。
do…while:循环的过程是先执行一次循环体,然后判断表达式的值,如果是真,则再执行循环体,继续循环,否则退出循环,执行下面的语句。循环体可以是单条语句或是复合语句,在语法上它也可以是空语句,但此时循环没有什么意义。
double:double类型共8个字节,64位
float:float类型共4个字节,32位
需要注意的是:含小数的实数默认为double类型数据,如果定义的是float型数据,为其赋值的时候,必须要执行强制类型,有两种方式:
(1)直接加上字母“F",或”f",例如:“float data=1.2F;”
(2)直接在数据前加强制转型为"float",如:“float data=(float)1.2;”.
if…else:
if(条件表达式){
语句块1
}else{
语句块2
}
extends:在java中,通过继承可以简化类的定义,扩展类的功能。在java中支持类的单继承和多层继承,但是不支持多继承,即一个类只能继承一个类而不能继承多个类。
实现继承的格式如下:
class子类名extends父类
类的继承可以用下面的语法来表示:
class父类{
//定义父类
}
class子类名extends父类{
//用extends关键字实现类的继承
}
final:主要是利用final来定义常量的,声明常量的语法为:
final数据类型 常量名称[=值];
需要注意以下两点:
(1)必须要在常量声明时对其进行初始化,否则会出现编译错误。常量一旦被初始化后就无法对这个常量进行赋值
(2)final关键字不仅可用来修饰基本数据类型的变量,还可以用来修饰”对象引用“或方法
implements:接口中除了default方法,只能由抽象方法,所以这类方法只需声明,而无需定义具体的方法体,所以接口没有办法像一般类一样,用它来创造对象。利用接口创建新类的过程,称为接口的实现(implementation)
以下为接口实现的语法:
class子类名称implements接口A,接口B… //接口的实现
{
…
}
interface:在java中,提供了一种机制,把数据的通用操作(也就是方法),汇聚在一起(the collections of common operation),形成一个接口(interface),以形成对算法的复用
接口,是java所提供的另一种技术,它可视为一种特殊的类,其结构和抽象类非常相似,是抽象类的一种变体
当我们在一个接口定义一个变量时:
public interface faceA{
int NORTH=1;
}
简写的接口定义如下:
interfaceA//定义一个接口
{
public static String INFO=“Hello World”; //全局变量
public void print(); //抽象方法
default public void otherprint()
{//带方法体的默认方法
System.out.println(“default methods!”);
}
}
short:数据类型short占据2个字节内存空间大小
int:数据类型int占据4个字节内存空间大小
new:用来开辟内存空间,或利用new来创建新的对象,并指派给先前所创建的对象
私有(private):只有内部类允许私有,只能在当前类中被访问
默认(default):可以被当前包中的所有类访问
保护(protected):只有内部类可以设为保护权限,相同包中的类和其子类可以访问
共有(public):可以被所有类访问
static:(1)可以声明一个静态属性变量
(2)也可以用来声明方法,用它声明的方法有时也可以称为”类方法”。使用static 定义的方法可以有类名称直接调用
在使用static类型声明的方法时,需要注意的是:如果类中声明了一个static类型的属性,则此属性既可以在非static类型的方法中使用,也可以在static类型的方法中使用。但若要用static类型的方法调用非static类型的属性,就会出现错误。
synchronized:
synchronized同步快对同一条线程来说是可重入的,不会出现自己把自己锁死的问题;
同步块在已进入的线程执行完之前,会阻塞后面其他线程的进入。
同步块在已进入的线程执行完之前,会阻塞后面其他线程的进入。
锁的 SynchronizedDemo 对象
public class SynchronizedDemo {
public synchronized void methond() {
}
public static void main(String[] args) {
SynchronizedDemo demo = new SynchronizedDemo();
demo.method(); // 进入方法会锁 demo 指向对象中的锁;出方法会释放 demo 指向的对象中的锁
}
}
锁的 SynchronizedDemo 类的对象
public class SynchronizedDemo {
public synchronized static void methond() {
}
public static void main(String[] args) {
method(); // 进入方法会锁 SynchronizedDemo.class 指向对象中的锁;出方法会释放
SynchronizedDemo.class 指向的对象中的锁
}
}
this和super的区别:
this:(1):先从本类找到属性或方法,本类找不到再查找父类 //查找范围
(2)this调用的是本类构造方法 // 调用构造
(3)表示当前对象 //特殊
super:(1):不查询本类的属性及方法,直接由子类调用父类的指定属性及方法 //查找范围
(2)由子类调用父类构造 //调用构造
注意:由于this和super都可以调用构造方法,所以this()和super()语法不能同时出现,两者时二选一的关系。
throw:与throws不同的是,throw可直接抛出异常类的实例化对象。throw语句的格式为:
throw异常类型的实例;
执行这条语句时,将会引发一个指定类型的异常,也就是抛出异常。
volatile:修饰的共享变量,可以保证可见性,部分保证顺序性
class ThraedDemo {
private volatile int n;
}