JAVA临时笔记

来源:互联网 发布:mac日本价格 编辑:程序博客网 时间:2024/05/16 15:50

反射可以结合Java的字节码,使用ASMcglib等库,还能动态生成类。

double result = Double.parseDouble(count+"");

命名规则:

1Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。

2、类名首字母应该大写,字段、方法以及对象(句柄)的首字母应小写。

3、对于所有标识符,其中包含的所有单词都应紧靠在一起,而且将中间单词的首字母大写。

4若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母

字段 get set 自动生成:

Source ->Generate Getter and Setters

整合为方法

选中代码->Refactor->Extract Method...

断点 debug 调试时可以对变量添加“watch”监视

Str01+=str02//需开辟新内存空间,导致内存垃圾,尽量不要用(字符串的不变性)

字符串的不变性->常量池(StringInteger

//格式化 format 的各种方法

//占位符,替代String = "select * from Student where stuNo=”+num+” and password=”+pw.

String sql = MessageFormat.format("select * from Student where stuNo={0} and password={1}  ",1001,123456);

//动态参数,参数 数目不确定

public static void mm(String s,Object...args){}

(集合)装箱 拆箱 效率很低,安全性低

eg  ArrayList.add(1);

集合+泛型==>泛型集合

//特殊

for(Map.Entry<String,Student> entity:map.entrySet()){}

//泛型类

public class Pair<T,M> {}

//泛型方法

public static  <T extends Comparable>Pair<T> minmax(T[ ] nums) {}

方法需要实现 Comparable

泛型的本质就是把数据类型也作为参数进行传递。

//通配符泛型

CollectionGenFoo<? extends Collection> listFoo11 =  new CollectionGenFoo<ArrayList>(new ArrayList());

//Open-Close 原则

易于修改扩展

可行性分析 -> 需求分析 -> 概要设计 -> 详细设计 -> 编码20% -> 测试 -> 部署 -> 维护

利用接口实现多态

接口最小粒度

接口里一般定义常量(public static final),可以被import

Ex:DB连接常量定义。

Java代码 - > .class - > JIT - > 机器码 - > 执行

类加载器 ClassLoader

//内部类初始化(先实例化外部类再实例化内部类)

ClassA.ClassAChild classAChild= new  ClassA().new ClassAChild();

//匿名内部类(SWING常用)只能使用一次也只需求一次

抽象类(IS-A)主要用于关系密切的对象;而接口(CAN-DO)适合为不相关的类提供通用功能。

**********

 四、抽象类和接口的使用:

      1. 如果预计要创建组件的多个版本,则创建抽象类。抽象类提供简单的方法来控制组件版本。

     2.如果创建的功能将在大范围的全异对象间使用,则使用接口。如果要设计小而简练的功能块,则使用接口。

     3.如果要设计大的功能单元,则使用抽象类.如果要在组件的所有实现间提供通用的已实现功能,则使用抽象类。  

     4.抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。

     5.面向对象思想的一个最重要的原则就是:面向接口编程。

     6.借助接口和抽象类,23个设计模式中的很多思想被巧妙的实现了,我认为其精髓简单说来就是:面向抽象编程。

     7.接口着重于CAN-DO关系类型,而抽象类则偏重于IS-A式的关系;

     8.接口多定义对象的行为;抽象类多定义对象的属性;

     9.接口定义可以使用publicprotectedinternal private修饰符,但是几乎所有的接口都定义为public,原因就不必多说了。

     10.“接口不变,是应该考虑的重要因素。所以,在由接口增加扩展时,应该增加新的接口,而不能更改现有接口。

     11.尽量将接口设计成功能单一的功能块

    12.接口名称前面的大写字母“I”是一个约定,正如字段名以下划线开头一样,请坚持这些原则。

    13.在接口中,所有的方法都默认为public

    14.如果预计会出现版本问题,可以创建抽象类。例如,创建了狗(Dog)、鸡(Chicken)和鸭(Duck),那么应该考虑抽象出动物(Animal)来应对以后可能出现风马牛的事情。而向接口中添加新成员则会强制要求修改所有派生类,并重新编译,所以版本式的问题最好以抽象类来实现。

 **********

异常:(监视范围不要太大)

语法错误

运行时异常

3系统错误(Error ApplicationException)

//对被批注的代码元素内部的某些警告保持静默

@SuppressWarnings("unchecked")

“==”与“equals

Object层次来说,==equals是相同的,都是比较内存地址;

很多类都Overrideequals方法,最典型的是String类。

原创粉丝点击