03 2018 档案
摘要:(一)list和数组 ①List默认排序代码: ②:数组: (二)自定义排序: ①实现Comparable接口,类内设比较项。 ②实现Comparator接口,类外设比较项。
阅读全文
摘要:(一)Java中内存的分类 ①:栈内存:存放基本类型的变量。 ②:堆内存:存放new创建的对象和数组。 (二)内存分配策略 ①静态存储分配:不允许 可变的数据结构,也不允许嵌套或者递归的结构出现。 ②栈式存储分配:只有在运行时才知道程序对数据区的需求。但是规定在运行中进入一个程序模块时,必须知道模块
阅读全文
摘要:(一)有哪些包装类型: ①Byte、Short、Integer、Long、Boolean、Float、Double、Charector 1 2 4 8 4 8 ②他们之间的比较 >用equals方法。
阅读全文
摘要:(一)java类加载顺序: ①首先加载类,执行Static变量初始化。 ②再执行对象的创建。 (二)常量是编译时 java常量放在内存中常量池中(JVM方法区中),编译时就加载了常量。
阅读全文
摘要:(一)区别: ①length:用于算出数组的长度。 ②length():用于找出字符串的长度。 ③size():用于找出泛型集合的元素个数。
阅读全文
摘要:(一)Scanner类像一个扫描器。【从内存中的一块缓冲区中扫描并读取数据】 (二)怎么用?常用方法: ①next()方法【针对Srting类型】。从输入读取到空白符。 ②nextInt()方法【针对int类型】 >扫描到空白符的时候,会把空白符前面的数据取走 >并遗留一个空白符“\r”。 ③nex
阅读全文
摘要:(一)什么是UML类图? ①:Unified Modeling Language 一种统一建模语言。 (二)UML类与类之间的关系(入门)
阅读全文
摘要:(一)String,StringBuffer,StringBuilder的区别 1.主要区别在于运行速度和线程安全这两方面。 ①:运行速度【执行速度】 >StringBuilder >StringBuffer >Sting String最慢的原因: String是字符串常量【不可更改】;而Strin
阅读全文
摘要:(三)创建Servlet的原理 1.servlet的生命周期? ①服务器启动时(web.xml配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf) 该Servlet
阅读全文
摘要:(一)什么是Servlet? ①:处理请求和发送响应的过程是由一种叫做 Servlet的程序来完成的。【Servlet为解决动态页面而衍生的】 B/S:浏览器/服务器。 (二)Tomcat和Servlet的关系 Tomcat是Web应用服务器,是一个Servlet/JSP容器。 ①:Tomcat将h
阅读全文
摘要:(一)简介 what: 用C++语言编写的非关系型数据库。 特点:高性能、易部署、易使用,存储数据十分方便。 (二)特性: ①模式自由 ②支持动态查询 ③支持完全索引,包含内部对象 ④支持复制和故障恢复 ⑤使用高效的二进制数据存储,包括大型对象 ⑥文件存储格式为BSON(一种JSON拓展) Mong
阅读全文
摘要:(一)什么是NoSQL数据库? ①非关系型的数据库。以键值对存储(Key-Value形式),结构不固定,可以减少一些时间和空间的开销。 (二)常见的NoSql数据库: Redis,MongoDB,CouchDB,Neo4j,HBase,Big Table等。 (三)Nosql数据库的一些优点,缺点:
阅读全文
摘要:(一)快速排序的 基本原理 时间复杂度【O(n log n)】 (二)java:代码 ,
阅读全文
摘要:(一)什么是MVCC? ①多版本并发控制【没有统一实现标准】【但是 大都实现了读操作 非阻塞;写操作 只锁定必要的行】 ②典型的实现方式:乐观并发控制(乐观锁);和 悲观并发控制(悲观锁)。 (二):什么是乐观锁,什么是悲观锁?what? ①:乐观锁:每次拿数据都不会上锁。【心态好】 ②:悲观锁:在
阅读全文
摘要:(一)MySQL服务器架构: 图示: ①最上层服务:连接处理、授权认证,安全等。 ②第二层架构【核心服务】:查询解析、分析、优化、缓存、所有内置函数。 ③第三层【存储引擎】:负责MySQL中数据的存储和提取。
阅读全文
摘要:(一)什么是读写锁? ①读锁:也叫共享锁 >互不阻塞。【多线程同步读】 ②写锁:也叫排他锁 >一个写锁会阻塞其他写锁。【单个线程写】 (二)锁粒度 锁策略:锁的开销和数据的安全性之间寻求平衡。 重要的两种锁策略: ①表锁:MySQL中最基本的锁策略,开销最小的策略。 ②行级锁:最大程度上支持并发处理
阅读全文
摘要:(一)HTTP协议【默认端口号:80;HTTPS的默认端口号是443】 1.what? 是一种超文本传输协议,是一个应用层协议。【构成=请求+响应】,HTTP是一个无状态的协议。 1.2在TCP/IP协议栈中的位置 HTTP协议【通常承载于TCP协议之上】,有时也承载于TLS或者SSL协议层之上,这
阅读全文
摘要:(一)冒泡排序原理:【以从小到大排序为列】设数组长度为N。 (二)Java代码实现: ①【最基础的】实现: ②:第一次优化:下面开始考虑优化,如果对于一个本身有序的序列,或则序列后面一大部分都是有序的序列,上面的算法就会浪费很多的时间开销,这里设置一个标志flag,如果这一趟发生了交换,则为true
阅读全文
摘要:(一)去重 1.1 去重复() ①:建一个新的集合temp ②:再建传入集合的迭代器,调用it.hasNext()。 ③:再用temp.contains("e")方法判断 >true it.remove;false temp.add("e");
阅读全文
摘要:(一)小结 ①二叉树:二叉树,每个结点只存储一个关键字,等于则命中,小于走左边,大于走右边; ②B-Tree:多路搜索树,每个结点存储【M/2-1,M-1]个关键字,非叶子结点存储指向关键字范围的子节点;所有关键字在整棵树中出现【且只出现一次】,非叶子结点可以命中。 ③B+Tree:在B-Tree基
阅读全文
摘要:(一)什么是跨域?what? ①跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制【防止恶意的网站窃取数据】。 同源策略: 浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性。 (白帽子讲web安全
阅读全文
摘要:(一)mysql中普遍使用B+Tree做索引,但在实现上又根据聚簇索引和非聚簇索引而不同。 ①聚簇索引:指主索引文件和数据文件为同一份文件,聚簇索引主要用在Innodb存储引擎中。在该索引实现方式中B+Tree的叶子节点上的data就是数据本身,key为主键,如果是一般索引的话,data便会指向对应
阅读全文
摘要:(一)什么是B-Tree、B+Tree、B*Tree?what? (1)B-Tree 1.0 是一种多路搜索树(并不是二叉的) ①任意非叶子节点最多有M个儿子;且M>2; ②根结点的儿子数为[2,M]; ③除根结点以外的非叶子结点的儿子数为[M/2, M]; ④每个结点存放至少M/2-1(取上整)和
阅读全文
摘要:(一)类加载到JVM内存中图解: (二)(JVM)工作机制: (1)装载:查找和导入Class(二进制)文件。 (2)链接:把类的二进制数据合并到JRE中; ①验证:检查载入Class文件数据的正确性。 ②准备:给类的静态变量(static)分配存储空间 。 ③解析:将符号引用--转成-->直接引用
阅读全文
摘要:(一)确定使用哪种类型集合? 1.0 看需求 >是否是键值对象形式: 是:Map 键是否需要排序 >是:TreeMap;否: HashMap 不知道也用HashMap。 否: Collection 元素是否唯一 > 是:Set >元素是否排序 >是:TreeSet ;否 HashSet 不知道就用H
阅读全文
摘要:(一)集合与数组 数组:(存基本数据类型)-->存对象的一种容器,长度固定,【不适合在对象数量未知的情况下使用】 集合:(存对象,对象类型可以不一样)-->长度可变,可在多数情况下使用。 (二)层次关系 1.0 如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口: 2.0 其
阅读全文
摘要:一、为什么要线程同步?why? 因为当我们有多个线程要同时访问一个变量或对象时,如果这些线程中既有读又有写操作时,就会导致变量值或对象的状态出现混乱,从而导致程序异常。举个例子,如果一个银行账户同时被两个线程操作,一个取100块,一个存钱100块。假设账户原本有0块,如果取钱线程和存钱线程同时发生,
阅读全文
摘要:(一)Java 中如何创建线程 1.Java提供了三种方法创建线程: ①实现Runnable接口的类; ②继承Thread本身; ③通过Callable和Future创建线程。 2.Thread 和Runnable的区别 ①:如果是一个类继承Thread >不适合资源共享。但是如果实现了Runnab
阅读全文
摘要:(一)什么是线程?waht?【”轻量级“进程,依赖进程,而存在。一个进程有一个或多个线程。eg:打开一个QQ,就是打开了一个进程,打开QQ聊天系统 >开启一个线程;打开视屏聊天 >又开启一个进程】 (二)一个线程完整的生命周期: ①新建状态:使用new关键字,和Thread类(或其子类)建立一个线程
阅读全文
摘要:(一)数据类型 1.分类①【基本数据类型】【传递的是数据值本身】 char(2 Character ) byte(1 Byte) short(2 Short) int(4 Integer) long(8 Long) float(4 Float) double(8 Double) boolean (B
阅读全文
摘要:(一)使用SDS(simple dynamic string)简单动态字符串。 好处: 1.可以杜绝缓冲区溢出。 >SDS API在修改SDS时会进行空间判断,【空间不足会自动扩充-->再执行修改操作】 2.C的 内存重分配 过程 >每次都要重分配 >耗时,影响性能。 ①执行增长字符串操作 >lik
阅读全文
摘要:1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 find . -name "*.xml" 递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world" 递归查找所有文件内
阅读全文
摘要:(一)SSH框架是Struts2 +Spring +Hibernate 而SSM框架指的是Spring-MVC+Spring +Mybatis 区别: 1. 主要区别就是Struts2和Spring-MVC的区别。 >【各种框架的对比】类中已经写了 2. Hibernate和Mybatis的区别 M
阅读全文
摘要:(一)具体的几个例子 1.需求1:对文本进行复制 明确1:源和目的 >源 (就是要读):InputStream Reader ; 目的 (就是要写):OutputSream Writer 明确2:是否纯文本 >是 >源:Reader;目的:Writer 明确3:具体设备。源:硬盘。目的:硬盘。 Fi
阅读全文
摘要:(一)怎么使用javaI/O 1.判断源和目的: ①判断源 >是什么(是字节,还是字符) >确定体系(是输入,还是输出) ②判断目的 >是什么(是字节还是字符) >确定体系(是输入,还是输出) 2.处理的数据是否纯文本: 是 >字符流。源Read,目的Write; 否-->字节流。源InputStr
阅读全文
摘要:(一)计算机怎么处理数据 输入输出的(图解) (二)Java I/O中的抽象类: ①处理字节流的抽象类【byte】:InputStream和OutputStream ②处理过滤流的抽象类:FilterOutputStream和FilterInputStream ③处理字符流的抽象类【String】:
阅读全文
摘要:(一)装饰器模式 ①是什么?what? 原有的不能满足现在的需求,对原有的进行增强。 eg:I/O中的 字符流 >BufferedReader是对Reader接口的其他子类的装饰器,封装了其他Reader接口实现类,提供更方便的方法调用。
阅读全文
摘要:(一)在浏览器输入网址 >到网页展现全部过程: 大致过程: 1.在浏览器输入一个网址:eg facebook 2.浏览器查找域名的IP地址(域名-->输入的网址) ①浏览器缓存 >浏览器会缓存DNS记录一段时间。 ②系统缓存 >如果浏览器缓存里面没有 >浏览器调用系统缓存查找网址对应的DNS信息(W
阅读全文
摘要:1.修饰数据 只能进行一次赋值操作,并在生命周期内不可改变他的值。 2.修饰方法参数 表示在整个方法中我们不改变参数的值。 3.修饰方法 表示方法不能被覆盖。明确告诉其他继承该类的程序员,不希望他们去覆盖这个方法。 4.修饰类 无法被继承
阅读全文
摘要:(一)包含了哪几个部分? ①栈内存:每个线程私有。java方法执行的内存模型。java栈中存放的是一个个栈帧,每一个帧对应一个被调用的方法。栈帧包裹局部变量表、操作数栈、指向运行时常量的引用、方法返回地址、附加信息。当线程执行一个方法时,就会随之创建一个对应的栈帧,并将建立的栈帧压栈。当方法执行完毕
阅读全文
浙公网安备 33010602011771号