`
可乐加薯片
  • 浏览: 2650 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

面向对象B/S有关JavaSE总结

阅读更多

一、基础

对象的特点:抽象、继承、封装、多态

面向对象最大的好处是可复用

UML统一建模语言

 

JAVA设计之初的目的:

1.解决C++中的比较复杂的问题(如:内存回收)

2.解决客户机上运行程序的安全问题

3.一次编译,随处运行

 

数据类型的优先级:

byte,short,char-->int32位)-->long64位)-->float32位)-->double64位)

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.okButtoncudtomerListfileMenu

静态常量(static final):全部采用大写,单词之间使用下划线分隔

JSP文件:尽可能说明JSP的完整的功能,所有单词小写

Servlet类:在所服务的对象后面加上后缀Servlete.g.:UserServlet

 

注释规范:实现注释和文档注释/**...*/

文档注释能够通过javadoc工具转换成HTML文件

 

二、JavaSE

导入包的时候不要使用*的原因:1.程序的速读会变快 2.我们会遇上包名不同但是类名相同的类,这样我们在编程中就会出现编译错误,我们甚至不知道同名类在那个包里面

 

java中所有未声明继承关系的类都是java.lang.Object类的子类,其lang下的公共类都无需写import

 

由于StringBuffer为线程安全类,故在使用多线程的时候必须使用StringBuffer类,其不能简单的用+,而是需要使用append连接两字符串

 

String为址传递,当改变指向同一字符串的String的值的时候会新生成一个新的字符串,但是当new两个一样的值的时候指向的是同一字符串。

StringBuffer为址传递,不会生成新的Stringnew的也是不同的字符串。

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 keyvalue,允许重复的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

 

是(用二叉树排序)

 

接口:属性必须被实例化,必须为publicstaticfinal,方法都是abstractpublic

 

使用单例模式:当构造器为private的时候,可以通过使用static方法来在static方法里面调用类的实例化的类。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics