三、人人开源搭建后台管理系统 使用人人开源项目搭建后台管理系统人人开源项目码云地址:https://gitee.com/renrenio。利用renren-fast 和 renren-fast-vue实现前后分离。使用git将这两个项目进行clone。
MySQL逻辑架构 mysql数据库的逻辑架构整体分为三层,图示:第一层是客户端层,所包含的并不是MySQL独有的技术,它们都是服务于C/S程序或者是这些程序所需要的,诸如连接处理,身份验证、安全性等功能均在这一层处理。第二层是SQL层(SQL Layer),也叫核心服务层。在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断、SQL解析、执行计划优化、Query cache的处理以及所有内置的函数(如日前时间、加密等函数)、存储过程、视图、触发器等。第三层是存储引擎层(Storage E
Xshell远程连接linux出现的问题 远程连接linux无法使用Password?解决方法将/etc/ssh目录下的sshd_config文件中的 PasswordAuthentication no改为yes即可。
MySQL存储引擎 存储引擎就是指表的类型以及表在计算机上的存储方式。MySQL数据库及其分支版本主要的存储引擎有InnoDB、MyISA、Memory等。InnoDB存储引擎InnoDB是事务型数据库的首选引擎,支持事务ACID。InnoDB支持行级锁,行级锁可以在最大程度上支持并发。InnoDB是为处理巨大数据量的最大性能设计,InnoDB存储引擎...
java后端 进程和线程的区别?进程是程序的一次执行,是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位。它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),它可与同属一个进程的其他的线程共享进程所拥有的全部资源。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就
数据库面试题目 1. 数据库的三范式见收藏2. 一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?一般情况下,我们创建的表的类型是InnoDB,如果新增一条记录(不重启mysql的情况下),这条记录的id是8;但是如果重启(文中提到的)MySQL的话,这条记录的ID是6。因为InnoDB表只把自增主键的最大ID记录到内存中,所以重启数据库或者对表OPTIMIZE操作,都会使最大ID丢失。但是,如果我们使用表的类型是MylSAM,那么这条记
算法题目~ 1. 排序算法2. 直接选择排序直接选择排序.:直接选择排序 (Straight Select Sorting) 也是一种简单的排序方法,它的基本思想是:第一次从R [0]~R [n-1]中选取最小值,与R [0]交换,第二次从R [1]~R [n-1]中选取最小值,与R [1]交换,…,第i次从R [i-1]~R [n-1]中选取最小值,与R [i-1]交换,…,第n-1次从R [n-2]~R [n-1]中选取最小值,与R [n-2]交换,总共通过n-1次,得到一个按排序码从小到大排列的有序序列。
java基础 1. 访问修饰符2. final3. 重写和继承4. 类的初始化过程5. 继承与实现6. JVM参数7. RMI8. 八种基本数据类型占空间大小9. MVC10. replaceAll11 . Object12. 序列化与反序列化13. 自动类型提升14. 装箱拆箱15. && ||16. Integer17. list中add的用法18. interface19. 构造函数
设计模式七大原则 1. 单一职责原则1.1 基本介绍对类来说的,即一个类应该只负责一项职责。如类 A 负责两个不同职责:职责 1,职责 2。当职责 1 需求变更而改变 A 时,可能造成职责 2 执行错误,所以需要将类 A 的粒度分解为 A1,A2。...
死锁编码及定位分析 1. 死锁是什么?2. 代码class HoldThread implements Runnable { private String lockA; private String lockB; public HoldThread(String lockA, String lockB) { this.lockA = lockA; this.lockB = lockB; } @Override public void
生产者消费者模型之阻塞队列版 import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;class MyResource{ private volatile boolean FLAG = true; //默认开启,进行生产+消费
Synchronized和Lock的区别 1. 原始构成方面synchronized是JVM层面,它是JAVA的关键字,底层是通过monitor对象来完成的。Lock是API层面的具体类,它是java5以后新出的一个类。2. 使用方法synchronized 是不需要手动释放锁,当synchronized代码执行完以后,系统会自动让线程释放对锁的占用。lock就需要手动去释放锁,若没有主动的去释放锁,就可能导致死锁的现象。3. 等待是否可中断synchronized不能中断,除非是抛出了异常或者是正常执行完成。lock是可
公平锁/非公平锁/可重入锁/递归锁/自旋锁/独占锁/共享锁/互斥锁 1. 公平锁和非公平锁公平锁:是指多个线程按照申请锁的顺序来获取锁,类似排队打饭 ,先来后到。非公平锁:是指在多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象。对于synchronized而言 也是一种非公平锁。并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁 默认是非公平锁。空参构造器:非公平锁带参构造器:公平锁2. 可重入锁(又名递归锁
CAS引发ABA问题 1. ABA问题2. 原子引用AtomicReferenceimport lombok.AllArgsConstructor;import lombok.Getter;import lombok.Setter;import lombok.ToString;import java.util.concurrent.atomic.AtomicReference;@Getter@Setter@AllArgsConstructor@ToStringclass User1{ priv
CAS 1. CAS是什么?CAS的两句话概括:1.如果线程的期望值跟物理内存的真实值一样,就更新值到物理内存当中,并返回true。2.如果线程的期望值跟物理内存的真实值不一样,返回是false,那么本次修改失败,那么此时需要重新获得主物理内存的新值。public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(5);
volatile是什么? 1.volatile是Java虚拟机提供的轻量级的同步机制保证可见性不能保证原子性禁止指令重排面试题:volatile是Java虚拟机提供的轻量级的同步机制,是基本上遵守了JMM的规范,主要是保证可见性和禁止指令重排,但是它并不保证原子性。2. JMMJMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过规范定制了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JMM关于同步规定