08 2021 档案
摘要:一.二分查找 1.非递归实现 索引 while left<=right 1 public static int binarySearch(int[] arr,int key) { 2 int left=0; 3 int right=arr.length-1; 4 while(left<=right)
阅读全文
摘要:前六章比较基础 一.线程概述 二.线程的创建 (1)1行 创建了一个任务(可以创建多个线程去执行一个任务)。2,3行创建了两个线程去执行这个任务 实现了Runnable,就是创建了一个任务 (2)Thread类的两个构造方法:Thread(Runnable target) Thread(Runnab
阅读全文
摘要:常见设计模式有:工厂模式(Factory Pattern),单例模式(Singleton Pattern),适配器模式(Adapter Pattern),享元模式(Flyweight Pattern),观察者模式(Observer Pattern)
阅读全文
摘要:排序方法 O(平均) O(最坏) O(最好) 空间复杂度 稳定性 冒泡 O(n2) O(n2) O(n) O(1) 稳定 选择 O(n2) O(n2) O(n2) O(1) 不稳定 插入 O(n2) O(n2) O(n) O(1) 稳定 希尔 O(n1.3) O(n2) O(n) O(1) 不稳定
阅读全文
摘要:(1)注解:注释,注入(标注) (2) 1.java内置注解:共有7个,3个在java.lang包下,4个在java.lang.annotation包下 annotation是一个接口,这7个注解都是annotation的实现类 (1)注解代码的注解 @Override - 重写。标记重写方法。如果
阅读全文
摘要:(1)对于List,Set,Map。每个集合都有两种遍历方法:forEach,迭代器(forEach的底层实现也是迭代器) (2)List的遍历,用迭代器的话,推荐用ListIterator (3)迭代器遍历的步骤: 1.获取迭代器:iterator() 2.hasNext() 3.next() (
阅读全文
摘要:相同:都用于对象的大小比较 不同: 1. Comparable 内部自然排序。(实体类实现) java.lang.Comparable Comparator 外部定制排序。(无法修改实体类时,直接在调用方创建) java.util.Comparator 2. (1)Comparable是排序接口,若
阅读全文
摘要:一.Arrays类 1.sort() Arrays.sort(arr) Arrays有多个重载的sort()方法,既可以按照自然顺序排序,也可以传入比较器参数定制顺序排序 2.index binarySearch(arr,key) 3.copyOf:拷贝数组 Arrays.copyOf(srcArr
阅读全文
摘要:分类:毛选入耳块归队,计数,桶,基数 一.冒泡排序:BubbleSort (1)普通版 i:1~n,j:0~n-i 1 public void bubbleSort(int[] array) { 2 for(int i=1;i<array.length;i++) 3 for(int j=0;j<ar
阅读全文
摘要:1.定义:哈希表是一种根据关键字(key)的值直接进行访问的数据结构。 关键字的值就是数组的索引下标 用法:(1)可以快速的判断某个元素是否出现在集合里(HashSet) (2)通过key可以高效的查到所匹配的value(HashMap) 哈希表中存放的是键值对 2.哈希函数:哈希函数可以将关键字转
阅读全文
摘要:1.System.out.print()不换行 System.out.println()换行 2.forEach循环不能遍历基本类型数组 可以 3.位运算符 <<:左移,相当于 *2 >>:右移,相当于 /2 >>>:无符号右移 4.String类的方法 5.Map的方法要熟悉 6.条件运算符 条件
阅读全文
摘要:java.lang中的常用类:包装类,String,Object 一.Arrays类 1.sort() Arrays.sort(arr) Arrays有多个重载的sort()方法,既可以按照自然顺序排序,也可以传入比较器参数定制顺序排序 2.index binarySearch(arr,key) 3
阅读全文
摘要:一.String的构造方法 1.String str="hello" String str=""; 2.String str=new String("hello") String str=new String(char[] value) 二.操作 基本,转换,判断,替换,分割(急转盘提分) 1.基本
阅读全文
摘要:一种数据结构:定义,构建,操作 我们就希望一种数据结构能同时具备数组查找快的优点以及链表插入和删除快的优点,于是 树 诞生了。 一.基本概念: 分类:普通二叉树,满二叉树,完全二叉树。二叉查找树(平衡二叉查找树(AVL树),红黑树)。二叉堆。优先队列 平衡二叉树和平衡二叉查找树得区分一下 1.定义:
阅读全文
摘要:1.定义:方法调用自身。递归算法可以缩小规模,递归方法调用自身,但是参数不一样。递归可以用循环(递推,迭代)或者栈来代替 2.递归三要素:边界条件,递归关系式,参数返回值(递归方法,参数不一样) 3.递归算法的时间复杂度 (1)递归算法的时间复杂度= 递归的次数 * 每次递归的时间复杂度 递归次数和
阅读全文
摘要:1.初始时:front=0,rear=0。rear指向队尾元素的下一个位置 2.分类: (1)单端队列(循环队列)(queue) (2)双端队列:判断回文串(deque) (3)优先级队列 共同点:只有一个数据项可以被访问 3.优先级队列 (1)定义:优先级队列(priority queue)是比栈
阅读全文
摘要:1.特点:先进后出 2.操作:入栈:push(),出栈:pop()。大小:size() 注意点:初始时top=-1,入栈:++top,出栈:top-- 3.应用 (1)分隔符匹配问题 利用栈判断分隔符是否匹配 1 public static void testMatch() { 2 LinkedLi
阅读全文
摘要:数据结构:数组,链表,栈,队列。哈希表。树:二叉树,堆,多路查找树。图 ADT:在数据结构上添加了操作,就是ADT 一.数组 1.特点:查找块(随机访问块),增删慢 链表:查找慢,增删块 2.用数组实现实现的ADT其实叫:顺序表(ArrayList) 3.用数组来实现数据结构(包括查增删改,遍历,扩
阅读全文
摘要:一.时间复杂度 O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(2n) < O(n!) O(m+n),O(m*n) 二.算法时间复杂度分析 (1)O(logn) for(int i=1,i<=n;i=i*2) //i按2的幂(1,2,4,8)递增 count
阅读全文
摘要:1.重载,重写 方法签名:方法名+参数列表。返回类型不是方法签名的一部分 static修饰的方法不能被重写,因为重写基于运行时动态绑定。而static方法在编译期就和类绑定了。但是被static方法可以再次声明 2.String 类中使⽤ final 关键字修饰字符数组来保存字符串, private
阅读全文
摘要:1.hashCode 该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到 2.为什么java里没有全局变量? 全局变量是全局可见的,java不支持全局可见的变量,因为:全局变量破坏了引用透明性原则。全局变量导致了命名空间
阅读全文
摘要:1.概念:以前我们根据类来得到对象,现在我们可以根据对象类得到类。根据Class对象得到类的信息。在运行时动态的获取类的信息,动态调用类的方法 2.获取Class对象的三种方法:(1)对象.getClass();(2)类名.class;(3)Class.forName(“全限定类名”) 3.反射AP
阅读全文
摘要:一.泛型 1.定义:泛型的本质是参数化类型,就是将类型参数化。限制数据元素的数据类型,提供了编译时的安全检查 泛型是编译时的,编译完成后,会将泛型擦除 2.泛型的用法:泛型类,泛型接口,泛型方法(泛型就是对参数进行设置) 3.泛型标记:E-Element,T-Type, K-Key, V-Vlaue
阅读全文
摘要:1.java是一门静态语言,静态语言指的是在编译期间就能知道度数据类型的语言,在运行前就能够坚持类型的正确性,一旦类型确定后就不能再更改 相应的,动态语言没有任何特定的情况需要制定变量的类型,在运行时确定数据类型 静态语言:java,c++ 动态语言:JavaScrip,Python 2.不同操作系
阅读全文
摘要:1.类加载过程:加载,连接(验证,准备,解析),初始化 2.垃圾收集器:新生代:Serial,ParNew,Parallel Scavenge 老年代:CMS(标记清除算法),Serial Old,Parallel Old,G1(标记整理算法) jvm体系总体分四大块: jvm组成 类加载 java
阅读全文
摘要:1.方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写 (override)实现的是运行时的多态性(也称为后绑定) 2.默认修饰符有包访问权限 3.重写 equals 时总是要重写 hashCode 4.java 为系统异常和普通异常提供了不同的解决方案,编译器强制普通异
阅读全文
摘要:1.看string源码,equals()方法 string类不可变,可以被共享 字符串连接是通过StringBuilder (或StringBuffer )类及其append方法实现的。 2.Math类:ceil,floor,round 3.Comparable接口 1.可以引入泛型避免ClassC
阅读全文
摘要:一,线程概述 1.进程:正在运行的程序 2.线程:进程中同时运行的多个执行单元 关键字:共享资源, 3.多线程可以使:多段程序代码交替运行(一段程序代码可以看做一个子任务) 4.进程和线程的区别:进程是操作系统进行资源分配的基本单位;线程时操作系统进行调度的基本单位(即CPU分配时间片的基本单位)
阅读全文
摘要:流的方向:输入流/输出流 操作单元:字节流/字符流 流的角色:节点流/处理流(低级流/高级流) (节点流:直接连接数据源节点进行读写 处理流:对节点流进行封装,程序连接到已存在的流上,不会连接到数据源) 一.字节流 1.文本,图片,音频,视频都是以二进制(字节)形式存在的 2.字节流读写文件:Fil
阅读全文
摘要:哈希表(hash table)1.原理:存的时候按照key来存,取得时候按照key来取2.底层实现:数组3.关键:(1)哈希函数 hash=h(key):实现key和数组下标的转换 哈希函数 key >hash值 (hash值就是entry存放的地址)设计哈希函数的方法有:直接定址法,除留余数法,数
阅读全文
摘要:集合,IO,多线程 反射,注解,泛型 jvm Collection和Map Collection:包括List和Set。List:有序,可重复;Set:无序,不可重复 有序:存入顺序和取出顺序一致 方法:查增删改 一.List接口: 1.ArrayList(可变数组) (1)内部封装了一个数组,查找
阅读全文
摘要:基本语法,面向对象,异常,常用类 一.Java基本语法 1. JavaSE:java最核心的类库,如:集合,IO,数据库连接,网络编程 JavaEE:Servlet,JSP,JavaBean,EJB,Web Service 2.java语言特点 面向对象,夸平台。解释性,安全性。简单性,支持多线程
阅读全文
摘要:1.三层架构 java中的接口两种含义:(1)接口(2)用户能用到的功能,即方法 2.Servlet 用在 Controller层 Controller:控制前端和后端交互。和前端页面打交道 通过Servlet用request,response和前后端打交道 3. Dao层:定义了接口 Servic
阅读全文
摘要:1.HTTP响应消息分为:响应状态行、响应消息头、消息体三部分 2.重定向:客户端行为 转发:服务器端行为 3.Servlet:运行在服务器端,用来生成动态内容。 类:HttpServlet 方法:doGet(),doPost 创建的对象:(内置对象) request对象:接收请求response对
阅读全文
摘要:1.站在逻辑角度:MVC模型 站在代码角度:三层模型:web层(视图层,控制器),业务层(Service),持久层(dao) 2. MyBatis:解决数据持久化问题 SpringMVC:解决web层问题 Spring:解决技术整合问题 3.bean:java小类,java小组件,一些实体类 4.框
阅读全文
摘要:1.JVM运行机制 JVM包括:类加载子系统(Class Loader SubSystem),运行时数据区(Runtime Data Area),执行引擎,本地接口库(Native Interface Library) 2.JVM内存区域 JVM内存区域分为: 线程私有区域:虚拟机栈,程序计数器,本
阅读全文
摘要:11. Spring 配置文件有什么作用?(2017-12-03-gxb)Spring 配置文件是个 XML 文件,这个文件包含了类信息,描述了如何配置它们,以及如何相互调用 12. 什么是 Spring IOC 容器? (2017-12-03-gxb)IOC 控制反转: Spring IOC 负责
阅读全文
摘要:1.http长连接与短连接 短连接:即使是同一个域名,浏览器每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开tcp连接
阅读全文
摘要:1.表的约束 (1)PRIMARY KEY 主键约束 定义为PRIMARY KEY的字段不能有重复且不能为NULL值 (2)FOREIGN KEY 外键约束 (3)NOT NULL 非空约束 (4)UNIQUE 唯一约束 字段值不能重复 (5)DEFAULT 默认约束 (6)AUTO_INCREME
阅读全文
摘要:1. Java的特点有哪些 Java 语言是一种分布式的面向对象语言,具有 面向对象,平台无关性,解释性。简单性,多线程 解释执行:虚拟机将字节码转换成二进制机器码执行 简单性:抛弃了C++中的指针,多重继承,手动内存回收 多线程:jvm有自己的线程实现,和系统线程一一映射 安全性:没有指针 2.j
阅读全文