自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (2)
  • 收藏
  • 关注

原创 Docker安装ElasticSearch和Kibana

ElasticSearch和Kibana都是开源的搜索和分析工具,用于处理大量的搜索和数据分析任务。

2023-04-13 20:00:00 263

原创 Redis基础知识

redis速度快很大部分的原因是它将数据放在了内存里面,但是如果断电或者宕机就会导致数据丢失,为保证重启后数据不丢失没提供三种持久化机制RDB(Read dataBase) AOF(Append Only File)混合持久化

2023-01-30 15:11:11 147

原创 ThreadLocal解读

ThreadLocal线程局部变量

2023-01-30 14:42:22 191

原创 JMM面试题

JMM是一套多线程读写共享数据时,对数据的可见性,有序性和原子性的规则。用来屏蔽硬件和操作系统的访问差异,让Java程序在各种平台下达到一致的访问效果。JMM描述的是一组规则,围绕原子性、有序性和可见性展开处理器上的寄存器的读写的速度比内存快几个数量级,所以引入了高速缓存,但是带来了缓存一致性问题。所以引入了一些协议,比如说:变量保存在主存,每个线程拥有一个变量的副本在自己工作内存。

2023-01-30 11:16:44 170

原创 JAVA 读取D盘中所有文件的文件名

使用递归的方式读取,如果是文件夹就递归,如果是文件夹就输出C / D盘中存在隐藏文件夹,使用isHidden进行判断,可以获得赢藏文件夹的文件夹名字,不过获取到的对象为null,所以需要进行判断import java.io.File;/** * 如果是文件就输出,如果是文件夹就递归 即可 * C: 程序运行时间:112238ms * D: 程序运行时间:12095ms * * @author bamboo * */public class ReadFile { privat.

2021-01-07 10:10:51 1955

原创 静态代码块、构造代码块、构造函数的执行顺序(Java)

首先来看看静态构造代码块长啥样子:static{ ...}而普通的构造代码块相较之下只是少了一个static关键字{ ...}在类的执行过程中,代码块和构造函数、main方法的执行顺序有事什么样的呢?请看如下:以下示例中包含静态代码块、构造代码块、构造函数。创建了两个对象。package codeblock;/** * 静态方法块只会在最初的时候调用一次 * 但是普通构造方法块在每个对象产生的地方都会调用一次 * 执行顺序:静态代码块 --> main方法 -->

2020-12-22 09:20:55 208

原创 Java序列化的使用

准备一个枚举类,枚举类都继承了父类Enum,而Enum又实现了Serializable接口,所以enum类都可直接序列化package serializable;public enum Gender { MALE,FEMALE}准备被序列化的类package serializable;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import

2020-12-17 19:34:52 172

原创 Java内部类使用详解

内部类的使用静态内部类成员内部类局部内部类匿名内部类优缺点静态内部类静态内部类无需依赖于外部类,只能使用外部类的静态成员和方法,即使是private的也可以。package innerclass;public class StaticInner { private static int a = 1; private static int b = 2; public static class InnerStatic{ public static int a = 3;

2020-12-16 08:29:14 128

原创 Semaphore使用详解及源码解读

概述Semaphore(信号量)用来控制同时访问特定资源的线程数量,简单地说就是限流。可以把它比作是控制流量的红绿灯,Semaphore的初始化大小就是可以通过的绿灯流量,达到设定值转红灯无法获得资源。当有一辆车驶出,就能有一辆车获得绿灯通过。车可以理解为线程。使用acquire()方法获得通行,使用release()方法释放。方法tryAcquire()如果返回true的话也获得了通行,不过得自己释放。示例指定可通行数为3,使4个线程同时去,也只能有3个获得通行。若释放一个线程,就可以有一个线

2020-12-15 19:25:48 379

原创 CyclicBarrier使用详解及源码解读

概述当一组线程到达一个同步点(wait方法调用出)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被拦截的线程才会继续运行。值得注意的是同步点有多个,当线程到达各自的同步点先会被阻塞,当都到达同步点,就会在各自的同步点处往下执行。构造方法可以设置在所有线程都到达同步点之前执行另一个线程,wait()方法可以设置等待时间。实例package cyclicbarrier;import java.util.concurrent.CyclicBarrier;/** * 字面意思是可循环使

2020-12-14 19:20:13 215 2

原创 CountDownLatch使用详解及源码解读

概述作用源码使用方法与CyclicBarrier的区别其他相关类CyclicBarrier、Semaphore、Exchanger、Phaser

2020-12-13 17:31:58 130

原创 synchronized(this)、synchronized(xx.class)、synchronized(Object)的使用及区别

这个类是用来调取方法的package synchronizedthis;public class SynchronizedThis { int adder = 0; Test test = new Test(); public void useMethod() { synchronized(this) { try { System.out.println(Thread.currentThread().getName() + " use the method and st

2020-12-12 20:48:53 577 2

原创 【Java】反射的使用及方法

准备目标类:package reflex;public class BeReflexed { public String msg1; protected String msg2; private String msg3; public BeReflexed(String msg1, String msg2, String msg3) { super(); this.msg1 = msg1; this.msg2 = msg2; this.msg3 = msg3; } p

2020-12-10 20:39:33 86

原创 Eclipse中查看JAVA源代码显示SOURCE NOT FOUND解决办法

Eclipse中查看JAVA源码显示SOURCE NOT FOUND解决办法写代码或者看别人代码的时候总想知道引用函数的内部构造。快捷键Ctrl+鼠标左键快捷查看源码,不过小白在开始使用的时候一般未关联源码,显示Source not found.Java所有类的源码点击 link 提取码:3rhr点开Attach Source 看到 Workspace location 和 Exter...

2020-10-18 09:17:58 526

原创 mybatis-generator-gui使用详解

mybatis-generator-gui是基于mybatis generator开发一款界面工具, 本工具可以使你非常容易及快速生成Mybatis的Java POJO文件及数据库Mapping文件。首先 下载源码 https://github.com/zouzg/mybatis-generator-gui使用Eclipse 打开,maven包的导入可能会花费一些时间一般会自己加载,如果不行可以更新一下有一行会报错,但是不用管它。将它以java Application形式运行以Main

2020-10-06 17:30:58 1571

原创 thymeleaf引入bootstrap失败

今天在引入bootstrap的时候死活调用不出样式记录一下踩的坑:在head中代码如下 <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"> <!-- jQuery文件。务必在bootstrap.min.js 之前引入 --> <script th:src="@{/static/jquery/jquery-3.2.1.min.js}"></script> &l

2020-10-05 21:17:32 1209 1

原创 ssm项目基础应用增删改查

本项目采用 spring+springMVC+mybatis 框架实现对数据库的增删改查开发软件:IntelliJ IDEA文件结构:pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:

2020-08-30 22:31:56 214

原创 JAVA中对 “==” 和 equals 的理解

JAVA中的数据类型分两种:基本数据类型(byte、int、boolean、char 等等)引用类型(对象、数据、String)基本类型比较使用 == 判断值是否相等引用类型比较重写了equals方法,比如String。第一种情况:使用==比较的是String的引用是否指向了同一块内存。第二种情况:使用equals比较的是String的引用的对象内用是否相等。没有重写equals方法,比如User等自定义类==和equals比较的都是引用是否指向了同一块内存。S

2020-08-17 21:54:29 151

原创 接口在JDK1.8前后的改变

JDK1.8之前 接口:1.常量,必须赋值,默认修饰符:Public static final2.抽象方法abstract(和final static private三个关键字冲突),默认修饰符:public abstractJDK1.8之后 接口:1.可以有非抽象方法,必须给出default关键字,前面不会有默认修饰符 public abstract 它的出现解决接口升级问题。1万个类实现了一个接口,这时候对接口进行了升级,按照jdk1.7的规则,加方法的话只能加抽象方法,当加完抽象方法之后1

2020-08-12 22:25:31 1097

原创 Mybatis 详解篇 一

1.为什么使用Mybatis无论是Mybatis、Hibernate都是ORM的一种实现框架,都是对JDBC的一种封装!2.基本原理应用程序找Mybatis要数据mybatis从数据库中找来数据2.1 通过mybatis-config.xml 定位哪个数据库2.2 通过Category.xml执行对应的select语句2.3 基于Category.xml把返回的数据库记录封装在Category对象中2.4 把多个Category对象装在一个Category集合中返回一个Category

2020-08-02 21:12:50 295

原创 Hibernate 基础概念篇

1.事务Hibernate的任何对数据有改动的操作,都应该被放在事务里面.在事务中的多个操作行为,要么都成功,要么都失败hibernate中的事务由s.beginTransaction();开始由s.getTransaction().commit();结束在Mysql中,只有当表的类型是INNODB的时候,才支持事务,所以需要把表的类型设置为INNODB,否则无法观察到事务。2.延迟加载hibernate中的延迟加载(lazyload)分属性的延迟加载和关系的延迟加载 。属性的延迟加载:

2020-07-23 17:33:29 101

原创 Hibernate 基础看这一篇就够了

1.什么是HibernateHibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象。2.为什么使用Hibernate使用Hibernate框架就不用我们写很多繁琐的SQL语句。Hibernate实现了ORM,能够将对象映射成数据库表,从而简化我们的开发!3.工作原理读取并解析配置文件读取并解析映射信息,创建SessionFactory打开Sesssion创建事务Tr

2020-07-21 22:29:43 208

原创 简易计算器------Java实现(优先级,连续输入)

文章目录一.页面布局二.栈的设计三.删除处理四.运算逻辑加减运算乘除运算五.总结六.完整代码本程序包含+、-、*、/的优先级运算,包含等于,清除,删除三种功能。使用到了基础的栈的知识完整代码在页面底部,传统手艺复制粘贴(手动狗头)可直接运行。一.页面布局使用的WindowBuilder对界面进行布局,简单直接。使用方法:安装WindowBuilder插件,然后在eclipse右键-----Open With-----WindowBuilder Editor-----点击底部Design即可。没安

2020-06-07 21:07:02 2184

原创 Java NIO基础篇

文章目录1.释义1.1 Java.io1.2 Java.nio1.释义1.1 Java.ioJava.io 包包含了操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。1.2 Java.niojava.nio全称java non-blocking IO(实际上是 new io),是指JDK 1.4 及以上版本里提供的新api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据

2020-06-02 17:16:39 117

原创 Java 五大 IO 模型

文章目录1.阻塞IO模型2.非阻塞IO模型3.多路复用IO模型4.信号驱动IO模型5.异步IO模型1.阻塞IO模型最传统的一种IO模型,即在数据读写过程中会发生阻塞现象。当用户线程发出IO请求之后,内核回去查看线程是否准备就绪,没有就绪就等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据准备就绪,内核将数据拷贝到用户线程,并返回结果给用户线程,用户线程才结束block状态。典型的例子是:data = socket.read();如果数据没有就绪,就会一直阻塞在read()方法

2020-05-29 23:10:53 261

原创 导入JFrame项目没有DESIGN栏,如何解决?【Eclipse】

导入时默认Java Editor格式,以WindowBuilder Editor格式打开即可。

2020-05-12 23:28:22 1051

原创 Mysql中汉字无法存储问题

想要给数据库写入汉字,但是出现如下错误:Incorrect string value: ‘\xC4\xD0’ for column ‘name’ at row 1属性“name”的格式为 varchar 按理应该正确存入,存入失败应该是创建表的时候未指定字符集属性。解决办法:1.修改类型:alter database <数据库名> character set utf8;2.重...

2020-04-15 16:20:28 1247

图书管理系统设计重构

使用了三种设计模式 ,有数据库 ,操作简单,由于是课程作业,里面会有课程报告。设计语言为java,包括登录、注册、借书、还书等等操作。

2020-07-23

学生信息管理系统设计整合

使用Java写了一个学生信息管理系统,关联数据库,不过没有图形界面,考虑以后添加。里面类容较简单,适合刚开始学习的同学,可以在里面添加自己喜欢的内容。

2020-04-16

空空如也

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

TA关注的人

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