- 博客(155)
- 资源 (11)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 介绍两种Google guava缓存使用方式
介绍两种Google guava缓存使用方式使用场景:计算或检索一个值的代价很高,并且对同样的输入需要不止一次获取值的时候,就应当考虑使用缓存。方式一import java.util.Random;import java.util.Scanner;import java.util.concurrent.TimeUnit;import com.google.common.cac...
2019-04-10 18:05:48
4086
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Spring框架中常见的注解浅谈
Spring常用注解浅谈我先列举一些Spring中的常见注解:@Autowired @Resource@Qualifier @Service @Component @Controller @Repository@RequestMapping 等等。1、@Autowired @Qualifier与 @Resource用法:标注在成员变量上,或者set方法上。@Autowired 与...
2019-04-10 16:12:32
2947
原创 【分享】30秒在线自助制作电子证件照
近期由于自己需要制作电子证件照,所以在网上找在线制作电子证件照的网站,找了很多网站都是收费的,也下载了很多app制作,都是要收费的。最后,所以索性自己开发一个网站制作电子证件照。这里分享给需要的朋友。(文末有制作地址)
2024-06-27 20:12:07
197
原创 java8的新特性详解
Java 8引入了新的注解@FunctionalInterface,用于标注函数式接口,并提供了一些与函数式接口相关的新的函数式接口,如Predicate、Consumer和Supplier。新的日期和时间API:Java 8引入了全新的日期和时间API,以解决之前的日期和时间API的一些问题。新的API提供了更加易于使用和理解的日期和时间处理功能,支持更好的国际化和地区化,以及更精确的计算。以上是Java 8的一些重要特性的详细解释。Java 8是Java的一个重大更新版本,引入了许多新的特性和改进。
2024-05-16 14:41:46
332
原创 Spring Boot 之helloworld
在这个类中,你需要使用 @SpringBootApplication 注解来注释这个类,并使用 SpringApplication.run() 方法来启动 Spring Boot 应用程序。在上面的入口类中,你可以编写业务代码和配置文件。Spring Boot 是一个基于 Spring 框架的开源框架,它可以帮助开发者快速、高效地搭建一个 Spring 应用程序。Java 安装:https://www.oracle.com/java/technologies/javase-downloads.html。
2023-12-27 11:05:17
434
原创 java 多线程详解
Java 多线程编程需要注意一些问题,例如线程安全、死锁、线程间通信等。在编写多线程程序时,需要注意线程安全问题,尽量避免共享资源的竞争和冲突。另外,避免死锁是多线程编程中一个重要的问题,需要合理设计和使用锁。Java 多线程是 Java 编程语言中的一个重要特性,它允许程序同时执行多个任务。多线程在提高程序性能、提升用户体验等方面有着重要的作用。在 Java 中,多线程可以通过继承 Thread 类或实现 Runnable 接口来创建。
2023-12-27 10:57:01
372
原创 领域驱动设计
此外,DDD还强调了关注点分离的概念,即将不同的关注点分离开来,使得代码易于维护和扩展。最后,战略设计是应用DDD的过程中的另一个核心概念。战略设计包括了将一个复杂的应用程序分解成更小的、可管理的组件或领域,以便于团队分工协作和代码的组织与优化。领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,旨在建立在解决复杂业务领域中的问题的基础上。总之,DDD是一个面向复杂业务领域的软件开发方法,它强调开发团队需要深入了解业务领域,将领域知识融入到软件开发过程中。
2023-11-23 00:25:41
124
原创 springboot security使用
Spring Security提供了很多的配置选项,可以根据需要进行更改。在这个基本配置中,用户需要通过登录表单进行身份验证,然后才能访问任何受保护的资源。这个配置使用一个内存身份验证管理器,但你可以使用其他身份验证方式,例如LDAP或数据库。使用Spring Boot框架可以更快地构建和配置Spring Security。Spring Security是一个强大的认证和授权框架,它可以轻松帮助你实现各种安全功能,如身份验证、授权、会话管理、密码重置、OAuth等。
2023-09-19 14:36:05
187
原创 Spring Security的使用
Spring Security是一个强大且灵活的安全框架,它为Spring应用程序提供身份验证、授权和安全性。Spring Security可以在Web和非Web应用程序中提供安全性。在Web应用程序中,可以使用Spring Security的默认过滤器链或自定义过滤器链来集成它。在Spring Security中,可以使用Java配置或XML配置来定义安全性。使用Spring Security的另一个常见任务是控制方法级别的安全性。以上就是使用Spring Security的基本步骤。
2023-09-19 09:09:49
149
原创 Arthas是一个Java诊断工具 的入门使用
一旦选择了要诊断的Java进程,你可以使用一系列Arthas命令诊断应用程序。Arthas是一个Java诊断工具,可以帮助开发人员在运行时快速诊断和解决线上应用故障。你可以在Arthas Github页面中找到安装指南,根据操作系统选择相应的安装方式。Arthas会列出当前所有正在运行的Java进程。你需要选择要诊断的Java进程。以上是Arthas的入门步骤,希望对你有所帮助。在安装完成后,可以使用命令行启动Arthas。
2023-09-14 18:24:01
89
原创 查看java gc情况
S0C:年轻代中第一个survivor(幸存区)的容量 (kb)S1C:年轻代中第二个survivor(幸存区)的容量 (kb)S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (kb)S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (kb)EC:年轻代中Eden(伊甸园)的容量 (kb)EU:年轻代中Eden(伊甸园)目前已使用空间 (kb)OC:Old代的容量 (kb)OU:Old代目前已使用空间 (kb)PC:Perm(持久代)的容量 (kb)PU:Pe
2021-05-19 17:44:25
1881
原创 Java Object对象中的wait,notify,notifyAll通俗理解
wait,notify,notifyAll 是定义在Object类的实例方法,用于控制线程状态。三个方法都必须在synchronized 同步关键字所限定的作用域中调用,否则会报错java.lang.IllegalMonitorStateException ,意思是因为没有同步,所以线程对对象锁的状态是不确定的,不能调用这些方法。wait 表示持有对象锁的线程A准备释放对象锁权限,释放cp...
2019-09-05 13:42:29
171
原创 yum 方式安装mysql数据库
源代码安装比较麻烦,还是要尝试一下yum安装和rpm方式安装一、检查系统是否安装老版本,有的话干掉#yum list installed | grep mysqlmysql-libs.x86_64 5.1.73-5.el6_6 @anaconda-CentOS-201508042137.x86_64/6.7#yum -y remove mysql-libs.x86_6...
2019-07-30 00:02:56
340
原创 JVM 启动参数之 -D
最近在翻《java核心技术第十版》,看到第七章日志部分,说到java标准类库的logging日志时,说其配置文件可以指定成自己的配置文件,然后直接甩给我一串代码 -Djava.util.logging.config.file=configFile MainClass???-D是什么?从来没用过!经过查找资料得知-D是jvm启动时给系统参数赋值用的(可以是系统默认有的参数,也可以是自己定义的...
2019-07-11 09:46:18
5178
1
原创 Java多线程 -- 公平锁和非公平锁的一些思考
在java的锁机制中,公平和非公平的参考物是什么,个人而言觉得是相对产生的结果而立,简单的来说,如果一个线程组里,能保证每个线程都能拿到锁,那么这个锁就是公平锁。相反,如果保证不了每个线程都能拿到锁,也就是存在有线程饿死,那么这个锁就是非公平锁。本文围绕ReenTrantLock来讲。实现原理那如何能保证每个线程都能拿到锁呢,队列FIFO是一个完美的解决方案,也就是先进先出,java的...
2019-07-10 11:30:12
222
原创 apache-common工具包学习之ToStringBuilder
一、简介与引入1、ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder、CompareToBuilder等这些类都是位于commons-lang.jar下面的,所以要使用这些类一定要导入commons-lang.jar。2、为什么要使用ToStringBuilder...
2019-07-01 16:25:39
409
原创 Java进程之间通信方式&线程之间通信的方式
进程之间通信方式(1) 管道(PIPE)(2) 命名管道(FIFO)(3) 信号量(Semphore)(4) 消息队列(MessageQueue)(5) 共享内存(SharedMemory)(6) SocketJava如何支持进程间通信。我们把Java进程理解为JVM进程。很明显,传统的这些大部分技术是无法被我们的应用程序利用了(这些进程间通信都...
2019-04-25 09:25:40
10379
原创 设计模式之模版方法
设计模式之模版方法定义算法的骨架,将具体操作放在子类去实现。例:去银行取钱的操作。1.去哪个银行?2.取多少钱?代码实例://抽象类 取钱public abstract class GetMoney{ //去哪里取钱 protectedabstract void go(); //取钱的动作 protect...
2019-04-22 11:20:34
94
原创 Java中8种基本数据类型的字节数与位数
1字节等于8位 类型 字节 位数 byte 1 1*8 short 2 2*8 int 4 4*8 long 8 8*8 char 1 1*8 boolean 2 2*8 float 4 4*8 double 8 8*8 ...
2019-04-18 09:27:38
672
原创 Java 里如何实现线程间通信
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。本文涉及代码:https://gi...
2019-04-17 10:14:56
221
原创 redis 安装与使用
redis 是一个非常优秀的缓存。redis 可以将一部分数据存在硬盘中,也支持主从复制,。一、在Mac中安装 brew install redis(如果没安装brew 1. 首先安装:brew。拷贝终端执行:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)...
2019-04-16 09:19:04
101
原创 Caffeine Cache 进程缓存
互联网软件神速发展,用户的体验度是判断一个软件好坏的重要原因,所以缓存就是必不可少的一个神器。在多线程高并发场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如redis、memcached,还有本地(进程内)缓存如ehcache、GuavaCache、Caffeine。说起Guava Cache,很多人都不会陌生,它是Google Guava工具包...
2019-04-15 20:30:20
2047
原创 记一次搭建Java项目过程(二)添加pom依赖,运行Helloworld
记一次搭建Java项目过程(二)添加pom依赖,运行Helloworld简介:本节主要是添加项目依赖pom,运行简单的Helloworld。1.添加依赖。可以打开maven仓库去里面搜索自己需要的maven依赖。如图:以上是举个例子,怎么获取依赖。下面是本次项目所需的所有依赖:<dependency> <groupId>...
2019-04-11 11:45:33
2648
原创 记一次搭建Java项目过程(一)模块创建
概要:本次搭建的是一个java web项目,将会使用Spring、SpringMVC、Mybatis 三个框架。准备工作:提前安装好JDK,maven,tomcat,IntelliJ IDEA打开IntelliJ IDEA步骤1:步骤2:步骤3:步骤4:步骤5:步骤6:步骤7:(新增DAO层模块)步骤8:(忽略下图第3步,...
2019-04-11 11:44:38
2111
原创 原生js自动生成表格
原生js自动生成表格直接上代码,代码注释很清楚了。<div id="demo"></div><script> //原生js表格绑定 var hxj_table = { headers:{}, data:[], style:{ table:{ width:'auto', height:'auto', bo...
2019-04-10 16:27:07
2889
转载 Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? ...
2019-01-22 11:51:26
125
原创 java 深度clone
public Object deepClone() throws IOException, ClassNotFoundException{ //将对象写到流里 ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOu...
2019-01-14 16:05:39
279
原创 简单的说下HashMap与HashTable的区别
要说这两者的区别,简单的归纳有以下几点:1.两者继承的抽象类不一样,HashMap 继承至AbstractMap,HashTable继承至Dictionary(该类已经废弃),建议实现Map2.HashMap是非线程安全的,HashTable 是线程安全的(方法用了syncronized修饰,成员变量用了transient 修饰)。3.HashMap允许存在null的键或null的值,...
2018-08-15 16:18:54
853
转载 Zookeeper的功能以及工作原理
1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 N...
2018-08-12 12:08:05
123
转载 spring监听器demo
欢迎进入《一起学spring》系列博文第三篇,spring容器的事件监听机制,同样有事件、事件源和监听者。而spring中的事件需要继承ApplicationEvent,监听者需要继承ApplicationListener。其他的基本和普通的事件监听差不多。我们用示例说话! 1、这是spring的ApplicationEvent类的源码,我们可以看到它继承了JDK中的EventObje...
2018-08-10 15:28:37
437
转载 双亲委派模型的理解
原文地址: http://blog.csdn.net/inspiredbh/article/details/74889654 Java虚拟机先从最核心的API开始查找,防止不可信的类扮演被信任的类。启动类加载器 Bootstrap ClassLoader:加载<JAVA_HOME>\lib目录下核心库扩展类加载器 Extension ClassLoader:加载<...
2018-08-10 14:58:22
1942
原创 转 java事件机制(自定义事件)实例详解
Java事件处理机制java中的事件机制的参与者有3种角色:1.event object(事件类,事件触发/发布):事件状态对象,用于listener的相应的方法之中,作为参数,一般存在于listerner的方法之中2.event source(事件源类):具体的事件源,比如说,你点击一个button,那么button就是event source,要想使button对某些事件进行响应,...
2018-08-10 14:47:37
189
spice-guest-tools-0.164.3.iso
2024-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人