自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

斌斌(Java)

这是一个俗世行者的空间,这是一个技术交流的平台

  • 博客(252)
  • 资源 (23)
  • 收藏
  • 关注

原创 MySQL索引测试

表中没有任何数据时,无论是否使用索引,查询结果都是一样的。但直接扫描表(全表扫描)可能比使用索引更快,因为即使是空表,访问索引也需要一定的开销,但并不会带来性能提升。使用如下SQL语句建表,并使用b列作为条件查询。按照索引最左匹配原则,此时应该无法使用索引。但如果表中只包含主键列和索引列,此时查询优化器还是会使用索引。在MySQL中,即使表中没有数据,查询优化器也会考虑使用索引来执行查询。但在某些情况下,查询优化器可能会选择不使用索引,这通常是基于成本效益分析的结果。

2024-09-20 19:31:51 79

原创 MyISAM引擎介绍

MyISAM是MySQL的一种存储引擎,它以其简单性和高速度而著称。在早期的MySQL版本中,MyISAM广泛使用,尤其是在那些以读操作为主的应用场景中。然而,随着InnoDB存储引擎的成熟和普及,MyISAM的使用逐渐减少。

2024-09-18 21:16:31 825

原创 MySQL行转列

在数据库操作中,有时我们需要将行数据转换为列数据,这在生成报表或进行数据汇总时尤为常见。本文将以一个学生成绩表为例,演示在MySQL中实现行转列的几种方法。

2024-09-18 16:10:32 189

原创 MySQL EXPLAIN输出信息

MySQL中的EXPLAIN语句提供了有关MySQL如何执行语句的信息。EXPLAIN适用于SELECT、DELETE、INSERT、REPLACE和UPDATE语句。那这些输出是什么意思呢?

2024-09-13 23:01:47 908

原创 垃圾收集器

垃圾收集器(Garbage Collector, GC)是Java虚拟机(JVM)中的一个关键组件,它自动地管理和释放不再使用的对象所占用的内存空间。这样可以防止内存泄漏,并简化了开发者的编程任务。

2024-09-04 16:00:28 659

原创 垃圾收集算法

在Java中,垃圾收集(Garbage Collection, GC)是一种自动化的内存管理机制,它负责回收不再使用的对象所占用的内存。Java虚拟机(JVM)提供了多种不同的垃圾收集器,每种垃圾收集器都有其特点和适用场景,使用的也是不同的垃圾收集算法。

2024-09-02 13:22:21 781

原创 JVM垃圾判定算法

垃圾收集技术是Java的一堵高墙。Java堆内存中存放着几乎所有的对象实例,垃圾收集器在对堆内存进行回收前,第一件事情就是要确定这些对象中哪些还存活,哪些已经死去(即不可能再被任何途径使用的对象)。也就是判定垃圾。

2024-09-01 18:00:42 833

原创 OutOfMemoryError

Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的几个运行时区域都可能发生OutOfMemoryError(OOM)。

2024-09-01 17:06:30 1055

原创 Java对象的访问定位技术

Java虚拟机规范中规定reference类型是一个指向对象的引用,但规定并没有定义这个引用应该通过什么方式去定位、访问堆中的对象的具体位置,所以对象访问方式取决于具体的虚拟机实现。目前主流的访问方式有两种:使用句柄和直接指针。

2024-08-31 22:04:36 390

原创 Java对象的创建过程

Java是面向对象的编程语言,在Java程序运行过程中随时都有对象被创建出来。那对象的创建是怎样一个过程呢?

2024-08-31 19:15:00 1057

原创 Java内存区域

这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配,但是随着JIT编译器的发展与逃逸分析技术逐渐成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化发生,所有的对象都分配在堆上也渐渐变得不是那么绝对了。由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一条线程中的指令。堆的大小可以是固定的,也可以根据计算的需要进行扩展,如果不需要更大的堆,则可以进行收缩。

2024-08-31 17:19:43 785

原创 JVM的五个 invoke 指令详解

Java 虚拟机 (JVM) 是 Java 语言的核心组件之一,负责执行 Java 字节码。在 JVM 中,invoke 指令用于执行方法调用。本文将详细介绍 JVM 设计的五个 invoke 指令,包括它们的作用和应用场景。invoke 指令在 JVM 中扮演着至关重要的角色,它们负责执行方法调用。理解这些指令的作用和应用场景对于深入理解 Java 字节码和 JVM 的工作原理非常重要。

2024-08-23 22:44:47 804

原创 使用Instrumentation创建代理程序监测Java对象信息

利用这个代理可以清晰的看到Java对象占用的内存大小,不过它的功能简单、操作复杂,其实也可以使用现成的JOL(Java Object Layout)来替代。你觉得呢?

2024-08-23 15:48:12 363

原创 Java对象的内存结构

Java 对象的内存结构对于理解 Java 内存管理和性能优化至关重要。本文将详细介绍 Java 对象的内部结构,并提供查看这些信息的方法。对象头 (Header)实例数据 (Instance Data)填充数据 (Padding Data)

2024-08-23 03:27:37 1151

原创 Java并发控制:volatile和synchronized的底层实现原理

在 Java 中,volatile 和 synchronized 是两种重要的并发控制机制,它们用于保证多线程环境下的数据一致性。volatile 用于声明一个变量的可见性和禁止指令重排,而 synchronized 用于确保代码块或方法的互斥访问。本文将深入探讨这两个关键字的底层实现原理和技术细节。结合JMM和内存屏障的信息,在HotSpot JVM中volatile的底层实现主要依赖于内存屏障,在读取和更新volatile变量的前后添加相应的内存屏障来规范了变量的访问方式。

2024-08-22 20:48:04 713

原创 JVM指令重排序

指令重排序是一种在编译器和处理器级别发生的优化过程,它改变了程序原有的指令执行顺序。这种优化可以在多个层面上发生,包括编译器优化、即时编译优化(JIT),以及处理器层面的优化。指令重排序是一种复杂但非常有效的优化技术。它使得处理器能够更加智能地利用自身的各种资源,如流水线、缓存和并行执行单元,从而提高整体性能。然而,这种优化也带来了额外的挑战,尤其是在多线程编程中,开发者需要对这种机制有所了解,以确保程序的正确性和效率。

2024-08-21 22:41:33 1006

原创 伪共享问题如何解决?

伪共享问题是多核处理器环境下常见的性能瓶颈之一,特别是在多线程编程中。想要解决它,就必须先了解缓存行的概念。

2024-08-21 19:39:20 1133

原创 MESI 协议:多核处理器的一致性解决方案

随着整个世界的发展,CPU、内存以及各种I/O设备不断升级迭代,计算机性能有了很大的提升。原先那种简单的计算机架构也随之升级。程序是存储在磁盘,然后读取进内存中的,内存吞吐率虽然得到很大的提升,但是相对于处理器来讲,仍然非常慢。处理器要从内存中直接读取数据都要花大概几百个时钟周期,在这几百个时钟周期内,处理器除了等待什么也不能做。随着处理器技术的发展,现代计算机系统越来越多地采用多核处理器架构来提高性能。

2024-08-21 18:33:24 894

原创 JVM性能监控工具

给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。

2024-08-18 16:46:41 886

原创 idea安装二进制文本阅读插件

通过本文的指导,你现在应该能够轻松地在 IntelliJ IDEA 中安装并使用 BinEd 插件。这将大大提高你在查看和分析二进制文件时的工作效率。

2024-08-16 23:01:51 432

原创 Dockerfile相关命令

Dockerfile 是一个用来构建Docker镜像的文本文件,包含了一系列构建镜像所需的指令和参数。

2024-07-19 13:44:21 321

原创 dbeaver连接mysql8异常

部署了mysql8,尝试用dbeaver 24.1.2连接它。结果配置完成后测试连接时报错:Public Key Retrieval is not allowed.

2024-07-16 19:52:29 281

原创 nodejs安装配置

打开官网(https://nodejs.org/en/download/package-manager),参考安装步骤操作。

2024-05-27 22:05:02 471

原创 如何保证数据库、缓存的双写一致?

在我们日常研发过程中,由于数据库的一些限制,我们经常使用缓存(如:Redis)来提升访问速率。此时,数据库和缓存双写数据就存在一致性问题,这个问题跟开发语言无关,在高并发场景下,问题更加严重。另外,在面试、工作中也会经常遇到这个问题。所以这里跟大家一起探讨下数据库和缓存双写一致性问题的解决文案。

2024-04-11 17:22:42 554

原创 mysql笔记:25. docker环境中mysql主从复制、主主复制实操

Docker容器是现在的主流技术,容器提供了细粒度的系统隔离机制,每个容器都完全独立,其中包括了应用以及所有需要的系统依赖,可以把系统中每个服务放入容器,让各个服务都以容器的形式运行,这样就大大简化了系统的部署过程,更加便于维护。

2024-03-27 17:11:49 935

原创 mysql笔记:24. 主从同步环境搭建

MySQL的主从同步(Master-Slave Replication)是一个常用的数据备份和恢复策略,它允许在两个或多个数据库服务器之间实现数据同步。这种方案不仅可以提高数据备份的效率,还可以实现读写分离,从而提高整个系统的性能和可靠性。

2024-03-20 16:30:49 611

原创 mysql笔记:23. 在Mac上安装与卸载MySQL

MySQL对Mac电脑的适配十分强大,再加上Mac本身就是Unix操作系统演化而来的,所以在Mac上安装MySQL的方式有多种。常见的方法有如下三种:DMG、brew、TAR。介绍这些方法前,我们先了解下MySQL安装文件的下载。

2024-03-20 14:25:04 1425

原创 mysql笔记:22. 事务隔离级别的一种通俗讲解

事务隔离级别,是为了解决多个并行事务竞争导致的数据安全问题的一种规范。具体来说,多个事务竞争可能会产生三种不同的现象。

2024-03-18 21:01:11 573

原创 mysql笔记:21. 演示脏读、不可重复读和幻读现象

在MySQL中,事务有4种隔离级别,分别为READ UNCOMMITTED(读未提交)、READ COMMITTED(读已提交)、REPEATABLE READ(可重复读)和SERIALIZABLE(串行化)。

2024-03-18 17:35:57 1401

原创 mysql笔记:20. 什么是数据库六大范式

范式(Normal Form,简称NF)是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。数据库范式是数据库设计表结构所遵循的规范和指导方法,目的是为了减少冗余,建立结构合理的数据库,从而提高数据存储和使用的性能。这六大范式在数据库设计中是层层递进的,满足更高层次的范式通常意味着数据库的设计更加合理、数据冗余更少、维护更加方便。但在实际应用中,并不是一定要满足所有范式,而是要根据具体的应用场景和需求进行权衡和选择。

2024-03-15 18:32:35 1311 2

原创 mysql笔记:19. 主从复制和主主复制

主从复制(也称AB复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。根据参数文件的配置,可以复制数据库中的所有数据。横向扩展解决方案:在多个从站之间分配负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。但是,读取可以在一个或多个从设备上进行。该模型可以提高写入性能(因为主设备专用于更新),同时显著提高了从设备的读取速度。

2024-03-14 16:19:46 1484

原创 mysql笔记:18. 示例数据库

MySQL示例数据库是MySQL官方提供的开源项目,旨在帮助用户学习和实践MySQL数据库。一个示例数据库可以提供真实的数据库环境,一般包含了多个表格,每个表格都有不同的结构和数据。通过使用示例数据库,用户可以通过实际操作来学习和理解MySQL数据库的各种功能和特性。MySQL官方网站提供了以下几个示例数据库:employee、world、sakila、airportdb以及menagerie。这些数据库既可以用于日常学习和测试,也可以作为我们设计数据库时的一个参考。

2024-03-14 14:37:33 1080

原创 mysql笔记:17. 数据库编程

自定义函数和存储过程类似,都是存储在数据库中的一段SQL语句集合;区别在于存储过程没有直接返回值,主要用于执行操作,而自定义函数可以通过RETURN语句返回数据。自定义函数创建之后,可以使用SHOW FUNCTION STATUS语句和SHOW CREATE FUNCTION语句分别显示存储过程的状态信息和创建信息,也可以在数据库information_schema的Routines数据表中查询。从语法来看,查看存储过程和自定义函数相似,只是使用的关键字不同。

2024-03-13 17:03:13 626

原创 mysql笔记:16. InnoDB存储引擎

InnoDB是MySQL默认的存储引擎,它主要由三部分组成,分别是存储结构、内存结构和线程结构。

2024-03-13 16:29:22 901

原创 mysql笔记:15. 事务和锁

在MySQL中,事务就是针对数据库的一组操作,它可以由一条或多条SQL语句组成。在程序执行过程中,只要有一条SQL语句执行失败或发生错误,其他语句都不会执行;也就是说,事务中的语句要么都执行,要么都不执行。为数据库的一组操作提供了一个从失败中恢复到正常状态的途径,同时保证了数据库即使在异常状态下也仍能保持数据的一致性。当多个应用程序并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。

2024-03-12 19:45:01 951

原创 mysql笔记:14. 权限管理

在实际生产中,为了保证数据的安全,数据库管理人员需要为不同的操作人员分配不同的权限,限制登录MySQL服务器的用户只能在其权限范围内操作。同时管理员还可以根据不同的情况为用户授予权限或收回权限,从而控制操作人员的权限。

2024-03-12 12:25:17 1178

原创 mysql笔记:13. 用户管理

MySQL是一个多用户数据库管理系统,不同的用户分配不同的权限,其用户大致分为root用户和普通用户。root用户是超级管理员,拥有所有权限,如创建用户、删除用户、管理用户等。普通用户只有被授予的指定权限。在校学习和日常开发的时候,为了方便,一般都可以通过root用户登录数据库进行相关的操作;但生产环境为保证数据库的安全,需要对不同用户的操作权限进行合理的管理,让用户只能在指定的权限范围内操作。

2024-03-11 17:42:16 1196

原创 mysql笔记:12. 数据备份与还原

在操作数据库时,难免会发生一些意外情况造成数据丢失。为了确保数据的安全,需要定期对数据库中的数据进行备份,这样当遇到数据库中数据丢失或出错的情况时,就可以将数据还原,从而最大限度地降低损失。

2024-03-11 15:42:54 677

原创 mysql笔记:11. 性能优化

性能优化是通过合理安排资源,调整系统参数使MySQL运行更快、更节省资源。主要包括查询速度优化、更新速度优化、MySQL服务器优化等。

2024-03-08 19:38:54 1185

原创 mysql笔记:10. 日志

MySQL日志主要分为四类。错误日志:记录服务的启动、运行或停止MySQL服务时出现的问题。查询日志:记录建立的客户端连接和执行的语句。二进制日志:记录所有更改数据的语句,可以用于数据复制。慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引的查询。在默认情况下,所有日志创建于MySQL数据目录中。通过刷新日志,可以强制MySQL关闭和重新打开日志文件。当执行一个FLUSH LOGS语句或执行或时,将刷新日志。

2024-03-08 18:04:40 1421

Hyperledger Fabric kafka配置

Hyperledger Fabric默认使用solo共识,实际上它早就已经支持kafka共识,只是配置相对复杂点儿。该资源就是使用kafka共识的多orderer集群环境下的网络所需要使用的配置文件。你也可以参考下文帮您理解:http://blog.csdn.net/binbinxyz/article/details/79491254

2018-03-09

纯JavaScript实现的复制/剪切库

纯JavaScript实现的复制/剪切库

2015-10-08

java记事本

java版记事本(含源码)。仿照windows系统记事本,实现了标题栏、菜单栏、状态栏等的UI。功能上实现了文件、编辑、格式、查看、帮助菜单。该记事本具体功能有:文件的新建、打开、保存、另存功能,退出功能,撤消、恢复功能,剪切、复制、粘贴、删除功能,跳转到指定行功能,全选、日期时间功能,自动换行功能,查看行号、状态栏、全屏功能,以及查找、替换、字体功能(未实现)。注意:已实现复制、粘贴、剪切功能,已实现撤消、恢复功能,已实现状态栏显示光标行列信息功能,已实现显示行号、全屏功能。欢迎大家下载、体验,随时欢迎各位与我沟通、交流。

2015-09-30

js版俄罗斯方块

俄罗斯方块,一个精典又好玩的游戏。这是一个javascript版本的俄罗斯方块。多浏览器支持(兼容IE,360,火狐等)。

2014-03-17

FilterAndInterceptor

本资源是包含过滤器、拦截器的一个完整的MyEclipse项目。下载后可以直接导入MyEclipse中部署运行。 关于过滤器和拦截器: 过滤器--是在java web中,提前过滤掉一些信息或者提前设置一些参数,然后再传入servlet/struts的 action进行业务逻辑处理。比如过滤掉非法url或者在传入servlet/struts的action前统一设置字符集,或者去除掉一些非法字符等; 拦截器--它由spring管理,只对action起作用,不能拦截jsp页面、图片等其他资源。执行顺序:过滤前 - 拦截前 - Action处理 - 拦截后 - 过滤后

2013-08-20

WebService开发入门(XFire)

网上有很多Web Service开发相关的资料,但java方面的不多,完整的项目示例更少。我整理了一下使用XFire1.2.6进行Web Service开发的思路,尝试完成了一个入门实例(完整的MyEclipse项目)。如果你正在学习Web Service或者对这个有兴趣,你可以下载该附件,导入MyEclipse中运行以查看示例效果。希望对你有用!如果有兴趣,也可以查看我的相关博文http://blog.csdn.net/binbinxyz/article/details/8906990

2013-05-09

jQuery 1.4.1 速查表

jQuery 文档XML文件内英文及代码部分版权归原官方wiki所有,中文部分分属为之漫笔, Shawphy and Cloudream所有。欢迎转载、替换其他XSL样式或其他形式的转载,但必须保证XML文件原样转载,保留署名以及不可用于商业用途。本文档仅供参考,出于方便学习的目的而分发。使用者必须自行承担风险,因使用此文档造成的任何损失或者潜在的损失,译者均不为其负责。

2013-04-28

经典游戏-俄罗斯方块(二)

个人原创代码,js版经典游戏——俄罗斯方块。该游戏经过版本升级,重构后的代码更加优质,修复了1.0版本中出现的多个BUG。该版本加入游戏说明、游戏级别、方块颜色等功能

2013-03-27

经典游戏-俄罗斯方块

个人原创代码,js版经典游戏——俄罗斯方块

2013-03-18

SSI框架整合开发

基于SSI的框架整合开发Demo。该Demo是一个完整的MyEclipse项目,可以直接导入运行。注意:该demo连接oracle数据库,所以需要相应用户及权限。如有必要可以直接修改%项目%/src/jdbc.properties。版本说明:Struts2.1-spring2.5-ibatis2.3。

2013-01-05

struts2_validation

一个健壮的Web应用程序必须确保用户输入是合法的。例如,在把用户输入的信息存入数据库之前,通常需要进行一些检查以确保用户选择的口令不少于n个字符、用户的出生日期不晚于今天,等等。Struts2提供了一些基于XWork Validation Framework的内建验证程序,它们大大简化了输入验证工作。 使用这些验证程序不需要编程,程序员只需要在一个XML文件里对验证程序应该如何工作做出声明就行了。需要声明的内容包括:哪些字段需要进行验证,在验证失败时应该把什么样的出错消息发送到浏览器,等等。 该资源就是完成该示例的一个完整项目,基于MyEclipse完成的。如有兴趣,请下载查看详细内容。

2012-12-24

MD5校验工具

MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。

2012-04-24

ecside_1.30_full

EC Side是一个开源的列表组件。 他源自著名开源列表组件 eXtremeComponents (http://www.extremecomponents.org), 但现在已经脱离eXtremeComponents,独立发展(仍有大量代码来自 eXtremeComponents)。 “做最实用易用的列表组件”是ECSide最终的目标。

2012-03-29

使用ant从多个SourceFolder的项目中导出jar包的测试项目

有些项目中存在多个SourceFolder,而我们可能需要从其中一个SourceFolder中导出jar包。使用ant进行简单的编译打包已经不能满足该需求。笔者经过细心研究,找到了一种可行的解决方案。详情请参考该完整的java项目,或者笔者博文《如何使用ant从多个Source Folder的项目中导出jar包? 》(地址:http://blog.csdn.net/binbinxyz/article/details/7361376)

2012-03-19

数字转换成中文大写

在做商业领域中,开发票、支票等与金钱相关的项目时通常会遇到要求把数字转换成中文大写。诸如“壹拾圆陆角玖分”。借鉴网友成熟的想法,再加上我周密的思考,最终形成此代码。压缩包中仅包含一个java文件,里面仅有的一个方法就是转换的方法。该方法经过我多次测试均能正常工作,但我不能保证它不会出现问题。如果你发现了其中的BUG,欢迎留言或邮件通知我。我也会及时更新该代码。

2012-03-15

功能强大的java版代码行数统计程序

一个功能十分强大的java版代码行数统计程序,可以用来统计.java .htm .html .jsp .xml等格式的文件的代码行数。如有需要,可以对本程序稍加扩展,以支持其他格式文件(如.css .js .php等)的代码统计

2012-02-21

java版日历

java版日历,可以查询某一年所有月份的日历,也可以查询某一个指定月份的日历。

2012-02-20

spring参考文档

spring官方参考文档,PDF电子书格式的。 spring-framework-reference.pdf

2012-02-08

testproject

web项目中在jsp页面从文件中读取信息或者向文件中写入信息时文件路径的处理方法

2011-05-26

delphi版的简易计算器程序

一个简易计算器程序,完成了正负整数、小数的加减乘除基本运算。

2010-10-31

java版的时钟应用程序【可直接运行】

一个java版时钟应用程序,可以显示出当前系统的日期和时间。 时针、分针和秒针都会随着时间走动。

2010-10-31

点灯——好玩的java小游戏【免费】

点灯 属性:精彩而又富有挑战性的益智类java小游戏 版本:1.4 自己和同学一块编写了一个小游戏,后来我又抽空进行了修改完善。不会让您失望的!

2010-07-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除