JAVA重点备忘

来源:互联网 发布:23号端口 编辑:程序博客网 时间:2024/06/01 19:38

7-1.private\protected\public

可见性:

本类\同包其他类或子类\其他包的类或其子类

7-2.静态方法不能使用this及调用非静态方法;

7-3 主方法main是静态方法且只有一个

7-4 静态成员意味着不同的对象中的相同名字的静态成员指向同一个内存快,即不独立;

7-5 ==比较内存地址,.equals()比较内容;

7-6 垃圾:凡是超过作用范围的对象、对象值为NULL;

7-7 可能无法识别不是new操作符创建的对象,这时需要使用protected finalize extends Object(){}方法;

7-8 若内存消耗殆尽,不执行垃圾回收; System.gc()可以强制启动垃圾回收器;

10-1 重写时不能降低方法的修饰权限;

10-2 子类自动调用父类无参构造方法,若要调用父类有参构造方法,使用super.

10-3 判断父类能否向下转型成子类用instanceof

10-4 构造方法名称由类名决定,同名不同方法——方法重载

10-5 abstract-抽象类、interface—接口,接口用于实现那些在抽象类的抽象方法中,部分抽象类的继承类需要而其他的不需要使用的方法;

10-6 接口内任意方法必须是public或abstract;任何定义的字段都是static和final的;


final变量:

11-1 final指向对象不变,对象内值可变,在每次对象实例化时更改,若要值不变添加static,则在装载时被初始化

11-2 空白final可在构造方法里赋值

final方法:

11-3 final方法不能重写,执行效率高,另外private方法隐式的为final方法

11-4 final绝不被覆盖;private final在子类向上转型时可生成一个新方法覆盖见p202

final类:

11-5 不能被继承,类中所有方法隐式设置为final,但成员可不用;

内部类:

11-6 成员内部类:可使用外部类所有成员,与外部类绑定,外不能直接访问内可以引用;

11-7 静态内部类:不能使用外部类的非静态成员


12-1finally块不会执行的4种特殊情况:1)finally内语句发生异常;2)前面的代码中使用System.exit退出了程序;3)程序所在线程死亡;4)关闭CPU

12-2 Error、RuntimeException及其子类可以不使用throws关键字声明要抛出的异常且使编译顺利通过,但在运行时会被系统抛出;

12-3 程序在执行到throw语句时立即终止;throws用于声明自己定义的异常;

12-4 使用try catch时,由于Exception e是所有异常的父类,所以catch(Exception e)必须放在所有同一try下并列catch的最后面


13p227-p254


14-1 集合类(容器):可变长、存放对象的引用

14-2 可变数组ArrayList链表LinkedList   -------------------------------->List---->Java.lang.Object

14-3 hashset(不保证迭代顺序)    treeset(自然递增)----->Set集合(不能包含重复对象)-----↑

14-4 headset[0,a)、subset[a,b)、tailSet[b,)--↑

14-5 map->KV对一一映射k,v。


15-1 InputStream类:所有字节输入流的父类,用于处理字节。 Reader类:字符输入流的抽象父类。因为java里字符unicode编码,双字节。

15.2 输出对应上节分别为OutputStream类和Writer类

15-3 FIle类:用于操作文件、获取文件信息

15-4 FileInputStream、FileOutputStream类:用于从磁盘文件读取或写入信息。只能读取字节(byte),读字符会乱码。

FileReader、FIleWriter类:从文件中读写字符流

15-5 缓存流:增加了内存缓存区,可以执行skip(),mark(),reset()等方法。

BufferedInputStream、BufferedOutputStream:带缓存的InputStream、OutputStream方法。

flush()方法用于将缓存区的数据强制输出完。

BufferedReader、BufferedWriter类:带缓存的InputStreamReader、OutputStreamWriter类。

DataInputStream、DataOutputStream类:允许应用程序以与机器无关的方式从底层输入流中读写基本JAVA数据类型。如含UFT、chars、Bytes三种读写方法。

ZipEntry类:用于产生代表ZIP压缩文件的输入点。读写时必须先用putNextEntry(ZipEntry e)方法移动到输入点。

ZipInputStream、ZipOutputStream类:用于读写ZIp压缩文件

16.1 反射机制:在程序中访问已经装载到JVM中的JAVA对象的描述,实现访问、检测和修改描述JAVA对象本身信息的功能。

通过反射执行其他类方法:method.invoke(example,168);

setAccessible()方法可以取消Java的权限控制检查,提升速度

16.2 用@interface定义Annotation类型而非用Annotaition,这个关键字隐含继承java.lang.annotation.Annotation接口。

Annotation类型定义成员时,可使用如String describe() default "<默认值>; Class type() default void .lass"的方式设置默认值

Annotation潜规则:不能影响程序执行

是接口的一种功能扩展是一种有功能效果的注释可以为类、方法等生成特定的java doc可以在运行时标注类、方法等,用反射的方式达到特殊的流程控制等目的在编译的时候,可以用注解处理器,对其中的源代码进行处理

通过Annotation类型@target设置适用的程序元素种类(若无则默认为适用所有)

用枚举类ElementType中的枚举常量设置@Targer

通过Annotation类型@Retention设置Annotation的有效范围

用枚举类RetentionPolicy中的枚举常量设置@Retention(若无则默认有效范围为枚举常量Class的有效范围)


17.1枚举类型

枚举取代在接口中放置常量的方式。

优点:参数类型检测、每个枚举类型是一个类,其中的每个成员都是枚举类型的一个实例,且默认被final、public、static修饰。

类型安全、定义紧凑、完美交互、高效运行

17.2泛型

泛型是为了解决向下强制转换类型时不报错报ClassCastException异常的问题。


18.1 线程

声明:类继承Thread类,new xx().start(),重写run。

如果需要继承其他非Thread类,需要使用Runnable接口(因为java不支持多继承)。

建立Runnable对象->Thread对象->.start()->run()

例18.2的class.getResource方法路径参照http://blog.csdn.net/lcj8/article/details/3502849

18.3 生命周期

出生状态->strat()->就绪状态->得到系统资源->运行状态

(->wat()->等待->notify()->就绪状态)

(->sleep()->休眠状态->时间到->就绪状态)

(->发出输入输出请求->阻塞状态->输入输出结束->就绪状态)

(->run()方法执行完毕->死亡状态)

18.5

优先级:1-10,默认为5


19.1端口和套接字

套接字(Socket类)用于将应用程序和端口连接起来

accpet()等待(会进入堵塞状态)->接到链接请求->保存到队列(最大容纳数默认50,超出则拒绝)->新建一个socket

19.2 Tcp:可靠,有序

19.3 UDP:不可靠,无序,有小错误,但较快


20.1数据库

select:语法

SELECT 所选字段列表 FROM 数据表名

WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件)

ORDER BY 字段名[ASC|DESC](排序,默认升序)

insert:

INSERT INTO 表名[(字段名1,字段名2....)]

VALUES(属性值1,属性值2,...)

update:

UPDATE 数据表名 SET 字段名 = 新的字段值 WHERE 条件表达式

delete:

DELETE FROM 数据表名 WHERE 条件表达式

20.2 JDBC技术:JavaDataBaseConnectivity :指定了统一的访问各种关系型数据库的标准接口  (p359JDBC名称有误,Connectiviry应为Connectivity。)

Connection接口:代表与特定数据库的连接

Statement接口:用于在已经建立连接的基础上向数据库发送SQL语句

PreparedStatement接口:用于动态执行SQL语句

DriverManager类:用于管理数据库中的所有驱动程序

ResultSet接口:类似临时表,用于暂时存放数据库查询操作所获得的结果集

0 0