java高级知识点_JAVA高级阶段知识点汇总
一、集合框架和泛型
1.定义
集合框架用于存储一组长度不定的元素。
2.常用的接口和类
接口:Collection、List、Set、Map、Iterator
类:ArrayList、LinkedList、HashSet、HashMap
List接口和Set接口均继承自Collection接口。
3.使用特点
List:存储的元素不唯一、有序。
Set:存储的元素唯一、无序。
Map:元素以键值对的方式进行存储。
4.ArrayList和LinkedList的区别
ArrayList:查找元素速度快,性能高;但是不适合频繁的对集合元素进行插入、修改、删除。
LinkedList:在频繁对集合元素进行插入、修改、删除时效率高,速度快;但是查找速度不如ArrayList。
5.集合常用方法:
List:
add(Object obj)、remove(Object obj)、remove(int index)、size()、get(int index)、iterator()、clear()
Set:
add(Object obj)、remove(Object obj)、size()、iterator()、clear()、没有get方法
Map:
put(Object key, Object value)、get(Object key)、keySet()、values()、size()、remove(Object key) 、clear()
二、实用类
6.枚举
定义 : 一组固定的常量。
语法
访问修饰符 enum 枚举名{
常量一,
常量二,
… …
}
用法
声明枚举变量并赋值:Season season = Season.Spring;
switch:
switch(枚举变量){
常量一:
… …
Break;
常量二:
… …
Break;
}
7.包装类
每个值类型(基本数据类型)都存在一个对应的包装类。
int->Integer、double->Double、boolean->Boolean、char->Charactor、… …
值类型和包装类的相互转换
拆箱和装箱
装箱:将值类型转换为引用类型。
拆箱:将引用类型转换为值类型。
8.Math类
Math类的作用
提供一系列与科学计算相关的方法。
常用方法:random()、floor()、ceiling()、max()、min()、round()
9.String类
常用的方法:substring()、indexOf()、lastIndexOf()、replace()、split()、length()
10.Random类
作用 : 生成随机数。
常用方法:nextInt()、nextInt(int)、nextDouble()、nextXXX()
11.日期时间类
Date
Calendar
SimpleDateFormat
12.StringBuilder(StringBuffer)和String的区别?
String 在进行运算时(如赋值、拼接等)会产生一个新的实例,而 StringBuilder 则不会。所以在大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder(StringBuffer),不要使用 String。
三、输入输出IO
IO操作相关的包:java.io
13.File类
功能:实现对文件和目录的常规操作。
常用的方法:
方法名
作用
exits()
判断文件或目录是否存在
14.流的分类
根据方向分类:
输入:InputStream、Reader
输出:OutputStream、Writer
根据流操作的数据单位分类:
字节流:InputStream、OutputStream
字符流:Reader、Writer
实现类
(抽)InputStream
(抽)OutputStream
(抽)Reader
(抽)Writer
FileInputStream
FileOutputStream
InputStreamReader
OutputStreamWriter
DataInputStream
DataOutputStream
FileReader
FileWriter
ObjectInputStream
ObjectOutputStream
BufferedReader
BufferedWriter
序列化和反序列化
序列化是指将内存中对象的状态转换为可以存储或传输的格式的过程。
四、多线程
15.进程和线程的区别
计算机中一个正在运行的可执行程序的实例就是进程。一个进程可以包含多个线程。单个线程用于完成一个任务,而同时创建多个线程来完成多项任务,便是多线程。
二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。
用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。
16.Java中使用线程的步骤17.Java中定义线程的2种方式
18.线程的优先级
19.线程的生命周期
20.线程的同步
21.线程常用方法
五、网络编程
22.什么是TCP和UDP,他们的差异是什么?
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接(信任连接)。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
UDP适用于一次传送少量数据、对可靠性要求不高的应用环境,但是传输速度快。
TCP适用于一次传送大量数据、对可靠性要求较高的环境,数据传输速度慢。
六、XML操作
23.XML基本概念
XML即可扩展标记语言。一般用来存储数据和在网络间传输数据。
XML很像超文本标记语言(HTML);但它又未规定固有的标记有哪些。
XML使用规范大致包括:
每个XML文件的第一行为XML声明,定义了XML版本和编码等信息。
一个XML文档有且仅有一个根节点。
XML对大小写敏感,区分大小写。
每个XML标记必须包含开始标记和结束标记。
XML的标记必须正确的潜逃。
24.XML与HTML的主要区别
XML用于存储和传输数据,而HTML则用于显示数据。
XML区分大小写字母,而HTML不区分。
HTML的开始标记可以没有对应的结束标记,而XML的开始标记必须要有结束标记相对应。
在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
在HTML中可以有不带值的属性名。但是在XML中,所有的属性都必须带有相应的值。
XML中的标记可由用户自定义,而HTML则约定了可以使用哪些标记。
25.JAVA中操作XML有哪些技术
DOM方式
DOM 是 W3C 处理 XML 的标准 API,它是许多其它与 XML 处理相关的标准的基础。它根据XML文档中节点间的关系进行操作,最大的问题就是需要将整个XML文档一次性加载到内存中。
SAX
SAX 从根本上解决了 DOM 在解析 XML 文档时产生的占用大量资源的问题。其实现是通过类似于流解析的技术,通读整个 XML 文档树,通过事件处理器来响应程序员对于 XML 数据解析的需求。
Dom4j
Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用Java集合框架实现,并完全支持DOM,SAX和JAXP。
26.什么是xpath
XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。
表达式
说明
示例
nodename
选取此节点的所有子节点
bookstore()
/
从根节点选取
/bookstore(选取根元素bookstore)
//
从匹配的当前节点选择节点,不考虑位置
//book选取所有book子元素,不管其位置
.
选取当前节点
..
选取当前节点的父节点
@
选取属性
//@lang选取名为lang的所有属性
java高级知识点_JAVA高级阶段知识点汇总相关推荐
- java第二章_JAVA第二章知识点
JAVA第二章知识点 本章知识梳理 2.1 关键字 2.2 标识符 2.3 变 量 2.4运算符 2.5 程序流程控制 2.6 方法 2.1 关键字 关键字(keyword)的定义和特点 定义:被ja ...
- java程序知识_java的基本知识点
java的基本知识点 Java语言具有功能强大和简单易用两个特征.下面是小编为大家整理的java的基本知识点,欢迎参考~ 1. JVM相关(包括了各个版本的特性) 对于刚刚接触Java的人来说,JVM ...
- java高级内容_Java高级程序员必备的内容知识
一段时间没有回顾多线程相关知识了,虽然工作中会用到一些多线程的内容,但都偏向于基础,今天java培训带大家重读多线程相关内容,发现有些东西还是需要注意下.这些一般是面试高频问题奥. 了解并发的内幕是一 ...
- java高级类_Java高级类特性(一)
权限类内同包不同包子类不同包非子类 private √ × × × default √ √ × × protected √ √ √ × public √ √ √ √ 四.super关键字的使用 pac ...
- java高级教程_Java高级教程02
1.Java线程 1.1. 多线程和多进程 多进程:操作系统能够同时进行多个任务: 每个app(word,播放器,浏览器)可以同时运行 多线程:同一应用程序中哟多个顺序流同时执行 线程是进程中的一部分 ...
- java高级规范_Java高级规范之二
二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能 ...
- java高级考试题_JAVA高级考试题
一.单项选择题 (共36题,36分) 1. 已知一个引用类型变量myvar指向了一个流对象,在程序中出现了如下语句:myvar.flush(); myvar.close(); 则myvar所指向的对象 ...
- java二进制保存图片_JAVA高级特性——二进制存储图片
import java.io.*;/*** 将图片转为数组,输出成文件,再读取这个文件,获得这个数组,还原成图片 *@authorAdministrator * **/ public classTex ...
- java高级应用_Java高级应用简笔
1. Annotation 使用范围: package, class, method, field 常用: @Override, @Deprecated, @SuppressWarnings 自定义注 ...
最新文章
- 卷积神经网络模型可解释性
- 插入数据的时候出现错误:Error during job, obtaining debugging information…
- inline行内元素
- tensorflow2.0 图像处理项目_游戏爱好者应该看看这个开源项目
- 三菱四节传送带控制梯形图_【毕业设计】三菱plc(论文)基于PLC的传送带的控制系统设计毕业设计...
- 我又发现一个直接就能安装中文小红帽的方法
- python 整数转字符串_16、atoi-整数字符串转整数-leetcode8-中等
- mysql性能测试工具之sysbench
- DB2 开发系列 从入门开始--概述
- Python实现基于TF-IDF抽取文本数据关键词
- 如何进行IT项目的需求调研?[读后有得所以转之]
- 一个很好用的,免费的UML在线画图网站
- PHP7函数大全(4553个函数)
- 广播地址的计算方法(与运算、或运算)
- 监理项目的服务器,idc服务器机房搬迁工程施工监理的重点
- 艾永亮:新能源汽车补贴退潮后,谁在裸奔,各大车企该如何应对
- zookeeper的脑裂问题
- 解决If you see valid patterns in the file then the issue is probably caused by a circular import
- 【更新版】域名安全防护智能解析DNS+CDN免费产品
- 微信小程序:轮播图中间大两边小、中间高亮显示
热门文章
- python 扫盲系列(1)
- 命令行下jq才是JSON 处理利器呀
- javap(反汇编命令)详解
- 解决eclipse中git插件中的cannot open git-upload-pack问题
- 10个节省时间和改善工作流的Git技巧
- 互联网广告系统综述一生态圈
- GCC/G++选项 -Wl,-Bstatic和-Wl,-Bdynamic
- HCharts随笔之简单入门
- 042——VUE中组件之子组件使用$on与$emit事件触发父组件实现购物车功能
- 俄罗斯无人机公司Hoversrf紧随Volocopter步伐,酷炫“方程式”飞行汽车来袭