一、基础
对象的特点:抽象、继承、封装、多态
面向对象最大的好处是可复用
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方法里面调用类的实例化的类。
相关推荐
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html JDK默认Policy只能支持位Key,GPG的密钥从1024-2048,所以必须扩展该Policy。具体安装方法参考文件中的ReadMe文件。
狂神javase总结
JavaSE总结.xmind
JavaSe的总结,顺便测试下上传,内容比较基础
JavaSe的总结,顺便测试下上传,内容比较基础
公司内网只能访问CSDN, 不能在其他网络下载,只能先上传到CSDN, 自用软件,不可下载, 请不要私自下载
javaSE超级总结 ,用思维导图mindmanager制作mmap文件,javase部分的超级总结 ,手机可用mindjet maps 查看
用Typera的形式的个人对JAVASE的总结。 以及用XMind记录的对应的JAVASE的思维导图!
jdk11官网下载地址 https://www.oracle.com/java/technologies/javase-jdk11-downloads.html
面向对象程序设计:JavaSE-任务21
面向对象程序设计:JavaSE-任务81
面向对象程序设计:JavaSE-任务11
面向对象程序设计:JavaSE-任务101
JavaSE进阶 面向对象继承
JavaSE进阶 面向对象多态
chm格式的java6API文档,中文的。由于单个文件大小限制,分卷压缩成两部分了
笔记来源于黑马程序员内部总结,总结的非常全面很适合懒人学者的学习和复习
javaSE回顾总结,学习笔记,查漏补缺。 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态...
javase总结思维导图