Java
文章平均质量分 88
Mands_
这个作者很懒,什么都没留下…
展开
-
Linux常用命令手册
关机/重启/注销常用命令作用shutdown -h now即刻关机shutdown -h 1010分钟后关机shutdown -h 11:0011:00关机shutdown -h +10预定时间关机(10分钟后)shutdown -c取消指定时间关机shutdown -r now重启shutdown -r 1010分钟之后重启shutdown -r 11:00定时重启reboot重启init 6重启init转载 2021-06-11 19:29:45 · 181 阅读 · 0 评论 -
Java中的双重检查锁(double checked locking)
在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码:public class Singleton {private static Singleton uniqueSingleton;private Singleton() {}public Singleton getInstance() { if (null == uniqueSingleton) { uniqueSingleton = new Singleton(); } return u转载 2020-07-01 14:57:58 · 245 阅读 · 0 评论 -
Spring 的 AOP 动态代理的底层实现( JDK 的动态代理和 cglib 的动态代理)
AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。1.AOP 的作用及其优势作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强优势:减少重复代码,提高开发效率,并且便于维护2. AOP 的底层实现实际上,AOP 的底层是通过 Spring 提供的的动态代理技术实现的。...原创 2020-03-23 10:34:32 · 408 阅读 · 0 评论 -
Redis缓存安全问题 缓存穿透、雪崩、和击穿
Redis缓存相关安全问题1. 缓存穿透缓存穿透是指查询一个数据库一定不存在的数据。我们以前正常的使用Redis缓存的流程大致是:1、数据查询首先进行缓存查询2、如果数据存在则直接返回缓存数据3、如果数据不存在,就对数据库进行查询,并把查询到的数据放进缓存4、如果数据库查询数据为空,则不放进缓存例如我们的数据表中主键是自增产生的,所有的主键值都大于0。此时如果用户传入的参数为-1,...原创 2020-02-27 11:38:46 · 541 阅读 · 0 评论 -
Java环境变量的配置
最近有朋友问到环境变量的配置,下面以Windows10系统为例进行Java环境变量配置说明。1、 右键点击“此电脑”,选择“属性”项。2、 点击“高级系统设置”,在弹出的系统属性框中,选择“高级”选项卡(默认即显示该选项卡),点击“环境变量”。3、 在弹出的“环境变量”框,中选择下方的系统变量,点击新建。4、 在弹出的“新建系统变量”框中,输入变量名和变量值,点击确定。变量名为:J...原创 2020-01-10 09:57:10 · 4765 阅读 · 0 评论 -
Servlet之Request深刻剖析
Request原理Servlet中哪个对象代表请求消息数据?Request对象.Servlet中哪个对象代表响应消息数据?Response对象.Tomcat接收到请求之后都做了什么事情?根据请求的路劲先去找资源(Servlet) 如果有对应的Servlet的话(默认情况下)创建Serlvet对象.Tomcat会创建Request对象以及Response对象 ->...原创 2019-12-05 17:04:29 · 157 阅读 · 0 评论 -
多线程_生产者消费者案例
案例需求生产者消费者案例中包含的类:奶箱类(Box):定义一个成员变量,表示第x瓶奶,提供存储牛奶和获取牛奶的操作生产者类(Producer):实现Runnable接口,重写run()方法,调用存储牛奶的操作消费者类(Customer):实现Runnable接口,重写run()方法,调用获取牛奶的操作测试类(BoxDemo):里面有main方法.main方法中的代码步骤如下①创建奶箱...原创 2019-11-26 21:25:06 · 213 阅读 · 0 评论 -
Java递归思想的简单应用
public static void main(String[] args) {//调用方法 System.out.println(f(10));}//递归法求阶乘public static int f(int x){//阶乘必须有一个程序出口,这里就是当x=1时返回值为1,不再进行递归调用。 if (x==1){ return 1; }else ...原创 2019-11-05 21:26:16 · 236 阅读 · 0 评论 -
Java实现模拟斗地主发牌和排序
需求;实现斗地主发牌看牌功能,并且要求按照规则排序。思路;1,创建HashMap,键是编号,值是牌。2,创建Arraylist,存储编号。3,创建花色数组和点数数组。4,从0开始往HashMap里存编号,并存储对应的值,同时往Arraylist存储编号。5,洗牌(洗的是编号),用Collection的shuffle()方法实现。6,发牌(发的是编号,为了编号排序,创建TreeSet集...原创 2019-11-04 18:53:20 · 510 阅读 · 0 评论 -
Java开发生涯中永远不离不弃 —“异常”
异常什么是异常?程序出现了错误.Java中所有异常的超类是哪个类?ThrowableJava中的异常体系是什么?ThrowableErrorExceptionRuntimeException(运行期异常)非RuntimeException(编译期异常)Error类是如何产生,我们应该如何处理?Error类产生一般与硬件有关(极少数情...原创 2019-10-31 16:48:03 · 170 阅读 · 0 评论 -
利用Random和for循环生成验证码包含大写字母小写字母并至少含有一个数字 用两种方法来实现
要求:随机生成一个6位数的验证码,验证码中可以有大写字母,小写字母,至少有一个数字;分析:随机生成6位数的验证码,必须会使用Random;而Random只能生成数字,思考,如何将数字转换成字符呢?思路1:1: 提前写出来所有的合法的字符,然后,将生成的随机数当成索引使用;A-Z a-z 0-9为了保证至少有一个数字,可以利用setChar方法,随机将已经存在的字符串中 的某...原创 2019-10-21 23:23:41 · 1465 阅读 · 0 评论 -
this关键字的理解和内存原理
this关键字this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量public class Student { private String name; private int age; ...原创 2019-10-19 20:45:07 · 795 阅读 · 0 评论 -
Java编译运行环境的搭建和JDK的下载与安装
初学者java编译运行环境的搭建和JDK的安装java跨平台原理(JVM,JRE,JDK)简介JDK的下载JDK安装JDK的安装目录介绍java跨平台原理(JVM,JRE,JDK)简介要想学习java,首先必须得搭建java程序运行的环境,我们都知道,Java程序并非是直接运行的,Java编译器将Java源程序编译成与平台无关的字节码文件(class文件),然后由Java虚拟机(JVM)对字节...原创 2019-10-11 22:23:15 · 864 阅读 · 4 评论