java_知识梳理
文章平均质量分 56
知识点梳理
二师弟&
这个作者很懒,什么都没留下…
展开
-
Mybatis 缓存
什么是缓存?存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库文件)查询,从缓存中查询,从而提高效率,解决看高并发系统的性能问题为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率什么样的数据能够使用缓存?经常查询且不经常改变的数据缓存失效情况增删改操作语句会刷新缓存LRU 算法(最近最少使用)进行清除不需要的缓存查询不同的session对象查询不同的Mapper.xml手动清理缓存一级缓存一级缓原创 2021-01-02 12:51:01 · 101 阅读 · 0 评论 -
HashMap源码分析与总结
HashMap###1. 属性介绍 //哈希表数组的默认长度 16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //哈希表数组的最大长度,2的30次方的原因是,int 最大值是 2的31次方减 1,所以只能是 30 次方 static final int MAXIMUM_CAPACITY = 1 << 30; //默认的加载因子,加载因子指的是 hashmap 中数据原创 2020-08-12 11:34:37 · 191 阅读 · 0 评论 -
25-过滤器、监听器
一,过滤器1.1 概念生活中的过滤器:净水器web应用中的过滤器:当访问服务器的某些资源时,过滤器可以把请求拦截下来,完成一些特殊的功能过滤器的作用:登录验证、统一处理编码、敏感字的过滤web三大组件之一:servlet、filter、listener1.2 使用步骤定义类实现类Filter接口重写方法配置要过滤的资源路径 <filter> <display-name>LoginFilter</display-name>原创 2020-08-19 21:09:06 · 99 阅读 · 0 评论 -
24-MVC开发模式,三层架构
一,MVC开发模式1.1 历史Servlet 只能通过 response 来输出标签jsp 简化 Servlet 的开发,过度使用 jsp 会导致,前后端代码的耦合度过高,导致可读性差,不易于维护,难以协同开发MVC :M:model ,javabean(私有化的属性、无参的构造函数、setters and getters)V:view,视图,jspC:controller,控制器,Servlet1.2 好处和弊端好处:耦合度低,便于维护提高了复用性弊端:使项原创 2020-08-19 21:10:23 · 1296 阅读 · 0 评论 -
23-jsp
一,Jsp1.1 概念jsp:java server pages,java 服务器页面jsp是一种特殊的页面,可以在html中嵌入java代码的页面,以 .jsp 结尾简化 java 代码的书写jsp的本质是一个Servlet,在第一次访问jsp页面时,这个jsp中的java代码会经历编译和运行jsp被翻译成的java代码继承了HttpJspBase,HttpJspBase继承HttpServlet1.2 jsp脚本在jsp中定义java代码的格式<% java代码 %&g原创 2020-08-19 21:08:11 · 161 阅读 · 0 评论 -
22-JDBC
一,JDBC基础1.1 概念概念:Java Database Connectiviry,Java 数据库连接,JDBC 让我们可以通过 Java 代码访问数据JDBC的本质:它是官方推出的一套专门用于操作关系型数据库的规则。各个不同的数据库厂商都要去实现这个接口,并提供相应的 jar 包。我们就可以使用这个 jar 包针对不同的关系型数据库进行数据库的操作。1.2 使用步骤导入 jar 包 mysql-connector-java-5.1.37-bin.jar导入步骤:在项目的根原创 2020-08-10 12:28:07 · 143 阅读 · 0 评论 -
21-Java1.8新特性
一,函数式编程思想1.1 概念在数学中,函数就是一套计算方案。它重点放在 “ 拿什么东西就能做什么事情 ”。对于面向对象的编程思想而言,我们必须明确是哪一个对象来做这件事情的,而函数式编程思想的重点是 “ 做什么,不是以什么形式来做 。”1.2 函数式编程思想和面向对象思想比较案例new Thread(new Runnable(){ @Override public void run() { for(int i = 1;i <= 100; i++){原创 2020-07-29 12:03:47 · 246 阅读 · 0 评论 -
20-反射
一,类的加载当程序要使用某一个类时,如果该类还没有进入到内存,那么系统会通过加载,连接,初始化加载:将类的class文件读取到内存中,并为它创建一个 Class 对象,任何类被加载后都会创建唯一的一个 Class 对象连接:校验类的内部结构是否正确;为静态成员分配内存。初始化:创建对象二,类加载器类加载器负责将 .class 文件加载到内存中,并为它生成对应的 Class 对象三,反射概念:Java的反射机制是指,程序在运行状态下,对于任何一个类,都能知道这个类中的所有属性和方原创 2020-07-25 22:05:07 · 110 阅读 · 0 评论 -
19-网络编程
一,网络编程的三要素1.1 IP地址IP(Internet Protocol Address)地址是物理地址,用于标识网络中的计算机设备查看本机IP地址:cmd->ipconfig查看网络是否连通:cmd->ping 域名/IP地址IPv4:是一个32的二进制数,表示形式:xxx.xxx.xxx.xxx,能够表示42亿多个IP地址IPv6:表示形式:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,每16个字节为一组,分成8组,每一个x可以表示0~f原创 2020-07-25 22:01:05 · 110 阅读 · 0 评论 -
18-IO流
一,IO流的概述1.1 什么是IO流我们把数据的传输,看成是一种数据的流动,按照指定的流向进行输出的输入和输出。以内存为基准。1.2 IO流的分类根据数据的流向划分:输入流 和 输出流 输入流:把数据从其他设备上读取到内存中 输出流:把数据从内存中写到其他设备上根据数据的类型划分:字节流 和 字符流 字节流:以字节为单位,任何文件都可以使用字节流进行读写 字符流:以字符为单位,一般只能对文本进行读写1.3 IO流的顶层父类字节输入流:InputStream字节输出流原创 2020-07-22 13:31:44 · 268 阅读 · 0 评论 -
17-文件
一,文件1.1 文件的概述概念:File 是文件或者文件夹的抽象表示形式1.2 构造函数new File(String pathname)new File(String parent, String child)new File(File parent, String child)1.3 常用方法获取相关getPath():获取路径,返回结果与创建时的路径表示形式相同getAbsolutePath():获取绝对路径,无论创建时使用的是相对路径还是绝对路径,返回的都是绝原创 2020-07-22 13:31:11 · 115 阅读 · 0 评论 -
16-多线程
一,多线程的概念进程:正在运行的程序线程:是进程中的一个执行单元(一条执行路径),一个进程中至少包含一个线程。如果一个进程中有多个线程,这样的程序就称为多线程程序。线程的调度:分时调度:所有线程轮流使用CPU,每个线程平均占用CPU的时间抢占式调度:优先让优先级高的线程使用CPU,如果线程的优先级相同,那么随机选择一个线程为其分配CPU的资源(随机性),Java 多线程的执行方式就是抢占式的。注:Java 程序在没有开辟新线程的情况下也会有两个线程:主函数所在的主线程、垃圾回收线程原创 2020-07-22 13:30:38 · 227 阅读 · 0 评论 -
15-集合框架
一,集合的概述概念:集合是一种用于存储数据的容器特点:集合的长度是可变的集合中存储的数据类型是任意的集合不能存储基本数据类型,要存储对应的包装类同一个集合中可以存储不同类型的数据在定义集合时,要明确集合的泛型,泛型:集合中可以存储的指定类型二,集合的体系结构Collection接口是整个集合体系中的根接口 它定义了集合的共性方法add()addAll()remove()removeAll()isEmpty()size()clear()contains()c原创 2020-07-22 13:30:08 · 150 阅读 · 0 评论 -
14-常用类
一,Scanner概念:Scanner 是一个专门用于接收键盘输入的类,它在 java.util 包中的构造函数:new Scanner(System.in)常用功能:nextInt()nextInt(int radix):举例:nextInt(2),表示系统会将输入的内容视为二进制数,返回一个对应的十进制数nextDouble()next() 和 String nextLine():都是用于接收字符串,next()方法会将空白字符视为输入结束注:如果输入类型与原创 2020-07-22 13:28:49 · 165 阅读 · 0 评论 -
13-内部类、代码块
一,内部类1.1 概念概念:将一个类定义在另一个类的内部例如:人体和器官的关系,汽车和发动机的关系注:内部类在编译后也会生成对应的字节码文件成员内部类和静态内部类:外部类名$内部类名.class局部内部类:外部类名$序号内部类名.class匿名内部类:Test$序号.classpublic class Test{ public static void main(String[] args){ new T(){ public void f(){} }; }}原创 2020-07-22 13:27:59 · 142 阅读 · 0 评论 -
12-多态
一,多态的概念面向对象的三大特性:封装、继承、多态多态的前提是继承关系或者实现关系生活中的多态:不同人物角色在不同的场景下具有不同的身份程序中的多态:“一个子类就是一个父类”,父类的引用变量指向子类对象,从而形成多态。写法:// 例如:Stdeunt继承了Humanclass Student extends Human{}Human h = new Student();// 父类 变量名 = new 子类();interface Net{}class Phone imple原创 2020-07-22 13:27:29 · 154 阅读 · 0 评论 -
11-接口
一,接口的概念概念:接口就是多个类的公共规范,接口是一种引用数据类型,它的本质是一个类,接口是一个特殊的类接口的作用:对外提供了标准、规范扩展了功能二,接口的定义关键字:interface格式:interface 接口名{ }编写接口的文件是 .java 文件接口在编译后生成的仍然是 .class 的二进制字节码文件2.1 接口中成员变量的定义接口中的成员变量都是静态常量,默认被 public static final 修饰2.2 接口中成员方法的定义接口原创 2020-07-22 13:26:52 · 145 阅读 · 0 评论 -
10-抽象类
一,抽象方法和抽象类的概念概念:当子类的共性方法抽取到父类中,而父类无法描述每个子类的具体行为时,就应该将这个方法定义成抽象方法。关键字:abstract抽象方法的定义格式:范围修饰符 abstract 返回类型 方法名(参数);抽象方法必须在抽象类中,所以必须将抽象方法所在的类定义成抽象类。二,抽象类和抽象方法的使用抽象类一定是一个父类,因为抽象类是向上抽象形成的。那么子类中也就存在了从父类中继承下来的抽象方法。此时子类要么也是一个抽象类,要么重写父类中的所有抽象方法。(子类如原创 2020-07-22 13:26:21 · 322 阅读 · 0 评论 -
09-包和导入、范围修饰符、静态
一,包和导入1.1 包包:本质就是文件夹问:为什么要创建不同的包?答:因为一个项目中会涉及到很多功能模块、会涉及到很多相关技术,创建不同的包,就是在创建不同的文件夹,当我们将相关的类放入到对应的文件夹(包)之后,类会更加便于管理。关键字:package注:每一类都应该在一个包中,并且这个类的第一行必须明确这个类的包路径(也就是明确这个类是属于哪个包的)package com.qf.test;public class Test{ }一个类的完整路径(类全名、全类名)原创 2020-07-22 13:25:54 · 106 阅读 · 0 评论 -
08-继承
一,继承的概念生活中的继承:子女拥有父母的东西代码中继承:指的是类与类之间产生了关系,多个类有共性内容后向上抽取父类:超类、基类 父类的范围往往比较大,但是属性和方法一般都比较少子类:派生类、衍生类 子类的范围往往更精细,属性、方法一般都比较多所有类都直接或者间接的继承了 Object 类注:子类的命名一般使用父类的名字作为后缀二,继承的好处子类可以直接访问父类中非私有的成员,提高了代码复用性为多态提供了前提三,子类父类的继承关系关键字:extends//原创 2020-07-22 13:25:06 · 106 阅读 · 0 评论 -
07-封装
一,封装的概念生活中的封装:打包盒、机箱代码中封装:方法、包、类概念:隐藏内部的实现细节二,封装的好处隐藏了实现细节提高了代码的安全性提高了代码的复用性三,封装的必要性问题:属性可以通过对象随意调用对属性值没有合理性的判断解决:可以通过对属性进行私有化的封装来限制属性的调用对属性值进行合理性的判断四,如何对属性进行封装4.1 对属性进行私有化实现方式:使用关键字 private 修饰属性private:private 关键字是范围(权限)修饰符中原创 2020-07-22 13:24:19 · 98 阅读 · 0 评论 -
06-面向对象
一,面向对象的概念面向过程:C语言面向对象:Java、C++、Python面向过程和面向对象都是编程思想面向过程和面向对象的区别:面向过程:重点放在程序的功能是如何执行的,身份是执行者面向对象:重点放在程序的功能可以找谁来完成,身份是指挥者,面向对象的思想更加贴近实际生活二,类和对象类:数据类型,一类事物的集合基本信息行为对象:根据类创建出来一个实体(实例),这个对象具备了这个类中所有的基本信息和行为基本信息行为例如:类: 护士类 1. 基本信原创 2020-07-22 13:23:42 · 108 阅读 · 0 评论 -
05-方法
一,方法的概念概念:方法就是一个功能所要执行语句的集合(代码块)好处:提高代码的复用性隐藏了功能的实现细节二,方法的组成public static void main (String[] args) { ... }范围(权限)修饰符 特殊的修饰符 返回类型 方法名 参数列表 方法体三,方法的调用调用当前类中的方法:方法名(参数);调用其他类原创 2020-07-22 13:23:16 · 136 阅读 · 0 评论 -
04-数组
一,概念和特点概念:用于存储数据的容器特点:只能存储同一种数据类型(定义时如果明确了数组的数据类型,那么该数组只能存储这个类型的元素)数组的长度固定(定义时数组的长度就应该被明确,在之后的操作中该数组的长度不能发生变化)二,数组的定义和创建格式:数据类型[] 数组名 = new 数据类型[数组的长度];数据类型[] 数组名 = new 数据类型[]{值1,值2,值3,值4...};数据类型[] 数组名 = {值1,值2,值3,值4...};三,数组元素的原创 2020-07-22 13:19:49 · 155 阅读 · 0 评论 -
03-流程控制
一,分支结构1.1 单 if 结构格式:if(条件表达式){ 语句}逻辑:判断条件表达式的结果,结果为true,执行代码块中的语句;反之,不执行。1.2 标准的 if-else 结构格式:if(条件表达式){ 语句1}else{ 语句2}逻辑:判断条件表达式,结果为true,执行语句1;反之,执行语句2。1.3 多条件的 if-else 结构格式:if(条件表达式1){ 语句1}else if(条件表达式2){ 语句2}else if(条件表达式3){原创 2020-07-22 13:19:03 · 95 阅读 · 0 评论 -
02-Java语法
一,变量概念:计算机内存中的一块存储空间,是存储数据的基本单元1.1 变量的定义方式一:// 声明并定义了指定类型的变量(先定义后赋值)数据类型 变量名;变量名 = 值;例如:int age; 声明定义了一个int类型的变量ageage = 25;为age变量赋值为25方式二:// 声明并定义了指定类型的变量同时进行赋值(定义的同时赋值)数据类型 变量名 = 值;例如:double height = 180; 声明定义了一个double类型的变量height并赋值为180原创 2020-07-22 13:18:32 · 110 阅读 · 0 评论 -
01-Java基础
一,概述1.1 什么是程序、什么是程序开发程序是为了解决生活中的实际问题使用计算机语言所编写的一系列的指令的集合。程序开发:编写软件1.2 Java的历史1995年由SUN开发的面向对象的程序设计语言。JDK1.5是2004年发布,Java被Oracle收购 JavaME、JavaSE(标准版)、JavaEE(企业版)JDK1.8是2014年发布1.3 Java语言的特点面向对象的编程思想跨平台性:跨操作系统,一次编写、到处运行二,环境的搭建JDK:Java Dev原创 2020-07-22 13:16:38 · 135 阅读 · 0 评论