- 博客(55)
- 收藏
- 关注
原创 Java 中的 synchronized 关键字
总结性回答: 是 Java 中用于实现线程同步的关键字,它能够确保同一时刻只有一个线程可以访问被同步的代码块或方法,从而解决多线程环境下的数据竞争和线程安全问题。 关键字提供了内置的锁机制,用于控制多线程对共享资源的访问。它可以应用于:这会锁定当前对象实例,同一时间只有一个线程能执行该方法。这会锁定类的 Class 对象,影响所有实例的访问。这种方式更灵活,可以指定锁对象并减小同步范围。 是基于 JVM 的监视器锁 (Monitor) 实现的: 是 Java 语言级别的同步机制,而 是 API 级
2025-08-03 12:16:40
267
原创 Java 中的多态性及其实现方式
Java 中的多态性是指同一操作作用于不同对象时,可以有不同的解释和执行结果。它主要通过方法重写(Override)和接口实现来实现,是面向对象编程的三大特性之一(封装、继承、多态)。多态性提高了代码的可扩展性和可维护性,使程序更加灵活。
2025-08-03 12:15:53
308
原创 什么是 MySQL 的慢查询日志?如何优化慢查询?
慢查询日志是 MySQL 提供的一种性能诊断工具,它会记录执行时间超过参数设定值的 SQL 语句(默认是10秒)。这些日志对于发现和解决数据库性能问题非常有用。记录执行时间超过阈值的SQL记录SQL执行时的详细信息(执行时间、锁定时间、返回行数等)可以记录不使用索引的查询(通过参数)
2025-07-31 19:51:41
303
原创 解释 MySQL 中的 EXPLAIN 命令的作用和使用场景
EXPLAIN 是 MySQL 中用于分析 SQL 查询执行计划的命令,它能展示 MySQL 如何执行一个查询,包括使用的索引、表连接顺序、扫描行数等关键信息。主要用于查询性能优化,帮助开发者识别潜在的性能瓶颈并优化 SQL 语句。
2025-07-31 19:50:49
594
原创 MySQL 中的 JOIN 操作有哪些类型?它们之间有什么区别?
MySQL 中主要有 5 种 JOIN 操作类型:INNER JOIN(内连接)、LEFT JOIN(左连接)、RIGHT JOIN(右连接)、FULL OUTER JOIN(全外连接)和 CROSS JOIN(交叉连接)。它们的主要区别在于如何处理两个表中不匹配的行以及返回结果集的方式。
2025-07-31 19:49:59
475
原创 什么是 MySQL 的存储引擎?InnoDB 和 MyISAM 有什么区别?
数据如何存储如何建立索引支持哪些特性和功能性能表现如何MySQL 采用插件式架构,允许用户根据需要选择不同的存储引擎。
2025-07-31 19:49:19
337
原创 MySQL 中 CHAR 和 VARCHAR 类型有什么区别?
固定长度字符串,无论实际存储的数据长度是多少,都会占用 n 个字符的空间。如果数据不足 n 个字符,MySQL 会用空格填充剩余空间。: 占用实际长度+长度标识。例如 VARCHAR(10) 存储 “abc” 占用 4 字节(3字节数据+1字节长度标识)。: 总是占用定义的长度。例如 CHAR(10) 存储 “abc” 会占用 10 字节(在单字节字符集下)。: 可变长度字符串,只占用实际数据长度+1或2个额外字节(用于存储长度信息)。
2025-07-31 19:48:16
359
原创 MySQL 中的聚簇索引和非聚簇索引的区别
聚簇索引和非聚簇索引的主要区别在于索引的组织方式和数据存储位置。聚簇索引决定了表中数据的物理存储顺序,一个表只能有一个聚簇索引;而非聚簇索引是独立于数据存储的额外结构,一个表可以有多个非聚簇索引。聚簇索引的叶子节点直接包含数据行,而非聚簇索引的叶子节点包含的是指向数据行的指针。
2025-07-31 19:47:08
544
原创 什么是 MySQL 的索引?常见的索引类型有哪些?
MySQL 索引是数据库表中用于加速数据检索的特殊数据结构,类似于书籍的目录。它通过建立额外的数据结构来存储特定列的值及其位置信息,从而避免全表扫描,显著提高查询效率。常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等。
2025-07-31 19:46:26
455
原创 为什么Java不支持多重继承
Java避免多重继承的核心原因是菱形继承(Diamond Inheritance)带来的方法调用歧义。当类B和类C继承自类A,而类D又同时继承B和C时,若B和C对A的同一方法有不同实现,D的实例调用该方法时无法明确选择B或C的实现路径。)解决菱形问题,但增加了复杂性。Java选择单继承+多接口的设计,牺牲部分灵活性以换取代码可维护性和确定性。C++通过虚继承和显式作用域解析(如。
2025-07-30 10:01:07
169
原创 什么是Java中的不可变类
不可变类(Immutable Class)是指一旦实例化后,其内部状态(即字段值)不能被修改的类。这种设计模式在Java中被广泛应用,例如。)通过优化(如字符串常量池)减少内存开销,实际开发中需权衡不可变性与性能需求。Java中部分不可变类(如。
2025-07-30 09:52:11
268
原创 Java中的参数传递是按值还是按引用
引用类型(如对象、数组)传递的是对象内存地址的副本。通过副本可以修改对象属性,但无法改变原引用指向的对象。等)存储在栈内存中。传递时会将变量的值复制一份给方法参数。修改方法内的参数值不会影响原始变量。规则,无论参数是基本数据类型还是引用类型。Java中的参数传递严格遵循。
2025-07-30 09:36:51
343
原创 什么是 Java 的多态
多态主要分为编译时多态(方法重载)和运行时多态(方法重写)。编译时多态在编译期根据参数列表确定调用方法,运行时多态在运行期根据对象类型动态绑定。方法重载要求同名方法参数不同,重写则要求子类方法签名与父类一致。多态降低耦合性,提高扩展性和灵活性,支持统一接口不同实现。关键区别在于绑定时机(编译/运行)和决定因素(参数/对象类型)。
2025-07-30 09:30:10
306
原创 【无标题】Java String、StringBuffer、StringBuilder的区别
它们都是Java中处理字符串的类,首先它们的区别体现在。
2024-10-03 11:19:01
267
1
原创 node npm 配置淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
2021-09-06 22:30:16
313
原创 利用css动画制作一个心跳的效果
<style> .back { position: fixed; padding: 0; margin: 0; top: 0; left: 0; width: 100%; height: 100%; background: white; animation-name: backdiv; animation-duration: 1s; animation-iteration-count: infinite;
2021-08-25 00:44:43
921
原创 使用css制作永动的动画
animation-iteration-count 属性用来控制动画循环的次数。设置为 infinite 则使动画可以一直循环<style> #ball { width: 100px; height: 100px; margin: 50px auto; position: relative; border-radius: 50%; background: linear-gradient( 35deg, #ccfff
2021-08-25 00:37:06
1179
原创 使用 @keyframes 来使鼠标悬停的改变图片大小
使用 @keyframes 来使鼠标悬停的改变图片大小<style> img:hover { animation-name: width; animation-duration: 500ms; } @keyframes width { 100% { width: 40px; } }</style><img src="https://bit.ly/smallgooglelogo"/>...
2021-08-25 00:20:45
562
原创 利用css伪元素画一个爱心
爱心主要是由一个正方形经过rotate旋转,然后用::after伪元素和::before伪元素画一个圆形,最后调整它们的位置就可以画出一颗爱心<style> .heart { position: absolute; margin: auto; top: 0; right: 0; bottom: 0; left: 0; background-color: pink; height: 50px; width: 50px;
2021-08-24 23:57:26
314
1
原创 使用css的box-shadow画一个月亮形状的图形
首先创建一个圆,然后设置它的box-shadow值。最后将圆的背景色编程transparent就行<style> .center { position: absolute; margin: auto; top: 0; right: 0; bottom: 0; left: 0; width: 100px; height: 100px; background-color: transparent; border-r
2021-08-24 23:42:19
755
原创 使用repeating-linear-gradient创建一个条纹卡片效果
使用repeating-linear-gradient创建一个条纹卡片效果只使用了角度值和色标<style> div{ border-radius: 20px; width: 70%; height: 400px; margin: 50 auto; background: repeating-linear-gradient( 45deg, // 角度值 yellow 0px, // 色标 yell...
2021-08-24 23:23:28
256
原创 Ajax函数封装
请求参数考虑的问题 1.请求参数位置的问题 请求参数传递到Ajax函数内部,在函数内部按请求 参数的不同将请求参数放置在不同的位置 get 放在请求地址的后面 post 放置在send方法中 2.请求参数格式的问题 application/x-ww
2021-07-13 18:15:14
570
原创 随机生成验证码及校验
输入验证码(区分大小写)点击确认,进行校验。出错就弹框提示点击 看不清 重新随机生成验证码当验证码输入错误时进行提示<body> <div class="v_code"> <div class="code_show"> <span class="code" id="checkCode"></span> <a href="#" id="linkbt">看不清
2021-06-10 22:42:56
459
原创 JS 支付10秒倒计时
<body> <div> <p>商品:Web前端课程</p> <p>原价:1908元</p> <p>现价:1.98元</p> <p>内容;HTML、CSS、JS</p> <p>地址:北京朝阳区</p> <p> <butto
2021-06-10 21:04:44
490
原创 var和let以及const的区别
var和let以及const的区别一、var是ES6之前的变量声明方式,使用var声明的变量,其作用域为该语句所在的函数内,并且存在变量提升现象。由于变量提升的关系,我们可以看到在if语句里面,我们在 a赋值前将其输出并没有报错。还有就是我们在if语句外面再次输出a,居然可以正常输出。这和我们学习的其他语言感觉出现了冲突。于是ES6之后新增了新的变量声明方式。let <script> if (true) { console.log(a);
2021-04-22 23:44:03
262
原创 JS函数的定义和调用几种方式
一、函数的定义:函数的定义有三种方式:1、自定义函数(命名函数);2、函数表达式(匿名函数);3、利用 new Function(‘参数1’,‘参数2’,‘函数体’);还有就是所有的函数都是 Function的实例(对象) <script> // 1. 自定义函数(命名函数) function fn() {}; // 2.函数表达式(匿名函数) var fun = function() {}; //
2021-04-05 22:10:49
3989
原创 利用insertBefore方法和appendChild方法实现一个insertAfter函数
我们知道DOM API中有inserBefore和appendChild方法,但是好像并没有insertAfter方法(将一个结点插入另一个节点的后面)。其实也insertAfter也不是很有必要,我们也可以利用inserBefore和appendChild自己写一个insertAfter函数。一、insertBefore的用法:该Node.insertBefore()方法在参考节点之前插入一个节点,作为指定父节点的子节点。let insertedNode = parentNode.insertBef
2021-03-23 12:11:05
2723
原创 JS计算超过范围的两个大整数相加功能
JavaScript能表示的最大安全整数是9007199254740991,如果超过范围直接计算就会发生精度丢失的情况。我们就只有将两个数字每一位相加,将最后的结果保存在一个字符串中<script> function bigNumberAdd(number1, number2) { var result = '', // 保存最后的结果 carry = 0; // 保留进位结果 // 将字符.
2021-03-22 00:15:45
1291
原创 JS按位非(~) 运算符与~~运算符的一些用法
~ 是JavaScript中的操作符,按位非,~~经常用来进行取整和类型转换。因为位运算的操作值要求是整数,其结果也是整数,所以经过位运算的都会自动变成整数。这个方法可以在一些特殊的情况使用比较方便一、~~ 将字符串转换为整型: var str = '11111111'; console.log(typeof(str)); console.log(typeof(~~str));成功将字符串转换为了数字二、使用 ~~ 去掉一个数的小数部分:这个方法与Ma.
2021-03-22 00:00:13
733
转载 对web标准、可⽤性、可访问性的理解
1、可⽤性(Usability):产品是否容易上⼿,⽤户能否完成任务,效率如何,以及这过程中 ⽤户的主观感受可好,是从⽤户的⻆度来看产品的质量。可⽤性好意味着产品质量⾼,是 企业的核⼼竞争⼒2、 可访问性(Accessibility):Web内容对于残障⽤户的可阅读和可理解性3、可维护性(Maintainability):⼀般包含两个层次,⼀是当系统出现问题时,快速定位并解 决问题的成本,成本低则可维护性好。⼆是代码是否容易被⼈理解,是否容易修改和增强 功能...
2021-03-21 19:05:36
192
原创 web本地存储之localStorage、sessionStorage
一、本地存储的特性:1、数据存储在用户浏览器中2、设置、读取方便、甚至页面刷新不会丢失数据3、容量较大,sessionStorage约5M、localStorage约20M4、只能存储字符串,可以将对象JSON.stringify() 编码后存储二、window.localStorage 和 window.sessionStorage的区别:1.相同点:获取数据(.getItem(key, value))、存储数据(.setItem(key))、删除数据(.removeItem(key)
2021-03-15 19:45:13
245
原创 JS轮播图
JS轮播图轮播图的结构:左右按钮、中间滚动的图片用li装着、表示图片滚动的小圆点<div class="focus fl"> <!-- 左侧按钮 --> <a href="javascript:;" class="arrow_l"></a> <!-- 右侧按钮 --> <a href="javascript
2021-03-12 23:53:06
173
原创 一个简单的缓动动画函数
一个简单的缓动动画函数缓动动画的思路:1.让盒子每次移动的距离慢慢变小,速度就会慢慢降下来;2.核心算法:(目标值-现在的位置)/10 , 作为每次移动的距离步长;3.停止的条件是: 让当前盒子位置等于目标位置时就停止定时器。还有一个关键就是可能每次计算的步长会出现小数的情况,导致移动的位置距离预计距离有一点差距。所以要把步长值修改为整数如果步长大于0(移动反向向正方向)就向上取整,如果小于零(移动反向向负方向)就向下取整。使用三元表达式比较简洁// 把步长值改为整数 不要出现小数的问题
2021-03-10 21:41:51
432
原创 TCP三次握手和TCP四次挥手
TCP三次握手和TCP四次挥手文章目录前言一、TCP三次握手:二、TCP四次挥手:总结前言以前经常听见TCP三次握手和TCP四次挥手,但是自己都没有具体的了解过它们的过程。这次终于了解一些了,所以就记录一下把。一、TCP三次握手:当两台主机要进行相互通信时。要确保双方通信的正常,所以要确认两台主机都具备收和发的功能。其实三次握手就是主机A和B之间发了三条消息一、首先主机A需要确认主机B既可以收又可以发,于是给主机B发送一条请求通信的消息即第一次握手。 第一次握手主要传递两个信息:
2021-03-09 13:30:40
174
1
原创 商品放大镜案例
商品放大镜案例当鼠标放在旁边的小商品图片上时可以看到一个相同商品的大图一、实现效果:二、步骤:一、当鼠标经过 preview_img 就是显示和隐藏 mask遮挡层和big大盒子 (1).分为鼠标经过(mouseover)和鼠标离开事件(mouseout)二、鼠标移动的时候,让黄色的盒子跟随鼠标移动 (1).计算鼠标在盒子内部的坐标 &nbs
2021-03-08 23:51:58
236
原创 js立即执行函数
js立即执行函数一、书写形式:1、(function() {})() 2、(function() {}())二、用法:立即执行函数的第二个小括号里可以看作是调用函数,里面可以传递参数 <script> // 1.立即执行函数:不需要调用,立马能够自己执行的函数 function fn() { console.log(1); } fn(); //普通函数需要调用 // 2.写法
2021-03-08 21:57:18
312
原创 JS执行机制
JS执行机制 <script> console.log(1); document.onclick = function() { console.log('我点击了'); } console.log(2); setTimeout(function() { console.log(3); }, 3000) </script>我们想要
2021-03-06 16:53:55
109
原创 js中this指向问题
js中this指向问题this指向问题:一般情况下this的最终指向的是那个调用它的对象<body> <button>点击</button> <script> // this 指向问题 一般情况下this的最终指向的是那个调用它的对象 //1.全局作用域或者普通函数中this指向全局对象window(注意定时器里面的this指向window) console.log(this); //全
2021-03-06 14:32:00
121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅