
JAVA
Not丶Perfect
一个即将成为技术大牛的技术小白
展开
-
Mysql干货
索引相关关于MySQL的索引,曾经进行过一次总结,文章链接在这里 Mysql索引原理及其优化.1. 什么是索引?索引是一种数据结构,可以帮助我们快速的进行数据的查找.2. 索引是个什么样的数据结构呢?索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引.3. Hash索引和B...原创 2019-09-13 20:39:50 · 407 阅读 · 0 评论 -
动态代理
动态代理基于接口的动态代理基于子类的动态代理原创 2019-07-31 22:58:35 · 129 阅读 · 0 评论 -
JDBC
1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解JDBC:1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 * JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代...原创 2019-07-11 21:32:16 · 97 阅读 · 0 评论 -
Request and Response
Request and ResponseRequest原理:Request:1. request对象和response对象的原理1. request和response对象是由服务器创建的。我们来使用它们2. request对象是来获取请求消息,response对象是来设置响应消息2. request对象继承体系结构: ServletRequest – 接口| 继承Http...原创 2019-07-14 22:24:54 · 224 阅读 · 0 评论 -
数据库中的约束和数据库设计的范式
数据库中的约束和数据库设计的范式概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性。分类:主键约束:primary key非空约束:not null唯一约束:unique外键约束:foreign key非空约束:not null,值不能为null创建表时添加约束CREATE TABLE stu(id INT,NAME VARCHAR(20) NO...原创 2019-07-10 15:13:19 · 241 阅读 · 0 评论 -
反射
反射反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码反射:将类的各个组成部分封装为其他对象,这就是反射机制。定义:Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。好处:1. 可以在程序运行过程...原创 2019-06-29 18:10:45 · 120 阅读 · 0 评论 -
方法引用
方法引用案例分析:public class Demo01Printable { //定义一个方法,参数传递Printable接口,对字符串进行打印 public static void printString(Printable p){ p.print("HelloWorld"); } public static void main(Stri...原创 2019-06-29 10:22:04 · 200 阅读 · 0 评论 -
Stream流
Stream流说到Stream便容易想到I/O Stream,而实际上,谁规定“流”就一定是“IO流”呢?在Java 8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。这里的 filter 、 map 、 skip 都是在对函数模型进行操作,集合元素并没有真正被处理。只有当终结方法 count执行的时候,整个模型才会按照指定策...原创 2019-06-29 09:06:49 · 132 阅读 · 0 评论 -
DQL:查询语句
DQL:查询语句排序查询* 语法:order by 子句* order by 排序字段1 排序方式1 , 排序字段2 排序方式2…排序方式:* ASC:升序,默认的。* DESC:降序。注意:* 如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。聚合函数:将一列数据作为一个整体,进行纵向的计算。count:计算个数一般选择非空的列:主键co...原创 2019-07-09 21:37:17 · 177 阅读 · 0 评论 -
函数式接口
函数式接口概念函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利地进行推导。函数式接口的格式只要确保接口中有且仅有一个抽象方法即可:修饰符 interface 接口名...原创 2019-06-28 18:49:59 · 476 阅读 · 0 评论 -
Servlet
Servlet概念:运行在服务器端的小程序* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。* 将来我们自定义一个类,实现Servlet接口,复写方法。快速入门:创建JavaEE项目定义一个类,实现Servlet接口public class ServletDemo1 implements Servlet实现接口中的抽象...原创 2019-07-13 10:47:51 · 166 阅读 · 0 评论 -
Tomcat
Tomcat配置:* 部署项目的方式:直接将项目放到webapps目录下即可。* /hello:项目的访问路径–>虚拟目录* 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。* war包会自动解压缩配置conf/server.xml文件在标签体中配置* docBase:项目存放的路径* path:虚拟目录在conf\Catalina...原创 2019-07-12 20:42:17 · 128 阅读 · 0 评论 -
XML和XML的解析
XML和XML的解析概念:Extensible Markup Language 可扩展标记语言* 可扩展:标签都是自定义的。 功能* 存储数据1. 配置文件2. 在网络中传输* xml与html的区别1. xml标签都是自定义的,html标签是预定义。2. xml的语法严格,html语法松散3. xml是存储数据的,html是展示数据w3c:万维网联盟语...原创 2019-07-12 17:47:35 · 294 阅读 · 0 评论 -
Ajax
概念: ASynchronous JavaScript And XML 异步的JavaScript 和 XML异步和同步:客户端和服务器端相互通信的基础上客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1...原创 2019-07-27 15:38:48 · 131 阅读 · 0 评论 -
JSON
概念: JavaScript Object Notation JavaScript对象表示法Person p = new Person();p.setName(“张三”);p.setAge(23);p.setGender(“男”);var p = {“name”:“张三”,“age”:23,“gender”:“男”};json现在多用于存储和交换文本信息的语法进行数据的传输...原创 2019-07-27 15:41:12 · 146 阅读 · 0 评论 -
查询条件on、where、having区别
ON 、WHERE、HAVING都是查询条件,但他们的使用及其不同。下面我们来分析三者之间的区别。1.ON 和WHERE所有的查询都回产生一个中间临时报表,查询结果就是从返回临时报表中得到。ON和WHERE后面所跟限制条件的区别,主要与限制条件起作用的时机有关,ON根据限制条件对数据库记录进行过滤,然后生产临时表;而WHERE是在临时表生产之后,根据限制条件从临时表中筛选结果。因为以上原因,...转载 2019-09-03 20:54:38 · 288 阅读 · 0 评论 -
Java设计模式六大原则的理解
https://www.jianshu.com/p/068b2d0ce4e6单一职责概念:对功能进行分类,代码进行解耦栗子:一个网络请求框架大致分为:请求类,缓存类,配置类;不能把这三个功能混合在一起,必须分成三个类分别去实现不同的功能里氏替换概念:在继承类时,除了扩展一些新的功能之外,尽量不要删除或者修改对父类方法的引用,也尽量不要重载父类的方法栗子:每个类都是Object的子类,O...转载 2019-09-02 21:12:02 · 211 阅读 · 0 评论 -
Priority Queue
1.Priority Queue优先队列?PriorityQueue是一个基于优先级堆的无界队列,它的元素是按照自然顺序(natural order)排序的。在创建的时候,我们可以给它提供一个负责给元素排序的比较器。PriorityQueue不允许null值,因为他们没有自然顺序,或者说他们没有任何的相关联的比较器。最后,PriorityQueue不是线程安全的,入队和出队的时间复杂度是O(lo...转载 2019-08-26 21:17:06 · 275 阅读 · 0 评论 -
微服务
SpringBoot设计初衷为Spring开发者提供一种,更快速、体验更好的Spring应用开发方式。开箱即用,同时也可快速扩展,嵌入式的Tomcat。绝对没有冗余代码,无需XML配置。1.2 核心功能核心能力:Spring容器、日志、自动配置AutoCongfiguration、Startersweb应用的能力:MVC、嵌入式容器数据访问(持久化):关系型数据库、非关系型数据库...原创 2019-08-26 20:57:19 · 312 阅读 · 0 评论 -
SSM分别用了什么设计模式
SSM分别用了什么设计模式Spring的核心是Spring IoC,而Spring IoC的基本原理就是反射机制。运用反射机制的目的就是要极大程度地增强java的可配置性和可扩展性。主要的设计模式一.动态代理模式1.动态代理模式的意义在于生成一个代理对象,来代理真实对象,从而控制真实对象的访问。责任链模式1.责任链模式就是当动态代理模式的拦截器有多个时的设计模式。2...原创 2019-08-26 20:56:39 · 5915 阅读 · 0 评论 -
B树、B+树、红黑树
https://blog.youkuaiyun.com/z_ryan/article/details/79685072引言我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗? 答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,...原创 2019-08-26 20:56:14 · 170 阅读 · 0 评论 -
排序算法
排序算法排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)不稳定O(1)二叉树排序O(n2)O(n*log2n)不稳定O(n)插入排序O(n2)O(n2)稳定O(1)...原创 2019-08-26 20:55:40 · 228 阅读 · 0 评论 -
计算机网络
计算机网络OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下:物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器)数据链路:PPP、FR...原创 2019-08-20 10:59:34 · 292 阅读 · 0 评论 -
HashMap、Hashtable、ArrayList、LinkedList
Java Collections框架是什么Collections与Map的关系?Java中的HashMap的工作原理是什么?Java中的HashMap是以键值对(key-value)的形式存储元素的。HashMap需要一个hash函数,它使用hashCode()和equals()方法来向集合/从集合添加和检索元素。当调用put()方法的时候,HashMap会计算key的hash值,然后把键值...原创 2019-08-20 10:59:25 · 265 阅读 · 0 评论 -
线程、多线程、死锁、线程池
线程什么是线程线程是指程序在执行过程中,能够执行程序代码的一个执行单元。线程和进程的区别是什么进程是指一段正在执行的程序。线程又叫做轻量级进程。一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段、数据段和堆空间)及一些进程级的资源,但是各个线程拥有自己的栈空间。每个进程中通常都有多个线程互不影响的并发执行。线程与进程的区别归纳:a. 地址空间和其它资源:进程间相互独立...原创 2019-08-06 22:43:37 · 254 阅读 · 0 评论 -
缓冲流
缓冲流缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类:字节缓冲流: BufferedInputStream , BufferedOutputStream字符缓冲流: BufferedReader , BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提...原创 2019-06-23 21:55:41 · 204 阅读 · 0 评论 -
属性集
属性集java.util.Properties集合 extends Hashtable<k,v> implements Map<k,v>Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。Properties集合是一个唯一和IO流相结合的集合可以使用Properties集合中的方法store,把集合中的临时数据,持久化...原创 2019-06-23 21:39:05 · 1299 阅读 · 0 评论 -
数据结构
数据结构栈队列数组链表链表:linked list,由一系列结点node(链表中每一个元素称为结点)组成,结点可以在运行时i动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。我们常说的链表结构有单向链表与双向链表,那么这里给大家介绍的是单向链表。查询慢,增加删快。红黑树我们要说的是二叉树的一种比较有意思的叫做红黑...原创 2019-06-18 15:00:20 · 357 阅读 · 0 评论 -
异常
异常异常的概念异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。原创 2019-06-19 15:14:02 · 119 阅读 · 0 评论 -
Map
MapCollection集合与Map集合的区别Collection 中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。Collection 中的集合称为单列集合, Map 中的集合称为双列集合。需要注意的是, Map 中的集合不能包含重复的键,值可...原创 2019-06-18 22:51:00 · 316 阅读 · 0 评论 -
接口、多态
接口、多态接口接口就是多个类的公共规范。接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。如何定义一个接口的格式:public interface 接口名称 {// 接口内容}备注:换成了关键字interface之后,编译生成的字节码文件仍然是:.java --> .class。如果是Java 7,那么接口中可以包含的内容有:常量抽象方法如果是Java 8...原创 2019-06-13 22:57:16 · 170 阅读 · 0 评论 -
继承、super、this、抽象类
一、继承继承:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。好处提高代码的复用性。类与类之间产生了关系,是多态的前提...原创 2019-06-13 15:02:21 · 170 阅读 · 0 评论 -
static关键字
static关键字static关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属于某个对象的。也就是说,既然属于类,就可以不靠创建对象来调用了。静态static关键字概述:静态方法:一旦使用static修饰成员方法,那么这就成为了静态方法。静态方法不属于对象,而是属于类的。如果没有static关键字,那么必须首先创建对象...原创 2019-06-12 21:58:12 · 167 阅读 · 0 评论 -
String类
java.lang.String类代表字符串。API当中说:Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。其实就是说:程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也照样是。)字符串的特点:字符串的内容永不可变。【重点】正是因为字符串不可改变,所以字符串是可以共享使用的。字符串效果上相当于是char[]字符数组,但是底层原理是b...原创 2019-06-12 17:53:59 · 106 阅读 · 0 评论 -
JAVA中分为基本数据类型和引用数据类型区别
#JAVA中分为基本数据类型和引用数据类型区别一、基本数据类型:byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0short:短整型,在内存中占16位,即2个字节,取值范围-32768~32767,默认值0int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0lon...原创 2019-06-12 17:06:02 · 597 阅读 · 0 评论 -
Javase:面试题集
什么是ArrayList类java.util.ArrayList 是大小可变的数组的实现,存储在内的数据称为元素。此类提供一些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长。数组的长度不可以发生改变。但是ArrayList集合的长度是可以随意变化的。对于ArrayList来说,有一个尖括号代表泛型。泛型:也就是装在集合当中的所有元素,全都是...原创 2019-06-12 16:29:09 · 125 阅读 · 0 评论 -
Mybatis中resultMap的用法
Mybatis中resultMap的用法resultMap是Mybatis最强大的元素,它可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中。resultMap包含的元素:<!--column不做限制,可以为任意表的字段,而property须为type 定义的pojo属性--><resultMap id="唯一的标识" type="映射的pojo对象"&...原创 2019-03-16 21:23:34 · 450 阅读 · 1 评论 -
Eclipse生成JUnit测试类
Eclipse生成JUnit测试类右键要测试的类–>选择New–>JUnit Test Case–>改名字–>Next–>选择要测试的方法–>Finish原创 2019-01-16 17:21:56 · 994 阅读 · 0 评论 -
eclipse oxgen的tomcat三只小猫安装
eclipse oxgen的tomcat三只小猫安装eclipse 的oxgen版本安装很复杂,百度尝试了很多次没有成功。然后发现了这个方法之后成功了,简单快捷:选择help-&amp;amp;gt;eclipse marketplace-&amp;amp;gt;find中输入tomcat,然后在搜索结果中找到tomcatplugin,然后一路下一步,然后自动重启软件,就成功了。...原创 2019-01-14 11:31:48 · 392 阅读 · 0 评论 -
tomcat配置
tomcat配置1、tomcat安装路径不能使用中文2、配置JAVA_HOME或者JRE_HOME的环境变量:配置为JDK的路径:C:\Program Files\Java\jdk1.8.0_663、访问:http://localhost:80804、修改conf/servler.xml的编码为UTF-85、(可选)修改端口号。修改conf/servler.xml中的port6、让...原创 2019-01-14 10:05:06 · 94 阅读 · 0 评论