关于Java,我有话要说

一、开局一张图

在这里插入图片描述

二、基础的零零碎碎

  1. path指定访问的路径
  2. path使用Java的软件tomcat,知道Java的安装位置
  3. 在地址栏输入cmd,在当前目录运行命令提示符窗口
  4. tab键自动补全,上键重复上一命令
  5. 类里面可以存在六种修饰方法
  6. static(静态)是指静态变量,生命范围大于作用范围。
  7. 方法前面加static是指这个方法属于整个类。
  8. 类的作用,保存代码
  9. Java命令后跟类名
  10. class path指定字节码文件的位置,即类的位置
  11. Java有两种数据类型
  1. 基本数据类型,
  • 数值型
    整型、浮点型
  • 非数值型
    字符型、布尔型
  1. 引用数据类型,接口,类,数组
  1. 不要过度依赖于注释。要写易懂的代码
  2. &符号没有短路作用,会报空指针。双&&符号会产生短路运算,不会报空指针。即双&&表达式前半部分为false时,后面的表达式不再计算。
  3. 换行符,续行符。空语句。
  4. if循环只支持布尔判别式
  5. else if执行效率高于if语句执行效率。
  6. switch语句中,括号内key的数据类型是整型能自动转换为整型的数据类型。
  7. 漏泄break语句,跑穿问题。
  8. switch语句可以解决多选多问题,即break不能去掉。
  9. while循环的可读性高于do while循环,即while循环更常见。
  10. for循环常用于定长循环。
  11. while用于标志循环。
  12. break跳出离他最近的括号外,continue跳出离他最近的括号内。
  13. return也可以跳出循环。
  14. 函数是一个有特定输入输出可以重复利用的代码段。
  15. 函数的七个要素,权限修饰符,static/final/abstract,返回类型,方法名称,形参列表,throws异常列表,方法体。
  16. 函数的返回类型,方法名称,形参列表不可缺。
  17. 一个方法尽可能实现单一功能。
  18. 递归常用于树形结构遍历
  19. 队列用于数据缓冲
  20. 数组是有同质化有序化特征的集合。
  21. 数组的初始化有静态初始化{},在编译过程中数组的大小已经确定。
  22. 数组的动态初始化。new 数据类型 [length]
  23. 数组初始化的过程就是分配内存空间的过程。
  24. 非动态数组语言长度固定。
  25. 面向对象编程有封装,继承,多态,定义类,创建对象的特性。
  26. 内部类分为static内部类、成员内部类、局部内部类。
  27. 包的作用:防止类名重复。
  28. 参数越少,构造方法优先级越高。
  29. 接口时类的一种特殊形式。
  30. static代码块在类载入虚拟机的时候执行一次。
  • 首次创建对象
  • 访问static成员
  • 载入子类会引起父类的加载
  1. 类不加public同包可见,加public修饰符,所有的类都可见。
  2. 封装的优点有,安全性高可维护性高
  3. 继承的本质是扩展。在原有的父类基础上扩展。
  4. 继承就是把子类的共有属性抽象到父类。
  5. 继承的目的就是为了白盒复用。
  6. 白盒复用破坏了继承的安全性。
  7. 继承并不多见,是由于Java继承是单继承,笨拙,只能子类继承父类。
  8. 树形结构,每个节点都有0个或1个前驱,有0个或多个后继,这种结构就叫树形结构。
  9. 多态,同名方法有不同的功能。
  10. 方法重载:两同三不同,同名,同一个类,参数个数,类型,顺序不同。参数名称不同不会构成重载,仅是返回类型不同,不会构成重载。
  11. 子类中方法不能和父类中的同名方法重载,但是可以和子类继承下来的父类同名方法重载
  12. 方法重载就是静态多态,在编译过程中实现多态。
  13. 方法重写,两同两不同。两同,同名,同参方法,一不同,继承链上的不同类。两小一大,父类对象可以被子类对象替换,异常列表可以变小。权限修饰符可以变大。
  14. 能用父类的地方一定能被子类对象替换。
  15. this关键字,在本类实例方法,构造方法,表示当前对象。
  16. This() 只能在构造方法首行使用,调用本类的其他构造。
  17. final类不能被继承。
  18. final变量值不可改变。
  19. final方法不能被重写。
  20. 抽象类不能被实例化。
  21. 抽象方法,没有方法体。
  22. 抽象类等着被继承,是is关系。接口是have关系,是有的关系。
  23. 抽象类和接口的成员不同。
  24. 接口可以多继承,类只能单继承。
  25. 类名一般是两个单词,名词在前,动词在后。
  26. 类名首字母大写,最常用的变量名就是类名首字母小写。
  27. 面向接口编程
  28. 添加删除时,链表的性能优于数组。
  29. 查询数据时,数组的性能优于链表。
  30. 将要输出的界面信息定义为一个字符串,操作数少。
  31. 柿子捡软的捏,任务挑容易的先完成。
  32. equals方法使用时,可将输入的值放在后面,避免空指针异常。
  33. 布尔类型默认假出口为false
  34. split表达式,其实就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即\\加以转义。

如果使用多个分隔符则需要借助 | 符号,如二所示,但需要转义符的仍然要加上分隔符进行处理

  1. 字符串处理类,数字处理类,日期类,集合,文件处理类。
  2. toString就是对自身的描述。
  3. static不加,所有的对象都有自己的属性。
  4. String值不可改变。
  5. String Buffer/StringBiuder可以改变内容。
  6. JDK5之后执行自动装箱。int可以自动转化为integer
  7. 向上取整即数轴上向右取整。
  8. 自动装箱: 就是将基本数据类型自动转换成对应的包装类。
  9. 自动拆箱:就是将包装类自动转换成对应的基本数据类型。
  10. 自动装箱都是通过包装类的valueOf()方法来实现的.自动拆箱都是通过包装类对象的xxxValue()来实现的。
  11. 集合中存储对象,不能存储基本数据类型。
  12. 把基本数据类型放入集合类中的时候,会进行自动装箱。
  13. 包装类与基本数据类型进行比较运算,是先将包装类进行拆箱成基本数据类型,然后进行比较的。
  14. 两个包装类型之间的运算,会被自动拆箱成基本类型进行。
  15. toString()方法在Object类中定义,其返回值是String类型,返回类名和他的引用地址。
  16. 任何类中,都可以直接使用Object类中定义的方法。
  17. String Buffer/StringBiuder
  • 1)首先String、StringBuffer、StringBuilder在JDK中都被定义为final类,这意味着他们不可以被继承。
  • 2)String最常见,与StringBuffer相比,String的性能较差,因为对String类型进行改变的时候都会重新生成一个新的String对象,这在字符串拼接操作时很明显,因此内容经常改变的字符串不应该使用String,如果不考虑多线程,则应使用StringBuilder。
  • 3)StringBuffer生成一个对象后,在进行字符串拼接操作时,调用append方法即可,不会产生新的对象,仅对对象本身进行操作,性能比String要高。另外StringBuffer是线程安全的,因此适合在多线程中使用,也正因为如此,速度跟StringBuilder相比会比较慢。
  • 4)StringBuilder的使用方法跟StringBuffer类似,但其是非线程安全的,因此一般常用于单线程,效率比StringBuffer高。
    综上所述,选择哪个,需要从内存性能、线程安全、执行效率等多方面考虑,从上面的几条对比中可以得出答案。

三、JCF(Java Collection Framework),Java容器框架

(一)Collection和Collection Framework

  1. 容器:能够存放数据的空间结构
  • 数组/多维数组,只能线性存放
  • 列表/散列集/树/……
  1. 容器框架:为表示和操作容器二规定的一种标准体系结构
  • 对外的接口:容器中能存放的抽象数据类型
  • 接口的实现:可复用的数据结构
  • 算法:对数据的查找和排序

容器框架的优点:提高数据存取效率,避免程序员重复劳动

(二)接口

  1. JCF的集合接口是Collection
  • add增加
  • contains包含
  • remove删除
  • size数据元素个数
  • iterator迭代器
  1. JCF的迭代器接口Iterator
  • hasNext判断是否有下一个元素
  • next获取下一个元素
  • remove删除某一个元素

(三)主要类

  1. JCF主要的数据结构实现类
  • 列表(List,ArrayList,LinkedList)
  • 集合(Set,HashSet,TreeSet,LinkedHashSet)
  • 映射(Map,HashMap,TreeMap,LinkedHashMap)
  1. JCF主要的算法类
  • Arrays:对数组进行查找和排序等操作
  • Collections:对Collection及其子类进行排序和查找操作。

四、List常用API

java.util.List接口中一些常用的API。

方法返回值类型方法说明
add(E e)boolean将指定的元素追加到此列表的末尾(可选操作)
add(int index,E element)viod将致电给的元素插入此列表的指定位置
clear()void删除列表中的所有元素
contains(Object o)boolean如果此列表中包含指定的元素,返回true,否则返回false
get(int index)E返回此列表中指定位置的元素
isEmpty()boolean如果列表不包含元素,则返回true,否则返回false
indexOf(Object o)int返回此列表中指定元素第一次出现的索引,如果列表不包含元素,则返回-1
lastIndexOf(Object o)int返回此列表中指定元素最后一次出现的索引,如果此列表不包含元素,则返回-1
remove(index)E删除该列表中指定位置的元素,同时返回该元素
remove(Object o)boolean从列表中删除指定元素的第一个出现
size()int返回此列表中的元素数
toArray()Objecyt[]返回包含此列表中所有元素的数组
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值