Java基础
Java属于解释型语言,源代码不直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。
1.继承
实现: public class 子类 extends 父类{}
final 关键字:当不希望一个类被继承是则在class前加上关键字final
子父类存在同名成员时,子类中默认访问子类的成员,可通过super指定访问父类的成员。格式:super.xx
创建子类对象时,默认会调用父类的无参构造方法,可通过super指定调用父类其他构造方法,格式:super(yy)
2.封装
实现: private String name;
3.多态
实现:instanceof
4.抽象
实现:abstract class Ceshi
一个类中有抽象方法则必须申明为抽象类。抽象类和接口中都可以包含静态成员常量。
5.接口
实现:interface
public class 类名 extends 父类名 implements 接口名
接口是一种特殊的抽象类,其中全都是抽象方法,不能被实例化;默认权限就是public(只能是)
Volatile
volatile是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取。volatile仅能用在变量上,不会造成线程的阻塞。
方法重写
两个方法返回值、方法名、参数列表必须完全一致;子类中的权限不能小于父类的权限;发生在继承类中
方法重载
参数名相同,参数列表可以不同;发生在一个类中
构造方法
构造方法就是与类同名的那个方法,它的作用是可以用来初始化
构造方法必须跟类名相同,普通的类方法能与类同名的,但是要返回值。
一个类可以定义多个构造方法
constructor;构造函数。
class Person {
public Person(String n,int a) //构造方法
{
name = n; age = a;
}
private string name;
private int age;
}
static void main(String[] args){
Person p = new Person("菜包",22);//这就是作用
}
//Person("菜包",22);其中这个就是构造函数,“菜包”为构造方法的形参;
abstract方法
abstract方法可以用来修饰一个类或者一个方法。 修饰一个方法时,表示该方法只有特征签名(signature),没有具体实现,抽象方法只可以被public 和 protected修饰
static方法
static方法一般称作静态方法,静态方法,可以直接通过类名调用而不需要通过对象调用。接口中没有static类型。
String
String简介:定义不可变(final)的字符串常量,常量池中生成一个字符串
new String:在堆上创建字符串对象
String.Intern():将字符串添加到常量池
String str=”JA”+”VA” == String str=”JAVA”
常量字符串和变量拼接时(String str3=Str + “01”)会调用stringBuilder.append()在堆上创建新的对象。
String[] ss=s.spilt(“”):根据括号中的内容将字符串划分为单词
Arrays.sort(int[] a):对一个数组的所有元素按从小到大排序。
Integer
为Integer赋值的时候,java编译器会将其翻译成调用valueOf()方法。比如Integer i=127翻译为Integer i=Integer.valueOf(127)
然后我们来看看valueOf()函数的源码:
public static Integer valueOf(int i)
{
//high为127
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}