昌网站建设,网站建设厦门,简单建设一个网站的过程,腾讯新闻发布平台一.常见名词注解
1.mysql索引#xff0c;索引数据结构#xff0c;hash#xff0c;二叉树#xff0c;B树#xff0c;B树#xff0c;红黑树#xff0c;
mysql索引#xff1a;帮助mysql高效获取数据的数据结构#xff0c;通俗来说#xff0c;数据库索引就好比一本书的…一.常见名词注解
1.mysql索引索引数据结构hash二叉树B树B树红黑树
mysql索引帮助mysql高效获取数据的数据结构通俗来说数据库索引就好比一本书的目录可以加快数据库查询的速度。
索引数据结构hashB二叉树。
hash以键值对存储数据只要输入key就可以找到相应的Value
二叉树每个节点最多有两个子树的树结构
B树每个节点都是按递增排序存放左小右大一个子结点可以有多个数据
B树改良版的B树每个就叶子节点连成一条链表
红黑树是一种二叉搜索树红黑树确保没有一条路径是其他路径的两倍因而接近平衡。
2.进程和线程
进程程序运行的资源分配的基本单元一个程序有多个进程一个进程有多个线程进程在执行过程中有独立的内存单元
线程多个线程共享内存资源线程是进程的一个实体是cpu调度的基本单元。
3.堆栈
堆是一种数据接口自己控制一段储存空间叫做堆空间实在程序运行时申请的动态内存
栈又称为堆栈是操作系统在创建某个进程时或线程为了这个线程创建的储存区域在编译时候可以指定需要的栈大小它是一种运算受限的线性表先进后出。
4.线程安全synchronizedlock锁
synchronized关键字同步锁可以修饰静态方法普通方法代码块修饰静态方法时锁住的是类对象修饰普通方法是锁住的是实例对象当一个线程获取锁是其他线程想要访问只能等当前线程释放锁
lock锁接口只能用在代码里synchronized在代码执行完或出现异常时会自动释放锁Locl不会自动释放需要在finally中释放。 synchronized会导致线程拿不到锁一直等待Lock可以设置获取锁失败的超时时间。 synchronized无法获知是否获取锁成功Lock则可以通过tryLock判断是否加锁成功
5.redis五种数据结构
string底层是一个简单的动态字符串。
list存储先行有序且可重复的元素底层是双向链表/压缩列表
set存储不可重复的元素底层是hash和整数数组
zset:存储有序不可重复的元素为每个元素添加一个score属性作为排序依据底层是ziplist和跳表
hash:存储的是键值对底层是ziplist和hash
6.集合数组链表队列
集合用于储存无序元素值不能重复
数组数组是内存开辟的一段连续空间长度固定元素固定
链表是一种线性表在一个节点上有一个指针指向下一个节点
队列先进先出。
7.ArrayList和LinkedList
ArrayList:底层是数组实现数组是一组连续的内存单元读取快插入删除慢
LinkedList:底层基于双向链表读取慢插入删除快链表的每个节点都保存了数据值和前后节点的指针占内存。
8.ConcurrentHashMap,HashMap,HashTable
ConcurrentHashMap:底层数据结构也是数组链表红黑树采用锁定头部结点的方式降低锁粒度在初始化数组时未加锁但当插入数据就会给槽的头节点上锁支持多线程
HashMap:数组链表红黑树集合put时计算key键的哈希值放入元素若有key值相同的哈希值是就会用链表进行存放链表长度达到8是就会开辟红黑树进行存放以此提高查询效率。非线程安全。
HashTable:性能不如hsahmap但是线程安全不允许存入null内部使用大量的synchronized关键字所以无论是key还是value为null都会引发异常。
9.String、StringBuffer、Stringbuilder
String:不可变字符序列效率低每创建一个string对象就会分配一个空间
StringBuffer:可变字符序列效率高增删线程安全只分配一个空间改变值而不改变地址。
Stringbulider:可变字符序列效率最高线程不安全只分配一个空间改变值而不改变地址。
10.和equals(),hashCode()
:比较基本数据类型时比较的是两个数值是否相等 比较引用类型是比较的是对象的内存地址是否相等。equals():equals() 没有重写时Object默认以来实现即比较两个对象的内存地址是否相等 重写以后按照对象的内容进行比较
hashCode():主要用途是获取哈希码
两个对象相等他们必须有相同的哈希码有相同的哈希码哈希码相同的话他们不一定相等
11:static,final
static:修饰符static修饰变量属于静态变量也叫类变量直属于类对象而不是实例可以通过类名访问它一般会在类加载过程中被初始化。生命周期贯穿整个程序。存储在方法区中。 static修饰方法即静态方法一个类中的静态方法不能访问该类的实例变量只能访问静态变量。同时还存在一个静态初始化块他在类加载过程中被调用用于对该类中的静态变量进行操作。 static修饰类即静态内部类他只能以内部类的形式存在可通过外部类的类名调用。它是他也只能访问到外部的的静态成员。
final:关键字final可以修饰类方法变量。 final修饰类该类不可被继承。 final修饰方法该方法不能被重写。 final修饰变量如果是基本变量则值不能再改变如果是引用变量则引用地址不能改变但值可以改变。可以修饰成员变量修饰后可重写不能重新赋值。
12.SpringBoot注解springBootApplicationEnableAutoConfigurationServiceresponsebody、requestMapping、Bean、Autowired
springBootApplicationspringboot的核心注解用在springboot的主类上用来开启springboot的各项能力
EnableAutoConfiguration允许springboot自动配置注解开启后springboot就根据当前类路径包或者类来配置springbean
Service用来修饰Service层的组件
responsebody表示该方法返回的结果直接写在HTTPresponsebody中跳转页面直接返回json数据
requestMapping用来处理请求地址映射提供路由信息负责URL到Controller中的具体函数映射可用在类或方法上用在类上表示类中的所有相应请求的方法都是以该地址为父路径。
Bean相当于XML中的放在方法的上面而不是类意思是产生一个beam交给spring管理
Autowiredbytype方法把配置好的bean拿来用完成属性方法的组装它可以对类对象变量方法及构造函数进行标注完成自动装配的工作
13.Autowired和Resource
AutowiredSpring提供的注解Autowired只能按照类型装配默认情况下必须按照依赖对象存在如果允许null值可以设置他的required属性为false如果想使用名称装配可以结合Qualifier注解使用
ResourceJDK提供的注解默认按照名称装配名称可以通过name属性进行指定如过没有指定name属性当注解写在字段上是默认取字段名进行名称查找。
14.java基本数据类型和引用数据类型
基本数据类型byte(8), short(16), int(32), long(64), float(32), double(64), char(16), boolean
这基本数据类型在声明之后就会立刻在栈上被分配内存空间
引用数据类型:类接口数组String等这些变量在声明时不会被分配内存空间只是存储了一个内存地址
15.mysql常用命令
获取当前日期和时间now()
获取当前日期curdate()
获取当前时间curtime()
返回date年份time小时分钟 year(date),hour(time),minute(time)
返回两个时间相隔天数datediffdate1date2
返回指定多少i行limit 数字
平均数AVG
返回字段行数COUNT
16.重载和重写
重载重载发生在用一个类中方法名相同参数列表返回类型权限修饰符不同。
重写重写发生在子类中方法名相同参数列表返回类型相同权限修饰符大于父类方法声明范围小于父类方法。
17.接口抽象类
接口不能被实例化实现接口必须实现抽象方法有抽象方法静态和默认方法没有构造方法成员变量只能是final类型必须赋值。
抽象类不能被实例化继承抽象类的普通子类必须实现抽象方法有普通方法和代码块和构造方法成员变量可以是各种类型。