java学习记事本


1、在java中数据类型分为基本数据类型和引用数据类型,基本类型定义的不是对象,引用类型定义的是对象,例如int a=5这个a只是个数据类型而非对象,String s=“asasasa”;中的的s是对象,因为s只是获得字符串的引用地址所以是对象。

2、在快速排序中一定要判断等号的时候否则会出现死循环的问题,切记;

3、在创建对象的时候如果单独一个类中,对于初始化部分执行的先后顺序是类变量,静态代码块,实例变量,构造代码块,构造函数,如果有类的继承,这时创建一个子类对象时运行的先后顺序为父类的类变量---->父类中的静态代码块--->子类中的类变量----->子类中的静态代码块------>父类中的实例变量------>父类中的构造代码块------->父类中的构造函数----->子类中的实例变量------>子类中的构造代码块---->子类中的构造函数

4、static只能修饰成员变量和成员方法,外部类是不能用static修饰的,但是内部类是可以被static修饰的,这时的类相当于外部类的成员。(切记static不能修饰局部变量和局部方法)

5、在写多线程时如果继承Thread类那么在主函数中要先将所有进程start完之后再进行主函数其他操作语句(这句话说的不太准确,只是为了看到主线程和开的子线程之间交替出现的现象)

6、jdk、jre、path、classpath的作用

JDK是开发环境,他是java的核心,包括jre运行环境、一堆java工具和java基础类库(java API);
jre是运行环境,如果一台电脑上有jre你只需要将你编译后的java文件就可以在其上面运行;
path用于:注明EXE应用程序路径,以便于在任何目录都可以调用得到。在你调用dos的时候用到javac是吧,看看他的后缀名是不是.exe;
classpath用于:是当我们在开发java程序时需要引用别人写好的类时,要让java解释器知道到哪里去找这个类。

7.在使用TreeSet集合的时候如果只引入java.util.*文件的时候有可能报错,因此要再引入java.util.TreeSet,虽然TreeSet就包括在前面的java.util.*中,但是不加java.util.TreeSet就报错,不知为什么。

8、泛型知识

参数化类型与原始类型的兼容性:
参数化类型可以引用一个原始类型的对象,编译报告警告,例如, Collection<String> c = new Vector();//可不可以,不就是编译器一句话的事吗?
原始类型可以引用一个参数化类型的对象,编译报告警告,例如, Collection c = new Vector<String>();//原来的方法接受一个集合参数,新的类型也要能传进去
参数化类型不考虑类型参数的继承关系:
Vector<String> v = new Vector<Object>(); //错误!///不写<Object>没错,写了就是明知故犯
Vector<Object> v = new Vector<String>(); //也错误!
编译器不允许创建泛型变量的数组。即在创建数组实例时,数组的元素不能使用参数化的类型,例如,下面语句有错误:
  Vector<Integer> vectorList[] = new Vector<Integer>[10];

9、final、finally、finalize之间的区别

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。

finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。

finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

10、接口的一般应用于下列六种设计模式:

          定制服务模式:设置精粒度接口,每个接口代表相关一组服务,通过继承来创建复合接口。

          适配器模式:每当系统之间不匹配的时候,用适配器来转换借口。

          默认适配器模式:为借口提供简单的默认实现

          代理模式:为接口的实现创建代理类,使用者通过代理类获得实现类的服务

          标识类型模式:用接口来表示一种没有任何行为的抽象类型

          常量接口模式:在接口中定义静态变量,在其它类中用import static语句引入这些常量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值