- 博客(160)
- 资源 (11)
- 收藏
- 关注

原创 介绍两种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
4125

原创 Spring框架中常见的注解浅谈
Spring常用注解浅谈我先列举一些Spring中的常见注解:@Autowired @Resource@Qualifier @Service @Component @Controller @Repository@RequestMapping 等等。1、@Autowired @Qualifier与 @Resource用法:标注在成员变量上,或者set方法上。@Autowired 与...
2019-04-10 16:12:32
2995
原创 聊聊浏览器指纹
许多网站和跟踪软件使用HTML画布指纹来区分和追踪用户。这是通过利用不同浏览器和设备在绘制图像时产生微小差异的原理实现的。不同浏览器采用不同的图像处理引擎、导出选项和压缩级别,因此每台电脑绘制的图片都会略有不同。这些微小差异可以用来为用户设备分配特定的指纹,并且还可以用来识别不同的用户。
2025-01-27 11:14:44
444
原创 如何自己通过java实现一个rpc框架?简单例子
当客户端发送一个RPC请求时,服务器需要解析请求,查找对应的服务接口和方法,并调用相应的方法。这只是一个简单的RPC框架实现示例,实际的RPC框架要复杂得多,包括服务注册、服务发现、序列化、负载均衡等功能。5.实现序列化和反序列化:在RPC中,客户端和服务器之间需要将方法参数和结果序列化成字节流,并在网络中传输。服务端需要监听指定的端口,接收到请求后将请求参数解析,并调用实际的方法,最后将结果返回给客户端。定义接口:首先确定你想要实现的功能,然后定义接口,其中包含需要远程调用的方法。
2024-08-27 10:07:47
443
原创 k8s在mac和linux下的安装步骤
安装Kubectl:Kubectl是Kubernetes的命令行工具,用于与Kubernetes集群进行交互。安装Minikube:Minikube是一个在本地运行单节点Kubernetes集群的工具。安装Docker:首先需要安装Docker来运行Kubernetes的容器。具体安装步骤可以参考Docker官方文档进行安装。安装完成后,可以使用kubectl命令来管理Kubernetes集群,例如创建、删除和管理容器等。如果正确安装,将会显示Kubernetes的版本信息。
2024-08-27 10:05:35
573
原创 chrome浏览器插件编写
建议阅读Chrome官方文档来了解更多关于Manifest V3的详细信息。在使用Chrome浏览器插件编写时,需要按照Manifest V3的规范来编写。被设置为3,表示使用Manifest V3版本。其中包含了一些常用的字段,如。请注意,Manifest V3与Manifest V2有一些重要的改变,例如。具体根据你的插件需求来修改和添加其他字段。
2024-08-27 10:03:42
474
原创 【分享】30秒在线自助制作电子证件照
近期由于自己需要制作电子证件照,所以在网上找在线制作电子证件照的网站,找了很多网站都是收费的,也下载了很多app制作,都是要收费的。最后,所以索性自己开发一个网站制作电子证件照。这里分享给需要的朋友。(文末有制作地址)
2024-06-27 20:12:07
287
原创 java8的新特性详解
Java 8引入了新的注解@FunctionalInterface,用于标注函数式接口,并提供了一些与函数式接口相关的新的函数式接口,如Predicate、Consumer和Supplier。新的日期和时间API:Java 8引入了全新的日期和时间API,以解决之前的日期和时间API的一些问题。新的API提供了更加易于使用和理解的日期和时间处理功能,支持更好的国际化和地区化,以及更精确的计算。以上是Java 8的一些重要特性的详细解释。Java 8是Java的一个重大更新版本,引入了许多新的特性和改进。
2024-05-16 14:41:46
361
原创 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
460
原创 java 多线程详解
Java 多线程编程需要注意一些问题,例如线程安全、死锁、线程间通信等。在编写多线程程序时,需要注意线程安全问题,尽量避免共享资源的竞争和冲突。另外,避免死锁是多线程编程中一个重要的问题,需要合理设计和使用锁。Java 多线程是 Java 编程语言中的一个重要特性,它允许程序同时执行多个任务。多线程在提高程序性能、提升用户体验等方面有着重要的作用。在 Java 中,多线程可以通过继承 Thread 类或实现 Runnable 接口来创建。
2023-12-27 10:57:01
395
原创 领域驱动设计
此外,DDD还强调了关注点分离的概念,即将不同的关注点分离开来,使得代码易于维护和扩展。最后,战略设计是应用DDD的过程中的另一个核心概念。战略设计包括了将一个复杂的应用程序分解成更小的、可管理的组件或领域,以便于团队分工协作和代码的组织与优化。领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,旨在建立在解决复杂业务领域中的问题的基础上。总之,DDD是一个面向复杂业务领域的软件开发方法,它强调开发团队需要深入了解业务领域,将领域知识融入到软件开发过程中。
2023-11-23 00:25:41
154
原创 springboot security使用
Spring Security提供了很多的配置选项,可以根据需要进行更改。在这个基本配置中,用户需要通过登录表单进行身份验证,然后才能访问任何受保护的资源。这个配置使用一个内存身份验证管理器,但你可以使用其他身份验证方式,例如LDAP或数据库。使用Spring Boot框架可以更快地构建和配置Spring Security。Spring Security是一个强大的认证和授权框架,它可以轻松帮助你实现各种安全功能,如身份验证、授权、会话管理、密码重置、OAuth等。
2023-09-19 14:36:05
220
原创 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
171
原创 Arthas是一个Java诊断工具 的入门使用
一旦选择了要诊断的Java进程,你可以使用一系列Arthas命令诊断应用程序。Arthas是一个Java诊断工具,可以帮助开发人员在运行时快速诊断和解决线上应用故障。你可以在Arthas Github页面中找到安装指南,根据操作系统选择相应的安装方式。Arthas会列出当前所有正在运行的Java进程。你需要选择要诊断的Java进程。以上是Arthas的入门步骤,希望对你有所帮助。在安装完成后,可以使用命令行启动Arthas。
2023-09-14 18:24:01
114
原创 查看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
1935
原创 Java Object对象中的wait,notify,notifyAll通俗理解
wait,notify,notifyAll 是定义在Object类的实例方法,用于控制线程状态。三个方法都必须在synchronized 同步关键字所限定的作用域中调用,否则会报错java.lang.IllegalMonitorStateException ,意思是因为没有同步,所以线程对对象锁的状态是不确定的,不能调用这些方法。wait 表示持有对象锁的线程A准备释放对象锁权限,释放cp...
2019-09-05 13:42:29
191
原创 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
373
原创 JVM 启动参数之 -D
最近在翻《java核心技术第十版》,看到第七章日志部分,说到java标准类库的logging日志时,说其配置文件可以指定成自己的配置文件,然后直接甩给我一串代码 -Djava.util.logging.config.file=configFile MainClass???-D是什么?从来没用过!经过查找资料得知-D是jvm启动时给系统参数赋值用的(可以是系统默认有的参数,也可以是自己定义的...
2019-07-11 09:46:18
5233
1
原创 Java多线程 -- 公平锁和非公平锁的一些思考
在java的锁机制中,公平和非公平的参考物是什么,个人而言觉得是相对产生的结果而立,简单的来说,如果一个线程组里,能保证每个线程都能拿到锁,那么这个锁就是公平锁。相反,如果保证不了每个线程都能拿到锁,也就是存在有线程饿死,那么这个锁就是非公平锁。本文围绕ReenTrantLock来讲。实现原理那如何能保证每个线程都能拿到锁呢,队列FIFO是一个完美的解决方案,也就是先进先出,java的...
2019-07-10 11:30:12
246
原创 apache-common工具包学习之ToStringBuilder
一、简介与引入1、ToStringBuilder、HashCodeBuilder、EqualsBuilder、ToStringStyle、ReflectionToStringBuilder、CompareToBuilder等这些类都是位于commons-lang.jar下面的,所以要使用这些类一定要导入commons-lang.jar。2、为什么要使用ToStringBuilder...
2019-07-01 16:25:39
484
原创 Java进程之间通信方式&线程之间通信的方式
进程之间通信方式(1) 管道(PIPE)(2) 命名管道(FIFO)(3) 信号量(Semphore)(4) 消息队列(MessageQueue)(5) 共享内存(SharedMemory)(6) SocketJava如何支持进程间通信。我们把Java进程理解为JVM进程。很明显,传统的这些大部分技术是无法被我们的应用程序利用了(这些进程间通信都...
2019-04-25 09:25:40
10726
原创 设计模式之模版方法
设计模式之模版方法定义算法的骨架,将具体操作放在子类去实现。例:去银行取钱的操作。1.去哪个银行?2.取多少钱?代码实例://抽象类 取钱public abstract class GetMoney{ //去哪里取钱 protectedabstract void go(); //取钱的动作 protect...
2019-04-22 11:20:34
110
原创 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
710
原创 Java 里如何实现线程间通信
正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了。本文涉及到的知识点:thread.join(), object.wait(), object.notify(), CountdownLatch, CyclicBarrier, FutureTask, Callable 等。本文涉及代码:https://gi...
2019-04-17 10:14:56
238
原创 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
117
原创 Caffeine Cache 进程缓存
互联网软件神速发展,用户的体验度是判断一个软件好坏的重要原因,所以缓存就是必不可少的一个神器。在多线程高并发场景中往往是离不开cache的,需要根据不同的应用场景来需要选择不同的cache,比如分布式缓存如redis、memcached,还有本地(进程内)缓存如ehcache、GuavaCache、Caffeine。说起Guava Cache,很多人都不会陌生,它是Google Guava工具包...
2019-04-15 20:30:20
2093
原创 记一次搭建Java项目过程(二)添加pom依赖,运行Helloworld
记一次搭建Java项目过程(二)添加pom依赖,运行Helloworld简介:本节主要是添加项目依赖pom,运行简单的Helloworld。1.添加依赖。可以打开maven仓库去里面搜索自己需要的maven依赖。如图:以上是举个例子,怎么获取依赖。下面是本次项目所需的所有依赖:<dependency> <groupId>...
2019-04-11 11:45:33
2702
原创 记一次搭建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
2158
原创 原生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
2928
转载 Java并发编程:线程池的使用
Java并发编程:线程池的使用 在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务? ...
2019-01-22 11:51:26
142
原创 java 深度clone
public Object deepClone() throws IOException, ClassNotFoundException{ //将对象写到流里 ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOu...
2019-01-14 16:05:39
329
spice-guest-tools-0.164.3.iso
2024-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人