天天看点

Java零散知识点

1,一个源文件只能有一个public class定义,类名和文件名必须相同。 一个源文件 可以有多个类,但只能有一个 public 的类,并且 public 的类名必须与文件名相一致。 2.包名:xxxyyyzzz 类名:XxxYyyZzz 变量和函数名:xxxYyyZzz 常量名:XXX_YYY_ZZZ 3.注释:单行 // 多行 作用:1),注解说明程序 2),调试程序 4,C语言中,一个中文字符的大小 = 2个英文字符的大小 Java中,一个中文字符的大小 = 1个英文字符的大小 char 占一个字节,只能存一个字符。 5,i++ 先参与运算,再自增 ++i先自增,再参与运算 6,switch只能接收 byte,short,int,char和枚举类型的参数(表达式)。 7,匿名对象 new Dog().eat(); 8,构造函数:1),名字与类名相同 2), 无返回值类型 3),可重载,不能复写。 9,this 可调用本类构造方法,第一行。this();//本类无参的构造方法 可调用本类成员变量和方法 this.name = name;//区分成员变量和参数; this.eat(); 10.super可调用父类的构造方法,第一行。super();//父类无参的构造方法 super可调用父类的成员方法 在子类的构造方法中必须调用父类的构造方法。

11,static 静态,静态成员变量和方法可直接用类名调用,也可用对象调用。 静态代码块,类装载时执行,无需调用。 静态变量有默认初始值,非静态变量必须手动赋值。 静态方法中只能访问静态成员。 static只能修饰成员,不能修饰局部。 特点:随类的加载而加载,消失而消失,生命周期最长。 优先于对象存在 被所有对象共享,只有一份内存 什么时候用静态: 当对象出现共享数据时 当功能内部没有访问到非静态数据。 比如一些 工具类 API方法静态为了直接使用类名调用方法,无需生成对象。

12,单继承 一个子类只允许继承一个父类,一个父类可以有多个子类。 13. 对象转型 1) 向上转型 将子类的对象赋值给父类引用。 Student s = new Student(); Person p = s; 或者 Person p = new Student(); 一个引用能够调用那些成员变量和方法,取决于这个引用的类型。 一个引用掉用的是哪个方法(子类和父类共有的方法),取决于这个引用所指的对象。

2)向下转型 先向上转型再向下转型。 Student s1= new Student(); Person p = s1; Student s2 = (Student)p; 13,抽象类 —— 用来被继承的基类,强迫子类进行复写方法,功能不明确时使用。 abstract class A{ abstract void fun();//抽象方法,只有方法定义,没有方法体 } 有抽象方法的类必须是抽象类。 抽象类不能生成对象,但可以有构造方法(super),子类继承必须复写所有抽象方法。 14,接口 1)使用interface 定义 2) 接口中的方法都是抽象方法,(不用写abstract) 3)接口中都是public权限(不写默认) 4)实现一个接口用implements 5) 一个类可以 实现 多个接口,一个接口可以 继承 多个接口。 6)作用:降低耦合性,提高功能扩展,暴露规则。

14, 异常

1) .Throwable ——Exception,Error Exception —— RuntimeException(uncheck exception),check Exception 2). try{异常代码} catch(Exception e){ e.printStackTrace(); } finally{一定会执行的代码,释放资源之类的} 3) throw ——抛出异常,使用在函数中,后跟异常对象 RuntimeException e = new RuntimeException(" "); throw e; throws——生命异常,使用在函数声明上,后跟异常类。 public void fun()throws Exception{} 15,内部类——内部类必须是继承一个类或者实现一个接口 内部类可以直接访问外部类的成员,包括私有。 内部类不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。

16,面向对象 封装,继承,多态。 面向过程(主要考虑算法设计) 面向对象(主要考虑数据结构) 类是对现实生活中事物的描述,对象是这类事物的描述。 封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式。 方法是最小的封装体。

17,内存划分:栈内存,堆内存,方法区,本地方法区,寄存器。

18,主函数——main 1),public 代表着该函数访问权限最大 2),static 静态,随着类加载就加载,生命周期最长。 3),void 没有具体的返回值 4) main 不是关键字,特殊单词,被jvm识别。 5)(Stirng [] args)函数的参数,字符串类型的数组, argumengts ——参数 jvm在调用主函数时,传入的是 new String[0]; 19.数组——长度固定 静态初始化: int [] arr = new int []{1,4,5,6,9.0}; int [] arr = {1,4,5,6,9,0}; 动态初始化: int [] arr = new int [5]; 默认值为 int,short ,byte ,long ——0 double ,float —— 0.0 char —— a boolean —— false String ,Object,Integer,Double,Boolean... —— null

20,成员变量,对象等存于堆内存, 成员——类中 , 局部——方法中,参数中 局部变量 ,引用存在于占内存

21,长度大小:数组 是length属性 arr.length String 中是length();方法, s1.length(); 集合中是size();方法 list.size();

22, e.toString()获取的信息包括异常类型和异常详细消息, 而e.getMessage()只是获取了异常的详细消息字符串。