JAVA知识点总结篇(三)
抽象类
- 使用规则
- abstract定义抽象类;
- abstract定义抽象方法,只有声明,不需要实现;
- 包含抽象方法的类是抽象类;
- 抽象类中可以包含普通方法,也可以没有抽象方法;
- 抽象类不能直接创建,可以定义引用变量;
接口
- 定义:一种特殊的类,由全局常量和公共的抽象方法所组成;
- 类是一种具体实现体,而接口定义了某一批类所要遵守的规范,接口不关心这些类的内部数据,也不关心这些类中方法的实现细节,它只规定这些类中必须提供某些方法;

- 接口使用:一个类可以实现一个或多个接口,实现接口使用implements关键字。Java中一个类只能继承一个父类,可以通过多个接口做补充;

UML
- 定义:统一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持;
异常
- 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理;
- 在多重catch块后面,可以加一个catch(Exception)来处理可能被遗漏的异常;
- 对于不确定的代码,也可以加上try-catc,处理潜在的异常;
- 尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出;
- 具体如何处理异常,要根据不用的业务需求和异常类型去决定;
- 尽量天剑finally语句块去释放占用的资源;
字符串
- String对象创建后不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同;
- 每次new一个字符串就是产生了一个新对象,即便两个字符串的内容相同,使用"=="比较时也为
false,若只需比较内容是否相同,应使用eauals()方法;

==和equals()的区别==判断两个字符串在内存中首地址是否相同,即判断是否同一个字符串对象;equals:比较存储在两个字符串对象中的内容是否一致;
- StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能更高;
包装类
基本类型和包装类之间的对应关系:

- 包装类提供的两大类
- 将本类型和其他基本类型进行转换的方法;
- 将字符串和本类型及包装类互相装换的方法;
- 装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱;
拆箱:把包装类对象转换程基本类型的值,分为手动拆箱和自动拆箱;
- 基本类型转换为字符串的三种方法:
- 使用包装类的
toString()方法; - 使用String类的
valueof()方法; - 用一个空字符串加上基本类型,得到的就是基本数据类型对应的字符串;
- 使用包装类的
- 将字符串转换为基本类型的两种方法:
- 调用包装类的
parseXxx静态方法; - 调用包装类的
valueOf()方法转换为基本类型的包装类,会自动拆箱;
- 调用包装类的
时间
- 调用
SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要进行异常处理; - 使用Date类时需要导入
java.util包,使用SimpleDateFormat时需要导入java.text包; - 调用
Calendar获取月份时,月份是从0开始的;

Math类
Math位于java.lang包中,包含用于执行基本数学运算的方法,类中所有方法懂事静态方法,可以直接使用类名.方法名();

集合框架
- 定义:一种工具类,就像是容器,储存任意数量的具有共同属性的对象;
- 作用
- 在类的内部,对数据进行组织;
- 简单而快速的搜索大数量的条目;
- 有的集合接口,提供一系列排列有序的元素,且可以在序列中间快速插入或者删除有关元素;
- 有的集合接口,提供映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型;
- 数组与集合区别
- 数组长度固定,集合长度可变;
- 数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象;

- Collection接口
- 是List、Set、Queue接口的父接口;
- 定义了可用于操作List、Set、Queue的方法--增删改查;
- List接口及其实现类--ArrayList
- List是元素有序且可重复的集合,被称为序列;
- List可以精确控制每个元素的插入位置,或删除某个位置元素;
- ArrayList--数组序列,是List的一个重要实现类;
- ArrayList底层由数组实现;
- Map接口
- Map提供了一种映射关系,其中的元素是以键值对
(key-value)的形式存储的,能够实现根据key快速查找value; - Map中的键值对以Entry类型的对象实例形式存在;
- 键(key)不可以重复,value可以;
- 每个键最多只能映射到一个值;
- Map接口提供了分别返回key值集合、value值集合以及Entry(键值对)集合的方法;
- Map支持泛型,形如:Map<K,V>;
- Map提供了一种映射关系,其中的元素是以键值对
- HashMap类
- HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现;
- HashMap中的Entry对象时无序排列的;
Key值和value值都可以为null,但是一个HashMap只能有一个key值为null的映射(key值不可重复);
欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~
JAVA知识点总结篇(三)的更多相关文章
- Java知识点整理(三)
如何设计出高可用的分布式架构 分布式架构 CDN简介 分布式缓存和本地缓存区别 高并发场景常用技术解决方案 JVM优化示例 Docker和JVM区别 Java开发人员需要注意的五大Docker误区 D ...
- JAVA知识点总结篇(二)
数组 一维数组 声明 数据类型[] 数组名: 数据类型 数组名[]: 分配空间 数组名 = new 数据类型 [数组长度]: 可以在声明的同时分配空间,分配空间之后数组中才能放数据,数组元素都是通过下 ...
- JAVA知识点总结篇(一)
JVM(Java Virtual Machine):源文件->编译器->字节码文件->解释器->程序: JDK:Java Development Kit,Java开发工具包: ...
- JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!
JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...
- Java Learning Path(三)过程篇
Java Learning Path(三)过程篇 每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法.因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基 ...
- 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...
- 20145213《Java程序设计》第三周学习总结
20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...
- 20155304 2016-2017-2 《Java程序设计》第三周学习总结
20155304 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 第四章 类与对象 定义: 对象(Object):存在的具体实体,具有明确的状态和行为. 类( ...
- JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想
JAVA之旅(三)--数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 我们继续JAVA之旅 一.数组 1.概念 数组就是同一种类型数据的集合,就是一个容器 数组的好 ...
随机推荐
- 4.学习springmvc的响应数据和结果视图
一.返回值分类: 字符串:返回值为需要展示的视图 void:返回为默认的页面(方法名.jsp) ModleAndView:存储对象并返回设置的页面 1.字符串: jsp: <a href=&qu ...
- ABP 02 解决 界面为英文
原文:https://www.cnblogs.com/wswind/p/10313968.html 1.直接改数据库 2.在数据迁移前,更改默认值 注意: 我的项目已经初始化了,数据库已经都生成好了, ...
- .NET总结--泛型与泛型集合,应用场景
泛型优点 1.提高代码复用性,代码简洁直观 2.直接存储数据类型免去数据类型之间得隐式转换 3.免去拆箱装箱过程,提高效率 4.数据类型安全,存储时会验证是否对应该类型 泛型集合 一. ArrayLi ...
- 为arm-linux开发板挂载基于nfs的根文件系统
linux4.14内核,首先设置kernel的bootargs,在make menuconfig中有三种方式来配置: 第一种方式为如果uboot中设置了bootargs环境变量,就采用uboot的bo ...
- c++ 朋友函数
#include <iostream> using namespace std; class Address; //提前声明Address类 //声明Student类 class Stud ...
- redis里能不能针对set数据的每个member设置过期时间
不能.可以用sorted set,把要过期的member和key的信息放在sorted set的member里,把过期时间放在score中.跑个任务用zrangebyscore遍历就行了.用sorte ...
- 【BIEE】导出大量数据报错处理请求时出现致命错误。服务器响应为 com.siebel.analytics.utils.InputStreamWithLimit$ReadOverTheLimitException
问题描述 在使用BIEE导出大量数据的时候,报错如下: 处理请求时出现致命错误.服务器响应为: com.siebel.analytics.utils.InputStreamWithLimit$Read ...
- R语言中查询帮助
可以尝试下面的几种方式 help(lapply,package=,....)?lapply??lapplyhelp.search('lapply')apropos('norm') #函数名记不全时用? ...
- Nginx服务器作反向代理实现内部局域网的url转发配置
情景 由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的80端口只能映射到外网的非80端口.非80 ...
- 暑假gosh计划
[要参与的事项]: 1.大创 2.CTF 3.ACM 4.自己的巴拉巴拉巴 [基本目标]: 1.大创 学完一本Java入门教材 学习Material Design,了解典型交互,进行ui初步设计 2. ...