随笔分类 - Java
摘要:1. 定义 SPI(Service Provider Interface):是JDK内置的一种服务提供发现机制,用来被第三方实现或者扩展的API,可以启用框架扩展和替换组件,实际上是基于接口的编程+策略模式+配置文件组合实现的动态加载机制; API(Application Programming I
阅读全文
摘要:一、安全算法 1. 算法分类:摘要算法、加密算法和国密算法; 2. 摘要算法:指加密过程不需要秘钥,密文无法被解密,并且只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文,如:MD5和SHA1,其中MD5加密后是一个定长字符串; 3. 加密算法 A. 分类:对称加密、非对称加密及Hash
阅读全文
摘要:简介:树是一种数据结构,二叉树是指最多有两颗子树的树。 一、二叉查找树(BST) 1. 定义:BST全称是Binary Search Tree,又称二叉搜索树,亦称二叉排序树,在一般情况下,查询效率比链表结构要高; 2. 性质 A. 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值
阅读全文
摘要:简介:java关键字是有特别意义的标识符,用来表示一种数据类型或者程序的结构等,关键字总共51个,见如下分类,关键字不能用作变量名、方法名、类名、包名和参数 数据类型10个:boolean、int、long、short、byte、float、double、char、class、interface;
阅读全文
摘要:一、注解机制 1. 注解 A. 定义:注解是JDK5中引入的一个新特性,用于对代码进行说明,可以对包、类、接口、方法、字段、局部变量等进行注解; B. 注解中内容获取:通过反射(java.lang.reflect.AnnotatedElement)获取注解中内容如:属性。 2. Java自带注解 A
阅读全文
摘要:一、数组(Array) 1. 定义:数组是相同数据类型的元素按一定的顺序排列的集合,具有一致性、有序性和不可变性,是一块连续的内存空间,通过使用索引值来访问元素,是使用最广泛的数据结构; 2. 特点 优点:查询元素快,支持随机访问; 缺点: A. 新增和删除元素慢; B. 元素单一且大小固定; 注意
阅读全文
摘要:1. 文件操作 package com.ruhuanxingyun.javabasic.util; import org.springframework.web.multipart.MultipartFile; import java.math.BigInteger; import java.sec
阅读全文
摘要:1. 排序知识 A. 分类:简单排序(直接插入排序、冒泡排序、简单选择排序)、快速排序、希尔排序、堆排序、归并排序、基数排序和桶排序,这几种都属于内部排序; B. 排序稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=
阅读全文
摘要:简介:多线程下有个并发修改异常:java.util.ConcurrentModificationException。 一、List 1. 实现类 A. ArrayList:基于数组实现的,支持随机访问; B. Vector:与ArrayList类似,但线程安全的; C. LinkedList 基于双
阅读全文
摘要:简介:Fork/Join是由Java 7提供的并行执行任务框架,思路就是任务切分,结果合并,同时利用工作窃取机制,目的是提高效率。 1. 概念 A. 分而治之:即将任务划分为多个子任务,然后并行的执行这些子任务,等所有子任务都结束的时候,再合并成最终结果; B. 工作窃取:当一个工作线程的本地没有任
阅读全文
摘要:一、Lambda表达式 1. 特点:Lambda表达式也可称作闭包,它允许把一个函数作为一个方法的参数; 2. 语法:(parameters) -> expression 或 (parameters) -> {statements;} A. 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值
阅读全文
摘要:1. 队列和栈 队列:就像管道,排队在,先进先出(FIFO); 栈:就像桶,先进后出。 2. 阻塞队列(BlockingQueue) A. 阻塞队列:由于队列有容量限制,故当队列元素已满时,新增加的元素必须等待,或当队列元素取出已空时,也会阻塞等待新的元素; B. ArrayBlockingQueu
阅读全文
摘要:1. Apache POI 简介:POI是Apache下开放源码函式库,用纯Java代码来读取、写入、修改Excel,创建Excel文档可以添加摘要信息,批注,页眉和页脚,使用公式,生成图形,设置密码,数据下拉式菜单,打印基本设置,超链接等,提供了两类API,usermodel(用户模型)和even
阅读全文
摘要:一、JVM内存结构 1. 组成部分 A. 程序计数器:当前线程执行字节码的位置指示器,字节码解析器的工作是通过改变这个计数器的值,来选取下一条需要执行的字节码指令,用于分支、循环、跳转、异常处理和线程恢复等功能,属于线程隔离数据区; B. Java虚拟机栈:保存局部变量(实例方法和静态方法中变量)、
阅读全文
摘要:1. SQL注入 A. 定义:SQL注入就是通过注入SQL命令来进行攻击,是攻击者把SQL命令插入到Web表单或请求参数的查询字符串里面提交给服务器,从而让服务器执行该SQL; B. 防御:使用预处理PreparedStatement; 使用正则表达式过滤掉字符中的特殊字符。 2. XSS攻击 A.
阅读全文
摘要:一、JSON 1. 作用:JSON是轻量级的文本数据交换格式,比XML更小、更快、更易解析; 2. 语法规则: A. 数据在名称/值对中,冒号隔开; B. 数据由逗号分隔; C. 大括号保存对象; D. 中括号保存数组。 注意:引号(单引号或双引号)里使用相同的引号,需要用反斜杠(\)转义 3. J
阅读全文
摘要:一、IO流 1. 定义:IO流用来处理设备之间的数据传输,在java程序中,对于数据的输入/输出操作都是以“流”的方式进行; 2. 分类 A. 按流的方向分 输入流:程序从数据源读取数据的流; 输出流:程序向数据源写出数据的流; B. 按流的内容(传输方式)分 字节流:以字节为单位传输数据的流; 字
阅读全文
摘要:一、常用工具 1. org.apache.commons.collections(4)包提供CollectionUtils、MapUtils、ListUtils、SetUtils等工具类; A. MapUtils.isNotEmpty(map) // 判断map集合不是null值且元素不为空集 2.
阅读全文
摘要:简介:流是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列,Stream操作是延迟执行的,它不会改变源对象,返回的是新Stream。 1. 创建Stream A. 创建流: 顺序流:default Stream<E> stream(); 并行流:default Stream<E> paral
阅读全文
摘要:一、常用技巧 1. try catch语句块中try()的括号中代码作用(JDK1.7) A. 语法格式:try(创建流对象语句,如果多个,使用分号隔开) { // 读写数据 } catch (IOException e) { e.printStackTrace(); } B. 语句执行完后,会自动
阅读全文