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()只是获取了异常的详细消息字符串。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值