面向对象B/S有关JavaSE总结
一、基础
对象的特点:抽象、继承、封装、多态
面向对象最大的好处是可复用
UML统一建模语言
JAVA设计之初的目的:
1.解决C++中的比较复杂的问题(如:内存回收)
2.解决客户机上运行程序的安全问题
3.一次编译,随处运行
数据类型的优先级:
byte,short,char-->int(32位)-->long(64位)-->float(32位)-->double(64位)
byte,short,char之间不会互相转换,他们三者和其他数据类型混合计算时首先会转换为int类型
容量大得数据类型转换为容量小得数据类型时,要加上强制转换符,但可能造成精度降低或溢出;
有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的哪一种数据类型,然后再进行计算。
实数常量(如:1.2)默认为double。
整数常量(如:123)默认为int。
值得注意的是:
数值间的相等比较,本质是比较他们二进制存储是否相等。(0.3f!=0.3 0.5f==0.5)
命名规范:(驼峰命名法)
包:将域名反转之后加上定义的包名,全小写(com.mysoft.util)
类:两个以上的单词,首字母大写,避免缩写
属性/变量:两个以上的单词,首字母小写,禁止包含下划线和美元符号,循环嵌套使用i/j/k
方法:两个以上的单词,第一个单词为动词,首字母小写(一般需要在类的底部写main方法进行测试,调试好后注释掉,一个包含main的方法的类会严重影响类的运行速度)
接口:首字母大写,采用完整的说明后加上able/ible/er
组件(Component):使用完整的说明(e.g.:okButton、cudtomerList、fileMenu)
静态常量(static final):全部采用大写,单词之间使用下划线分隔
JSP文件:尽可能说明JSP的完整的功能,所有单词小写
Servlet类:在所服务的对象后面加上后缀Servlet(e.g.:如UserServlet)
注释规范:实现注释和文档注释/**...*/
文档注释能够通过javadoc工具转换成HTML文件
二、JavaSE
导入包的时候不要使用*的原因:1.程序的速读会变快 2.我们会遇上包名不同但是类名相同的类,这样我们在编程中就会出现编译错误,我们甚至不知道同名类在那个包里面
java中所有未声明继承关系的类都是java.lang.Object类的子类,其lang下的公共类都无需写import
由于StringBuffer为线程安全类,故在使用多线程的时候必须使用StringBuffer类,其不能简单的用+,而是需要使用append连接两字符串
String为址传递,当改变指向同一字符串的String的值的时候会新生成一个新的字符串,但是当new两个一样的值的时候指向的是同一字符串。
StringBuffer为址传递,不会生成新的String,new的也是不同的字符串。
String sbinfoA = new String("haha");
String sbinfoB = new String("haha");
System.out.println(sbinfoA==sbinfoB);
为String 的时候是true,为StringBuffer的时候为false。
类的属性和方法能够被继承,但是其构造器无法被继承,子类必须实现一个或多个其父类的构造器。
finalize/System.runFinalization();通知垃圾收集器自行进行收集该对象,当不存在对该对象的更多引用时。
throw用于方法内部,throws用于方法的定义阶段
(throw new Exception(“账户中余额不足”) public int get money(int sum) throws Exception { ..... })
三、JavaSE高级应用
数据结构:顺序储存Vector(不建议)/ArrayList和名值对储存HashTable(不建议)/HashMap不是synchronize的,允许null 的key和value,允许重复的value,但是不能有重复的key,效率上高于HashTable,都是用的差不多的hash/rehash算法
自动拆箱/装箱:
Integer在-128~127之间的时候是使用缓存的对象,而当不在这个范围内的时候会创建一个新的对象Integer i = 128;
String s = “abc” 为同一对象,String s = new String(“abc”)为new的不同的对象
final:被final修饰的常量在赋值后不可改变,被修饰的方法在在子类继承中不能被覆盖
静态(static):#属性 一般用做缓存,即使用了后所有的类都能够使用
#方法
1.只能访问类内的静态属性和方法,非静态的属性和方法无法访问。
2.使用类中的静态方法,类必须未被实例化,实例化后的类中的静态方法和属性都不能被使用。
|
|
有序否 |
允许元素重复否 |
Collection |
否 |
是 |
|
List |
是 |
是 |
|
Set |
AbstractSet |
否 |
否 |
HashSet |
|||
TreeSet |
是(用二叉树排序) |
||
Map |
AbstractMap |
否 |
使用key-value来映射和存储数据,Key必须惟一,value可以重复 |
HashMap |
|||
TreeMap |
是(用二叉树排序) |
接口:属性必须被实例化,必须为public、static、final,方法都是abstract和public的
使用单例模式:当构造器为private的时候,可以通过使用static方法来在static方法里面调用类的实例化的类。
上一篇: 基础知识
下一篇: 二十一、小项目(IPSec+PPPOE)