- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 Docker安装ElasticSearch和Kibana
ElasticSearch和Kibana都是开源的搜索和分析工具,用于处理大量的搜索和数据分析任务。
2023-04-13 20:00:00 343
原创 Redis基础知识
redis速度快很大部分的原因是它将数据放在了内存里面,但是如果断电或者宕机就会导致数据丢失,为保证重启后数据不丢失没提供三种持久化机制RDB(Read dataBase) AOF(Append Only File)混合持久化
2023-01-30 15:11:11 509
原创 JMM面试题
JMM是一套多线程读写共享数据时,对数据的可见性,有序性和原子性的规则。用来屏蔽硬件和操作系统的访问差异,让Java程序在各种平台下达到一致的访问效果。JMM描述的是一组规则,围绕原子性、有序性和可见性展开处理器上的寄存器的读写的速度比内存快几个数量级,所以引入了高速缓存,但是带来了缓存一致性问题。所以引入了一些协议,比如说:变量保存在主存,每个线程拥有一个变量的副本在自己工作内存。
2023-01-30 11:16:44 321
原创 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 2098
原创 静态代码块、构造代码块、构造函数的执行顺序(Java)
首先来看看静态构造代码块长啥样子:static{ ...}而普通的构造代码块相较之下只是少了一个static关键字{ ...}在类的执行过程中,代码块和构造函数、main方法的执行顺序有事什么样的呢?请看如下:以下示例中包含静态代码块、构造代码块、构造函数。创建了两个对象。package codeblock;/** * 静态方法块只会在最初的时候调用一次 * 但是普通构造方法块在每个对象产生的地方都会调用一次 * 执行顺序:静态代码块 --> main方法 -->
2020-12-22 09:20:55 248
原创 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 194
原创 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 225
原创 Semaphore使用详解及源码解读
概述Semaphore(信号量)用来控制同时访问特定资源的线程数量,简单地说就是限流。可以把它比作是控制流量的红绿灯,Semaphore的初始化大小就是可以通过的绿灯流量,达到设定值转红灯无法获得资源。当有一辆车驶出,就能有一辆车获得绿灯通过。车可以理解为线程。使用acquire()方法获得通行,使用release()方法释放。方法tryAcquire()如果返回true的话也获得了通行,不过得自己释放。示例指定可通行数为3,使4个线程同时去,也只能有3个获得通行。若释放一个线程,就可以有一个线
2020-12-15 19:25:48 472
原创 CyclicBarrier使用详解及源码解读
概述当一组线程到达一个同步点(wait方法调用出)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被拦截的线程才会继续运行。值得注意的是同步点有多个,当线程到达各自的同步点先会被阻塞,当都到达同步点,就会在各自的同步点处往下执行。构造方法可以设置在所有线程都到达同步点之前执行另一个线程,wait()方法可以设置等待时间。实例package cyclicbarrier;import java.util.concurrent.CyclicBarrier;/** * 字面意思是可循环使
2020-12-14 19:20:13 282 2
原创 CountDownLatch使用详解及源码解读
概述作用源码使用方法与CyclicBarrier的区别其他相关类CyclicBarrier、Semaphore、Exchanger、Phaser
2020-12-13 17:31:58 163
原创 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 625 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 125
原创 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 592
原创 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 1649
原创 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 1330 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 265
原创 JAVA中对 “==” 和 equals 的理解
JAVA中的数据类型分两种:基本数据类型(byte、int、boolean、char 等等)引用类型(对象、数据、String)基本类型比较使用 == 判断值是否相等引用类型比较重写了equals方法,比如String。第一种情况:使用==比较的是String的引用是否指向了同一块内存。第二种情况:使用equals比较的是String的引用的对象内用是否相等。没有重写equals方法,比如User等自定义类==和equals比较的都是引用是否指向了同一块内存。S
2020-08-17 21:54:29 174
原创 接口在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 1177
原创 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 338
原创 Hibernate 基础概念篇
1.事务Hibernate的任何对数据有改动的操作,都应该被放在事务里面.在事务中的多个操作行为,要么都成功,要么都失败hibernate中的事务由s.beginTransaction();开始由s.getTransaction().commit();结束在Mysql中,只有当表的类型是INNODB的时候,才支持事务,所以需要把表的类型设置为INNODB,否则无法观察到事务。2.延迟加载hibernate中的延迟加载(lazyload)分属性的延迟加载和关系的延迟加载 。属性的延迟加载:
2020-07-23 17:33:29 116
原创 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 322
原创 简易计算器------Java实现(优先级,连续输入)
文章目录一.页面布局二.栈的设计三.删除处理四.运算逻辑加减运算乘除运算五.总结六.完整代码本程序包含+、-、*、/的优先级运算,包含等于,清除,删除三种功能。使用到了基础的栈的知识完整代码在页面底部,传统手艺复制粘贴(手动狗头)可直接运行。一.页面布局使用的WindowBuilder对界面进行布局,简单直接。使用方法:安装WindowBuilder插件,然后在eclipse右键-----Open With-----WindowBuilder Editor-----点击底部Design即可。没安
2020-06-07 21:07:02 2436
原创 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 143
原创 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 338
原创 导入JFrame项目没有DESIGN栏,如何解决?【Eclipse】
导入时默认Java Editor格式,以WindowBuilder Editor格式打开即可。
2020-05-12 23:28:22 1133
原创 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 1366
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人