- 博客(31)
- 收藏
- 关注
原创 【设计模式】:单例设计模式深究
单例设计模式深究文章目录单例设计模式深究饿汉式:懒汉式:懒汉式线程不安全解决:(DCL双重检锁 + volatile )饿汉式:/** * @ClassName EHanShi * @Description 单例 ===》饿汉式 * :造成资源浪费 * @Author 86188 * @DAte 2022/3/8 **/public class EHanShi { private static EHanShi eHanShi = n
2022-03-08 16:45:30
293
原创 【面试:】Java高频面试题1(多线程)
高频面试题文章目录高频面试题1.volatile1.1定义:1.2 特性:1.2.1 保证可见性:JMM(java内存模型)代码验证:1.2.2 不保证原子性:1.2.3 禁止指令重排:1.3你在哪个地方见过 volatile ?(单例模式)1.volatile1.1定义:volatile是java虚拟机提供的轻量级的同步机制1.2 特性:1.2.1 保证可见性:JMM(java内存模型) JMM本身是一种抽象的概念并不真实存在,它描述的是一组规则或者是规范,通过这组规范定义了程序中的各个
2022-03-06 19:59:45
1332
原创 【Mybatis-plus】:Wapper
【Mybatis-plus】:Wapper文章目录【Mybatis-plus】:Wapper主要方法:QueryWrapperupdateWrapper:主要方法:QueryWrapper各种方法: isNotNull 不为空 * ge 大于等于 * gt 大于 * le 小于等于 * lt 小于 * eq 等于 sele
2022-01-02 15:24:39
531
原创 【Mybatis-plus】:代码生成器
【Mybatis-plus】:代码生成器文章目录【Mybatis-plus】:代码生成器依赖:上代码:依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
2022-01-02 15:17:38
860
原创 【Mybatis-plus】: mybatis-plus看这一个就行了
mybatis-plus文章目录mybatis-plus1.入门案例:建表:1.1创建工程:springboot工程:1.2 引入依赖:1. 3.编写配置文件:application.properties 或者application.yaml2.代码编写:2.1 pojo实体类编写:2.2 mapper接口(userMapper):2.3 测试:** 日志配置:2.4 添加操作:(userMapper.insert())3. 主键生成策略:3.1. 自动增长:(Auto_increment)3.2 uui
2022-01-02 15:13:01
532
原创 【JVM】虚拟机栈的相关面试题
虚拟机栈的相关面试题文章目录虚拟机栈的相关面试题1.举例栈溢出的情况:2.调整栈的大小,就能保证不溢出的情况吗?3.分配的栈内存越打越好吗?4.垃圾回收会不会涉及虚拟机栈5.方法中定义的局部变量是否线程安全?1.举例栈溢出的情况:2.调整栈的大小,就能保证不溢出的情况吗?肯定不行!不能,通过调整栈大小可以延缓栈溢出的时间或者说减少栈溢出的风险。比如一个业务逻辑的方法调用需要5000次,但此时抛出栈溢出,通过-Xss设置更大的栈空间使得调用在7000次才会溢出,此时调整栈大小就有意义使得业务能正常
2021-12-26 18:19:46
262
原创 【JVM】Java虚拟机之方法的调用
Java虚拟机之方法的调用文章目录Java虚拟机之方法的调用1.静态链接与动态链接2. 方法绑定机制:早期绑定与晚期绑定3. 虚方法和非虚方法:3.1方法调用指令:普通调用指令和动态调用指令3.2 invokeDynamiczh指令 (动态调用指令)3.21 动态类型语言与静态类行语言:4.方法重写的重写:5. 方法返回地址:1.静态链接与动态链接2. 方法绑定机制:早期绑定与晚期绑定3. 虚方法和非虚方法:3.1方法调用指令:普通调用指令和动态调用指令3.2 invokeDyna
2021-12-26 18:05:05
261
原创 【Java虚拟机】(重点)+(虚拟机栈相关面试题):运行时数据区之虚拟机栈
运行时数据区之虚拟机栈文章目录运行时数据区之虚拟机栈1.虚拟机栈概述:1.1出现背景:1.2栈和堆的区别:1.3虚拟机栈是什么?1.4作用:1.5栈的优点:2.栈的存储单位:2.1栈中到底存的什么?2.2栈的运行原理:3.栈帧的内部结构:3.1局部变量表:关于slot(槽)的理解静态变量与局部变量的对比:补充说明:3.2操作数栈:3.3.动态链接:3.4方法的返回地址:3.5附加信息:11.栈的相关面试题:Java虚拟机中 可能出现哪些异常呢?1.虚拟机栈概述:1.1出现背景:1.2栈和堆的区别:
2021-12-07 11:19:27
94
原创 【Java虚拟机】:运行时数据区之程序计数器(PC寄存器)
运行时数据区之程序计数器(PC寄存器)文章目录运行时数据区之程序计数器(PC寄存器)1.PC Register 介绍:1.1 简介:1.2 作用:2.举例说明:3.两个常见问题:3.1使用PC寄存器存储字节码指令地址有什么作用?(使用它的原因)3.2 PC寄存器为什么会被设定为线程私有?3.3 cpu时间片:1.PC Register 介绍:1.1 简介:JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现
2021-12-06 16:20:38
172
原创 【算法排序】:快速排序 JAVA
文章目录快排思想:图解:代码:快排思想:快排的大致思想快速排序实现的重点在于数组的拆分,通常我们将数组的第一个元素定义为比较元素,然后将数组中小于比较元素的数放到左边,将大于比较元素的放到右边,这样我们就将数组拆分成了左右两部分:小于比较元素的数组;大于比较元素的数组。我们再对这两个数组进行同样的拆分,直到拆分到不能再拆分,数组就自然而然地以升序排列了。图解:然后对 5 两边的两个区域 进行上边操作,直到不可再分为止!代码:public static void quickSort(i
2021-12-05 21:06:21
218
原创 Java虚拟机:运行时数据区及线程概述
Java虚拟机:运行时数据区这之前有类加载器的相关知识这部分讲什么呢?他在类加载完成之后开始!文章目录Java虚拟机:运行时数据区1.内存:2.本部分与其他部分联系1.内存:2.本部分与其他部分联系红色是,进程所拥有的!灰色是线程所拥有的!...
2021-12-05 19:46:57
575
原创 java虚拟机(面试题)双亲委派机制
java虚拟机(面试题)双亲委派机制这之前你要了解:classloaderJava虚拟机类加载器(classloader)文章目录java虚拟机(面试题)双亲委派机制1.双亲委派机制:2.工作原理:先看看这些类加载器:附上源码:3.举例:使用jdbc.jar4. 优势:1.双亲委派机制:2.工作原理:先看看这些类加载器:Bootstrap classLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。Ex
2021-12-05 16:21:03
852
原创 Java虚拟机之类的加载器及类的加载过程
JAVA基础:Java虚拟机之类的加载器及类的加载过程文章目录JAVA基础:Java虚拟机之类的加载器及类的加载过程1.类加载器子系统作用:2. 类加载器ClassLoader2.1 类加载过程 loading ----> 链接(linking)--->初始化(Initialization):2.11 loading阶段2.12 链接阶段:2.13 初始化过程:2.2类加载器的分类:引导类加载器和自定义加载器2.21 引导类加载器(bootstraploader)2.22 扩展类加载器(Ext
2021-12-05 15:47:20
620
原创 算法排序:插入排序JAVA
文章目录前言 :插入排序:过程:图解:代码实现:前言 :插入排序:插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。过程:插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,现将第n个数插到前面
2021-12-04 13:41:33
314
原创 算法:选择排序 Java
文章目录前言:排序思路:实现方法:复杂度:代码实现:前言:选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。排序思路:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排
2021-12-02 21:40:22
102
原创 MySQL主从复制
文章目录1.主从复制:1.1 它是什么?1.2 原理图:1.3步骤:2.基本原则:3.最大的问题:4.主从复制的好处:1.主从复制:1.1 它是什么?主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。您看,像在mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器。此时主服务器会将更新信息写入到一个特定的二进制文件中。并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中
2021-12-02 21:20:18
837
原创 JAVA:JDBC连接MySQL数据库
文章目录1.JABCUtil 工具类:Druid.proterties 数据库配置文件:3.测试连接:4. BaseDao类:5.下面给个dao层的实例:5.1 OrderDao 接口:5.2 OrderDaoImpl 实现类:5.3 测试:前言:所需jar包可以用maven导入1.JABCUtil 工具类: import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.pool.DruidDataSourceFa
2021-12-02 21:00:40
1198
原创 JDBC和Servlet:原生sevlet 利用JDBC 完成学生的增删改查(学生管理)
文章目录1.建立数据库表:2.编写JavaBean3.JDBC连接数据库:3.1 JDBCUtils类编写:3.2 Druid.properties 数据库配置文件:4. dao层代码编写:4.1 StudentDao接口4.2 StudentDaoImpl 实现类:5.service层代码编写:5.1 StudentService 接口:5.2 Student ServiceImpl 实现类:6.servlet层编写:6.1 StudentServlet代码:7.web.xml 配置:7.1 servle
2021-12-01 13:55:42
874
原创 MySQL高级:索引优化之防止索引失效
前言:数据库索引优化,但是可能出现索引失效,我们该怎样防止这种情况发生呢》》文章目录1. 案例建表:1.1 staffs表1.2 建立索引:2.案例:索引失效2.1 全面匹配索引的字段最好,第一个字段不能少,也不能,跳着使用字段。2.2 不要在索引的列上做任何操作(计算,函数(自动或者手动)类型转化),会导致索引失效而转向全表扫描2.3 存储引擎不能使用索引中范围条件右边的列:2.4 尽量使用索引覆盖 ,少用select *:2.5 在使用 != or<> 导致索引失效,全表扫描2.6 i
2021-11-30 18:27:31
1092
原创 MySQL高级:三表索引优化案例(三表)
注:索引的建立:索引理解单表索引优化:单表索引优化三表案例是在两表基础上添加的!如果两表的没看可以先看两表案例1.建表:1.1 class表: create table if not exists class( id int(10) unsigned not null primary key auto_increment, card int(10) unsigned not null )ENGINE=InnoDB DEFAULT CHARSET=utf8;1.2 book 表:
2021-11-29 20:05:43
705
原创 MySQL 高级:两表索引优化案例(两表)
1.建表:1.1 class 商品类别表: create table if not exists class( id int(10) unsigned not null primary key auto_increment, card int(10) unsigned not null )ENGINE=InnoDB DEFAULT CHARSET=utf8; 1.12 book 书本表: create table if not exists book( bookId int(1
2021-11-29 11:43:10
567
原创 MySQL高级 :索引单表优化案例(单表)
1.建表: create table if not exists article( id int(10) unsigned not null primary key auto_increment, author_id int(10) unsigned not null, category_id int(10) unsigned not null, views int(10) unsigned not null, comments int(10) unsigned not null,
2021-11-28 18:43:58
321
原创 Mysql 高级 explain 分析
文章目录1.explain 怎么玩?2.作用呢?3.各个字段解释:3.1 explain 之id:3.2 select_type (查询类型)3.3 table3.4 type1.explain 怎么玩?explain + SQL 语句explain select * from userTest;每个表头 字段介绍在下面!!!2.作用呢?·1. 表的读取顺序; (id 可看 越大优先级越高)·2.数据读取操作的数据类型;(select_type)·3.那些索引可以使用;()·
2021-11-28 17:30:15
333
原创 MySQL 高级: 索引理解
1. 索引是什么?1.1定义:! 索引(index)是帮助mysql高效获取数据的数据结构;! 你可以理解为排好序的快速查找的数据结构 ;在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式指向 数据,这样就可以在这些数据结构上实现高级的查找算法。这种数据结构就是索引。(一般为B+树结构组成的)1.2本质:索引是数据结构1.3 为什么建索引?1.3.1 目的:提高查询效率,可以类比于字典2.索引的优缺点:2.1 优点:建立索引,提高数据检索的效率,降低
2021-11-27 15:06:54
927
原创 mysql :join连接 (7种)
文章目录前言一:建表二、七种连接1.笛卡尔积2 . INNER JOIN3. LEFT JOIN4. RIGHT JOIN5. 全连接6. LEFT JOIN 去掉 相交的部分7. RIGHT JOIN 去掉 相交的部分8.全连接 去掉中间相交的部分前言关于MySQL 中 的JOIN 连接,今天在这里进行记录一:建表create table tbl_dept( id int primary key not null auto_increment, deptName varchar(30)
2021-11-27 11:54:54
496
原创 JAVA实现24点小游戏
问题描述:24点游戏是经典的纸牌益智游戏。常见游戏规则:从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。1.程序风格良好(使用自定义注释模板)2.列出表达式无重复。提高要求:用户初始生命值为一给定值(比如3),初始分数为0。随机生成4个代表扑克牌牌
2021-05-07 21:38:05
365
原创 用JAVA语言模拟图灵机XN*2
一:Java模拟图灵机XN*21.1.图灵机XN*2方式:0 0 —> 0 0 R0 1 —> 1 0 R1 0 —> 0 1 R1 1 —> 10 0 R10 0 —> 11 1 R11 0 —> 0 1 STOP2.算法分析:(1) 输入一个10进制的数字;Scanner scan =new Scanner(System.in);(2)再将10进制转换成2进制:ChangeBinary1(int a);(3)将2进制数转换成二进
2021-04-09 20:49:46
245
原创 JAVA语言解决“三天打鱼,两天晒网”问题
问题描述:(用Java编写)中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。原因分析:根据题意可以将解题过程分为三步:1)计算从2010年1月1日开始至指定日期共有多少天;2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;3)根据余数判断他是在“打鱼”还是在“晒网”;若 余数为1,2,3,则他是在“打鱼”否则 是在“晒网”在这三步中,关键是第一步。求从1990年1月1日至指定日期有多
2021-03-21 14:48:13
2487
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人