
JAVA基础
文章平均质量分 64
有关java
Peanutty
菜鸡一枚
展开
-
Redis+lua脚本限制ip多次输入错误密码
使用lua脚本主要保证了对上述逻辑的原子性,因为涉及获取key的值并判断,然后将key的值+1 或 删除key。不能锁username,因为如果有人恶意保留破解密码的话。二是有key的情况下,密码错误或者尝试次数大于阈值再次尝试登录,value:当前ip尝试登录的次数。这里我采用 以ip的方式进行锁定。lua脚本,放在resources目录下。Service类加载时,加载lua脚本。具体校验方法,主要逻辑调用了lua脚本。一点是有key的情况下密码正确需要。逻辑简单,假设限制错误次数为5。原创 2024-04-09 11:10:06 · 795 阅读 · 0 评论 -
【Java】四大函数式接口
在stream流计算中 forEach() 接收一个消费型接口Consumer用于 遍历元素。原创 2024-03-02 18:18:18 · 336 阅读 · 1 评论 -
Linux安装JDK和Maven并配置环境变量
编辑这个profile文件,在文件中添加JDK环境变量。编辑完成之后,点击键盘“Esc”按键退出编辑状态,输入。进入到/etc目录,找到profile文件。xshell连接到云主机。使用xftp上传文件。原创 2024-01-05 18:51:19 · 1020 阅读 · 0 评论 -
【Java】恺撒密码,stream流,方法引用
普通写法, 遍历每个字符进行加密。stream流写法,原创 2023-11-18 14:47:39 · 162 阅读 · 0 评论 -
【Java】反射基础及简单使用
Class clazz4 = cl.loadClass("类的全类名");(1)启动类加载器(引导类加载器,Bootstrap ClassLoader)它用来加载Java的核心库(JAVA_HOME/jre/lib/rt.jar或sun.boot.class.path路径下的内容)。用于提供JVM自身需要的类。并不继承自java.lang.ClassLoader,没有父加载器。出于安全考虑,Bootstrap启动类加载器只加载包名为java、javax、sun等开头的类。原创 2023-11-02 15:02:26 · 171 阅读 · 0 评论 -
【Java】集合List转换为数组【toArray() /stream()流】实现
在Java中,集合(List 接口的实现类)提供了一个名为 toArray 的方法,用于将集合中的元素转换成数组。该方法有两个主要的重载形式,分别用于不同的情况。原创 2023-08-28 10:48:49 · 9798 阅读 · 1 评论 -
【Java】字符字符串常用操作api
【代码】【Java】字符字符串常用操作api。原创 2023-08-20 14:26:10 · 133 阅读 · 0 评论 -
【Java】对象数组排序(Comparable接口/Comparator接口)
Comparable接口的代码。原创 2023-08-17 15:11:43 · 1170 阅读 · 0 评论 -
【Java】理解java传参总是采用值传递/按值调用
Java所有的方法传参都是按值调用,方法得到的是所有参数值的一个拷贝。方法参数共有两种类型一个内部方法不可能基本数据类型,但能通过对象引用能够修改对象的内容。如下代码所示解释:方法得到的是对象引用(从某种角度来说可以理解为指针,但严谨来说不是指针)的拷贝,对象引用及其他的拷贝同时引用同一个对象。如果Java采用的是引用调用,那么这个方法能够交互数据的效果但方法没改变存在变量a,b中的对象引用,swap中的x和y被初始化为两个对象引用的拷贝,swap方法交换的是x,y变量中存储的引用(也可以理解为原创 2023-07-16 20:37:01 · 272 阅读 · 0 评论 -
【Java】自定义对象作为HashMap的键,同时重写hashCode和equals方法
如果要将自定义类的实例 作为HashMap的 键,必须重写hashCode和equals方法。原创 2023-07-09 22:11:25 · 872 阅读 · 0 评论 -
【Java】用接口声明变量和实现类声明的区别
当用接口声明变量并用实现类创建对象时,只能访问该接口中声明的方法和字段,而不能访问实现类中定义的其他方法和字段。这意味着可以确保任何使用该变量的代码都只能访问接口中定义的方法和字段,从而使代码更加抽象和通用。相反,如果使用相同的实现类声明并创建变量,则可以访问该实现类中定义的所有方法和字段。这使得可以直接操作实现类中的数据和功能,但同时也使代码更加具体和依赖于该实现类。因此,使用接口声明变量并用实现类创建对象可以使代码更加抽象和通用,而使用实现类声明变量则可以更直接地操作该实现类的数据和功能。原创 2023-03-04 11:44:38 · 351 阅读 · 0 评论 -
【Java】关于Java中的Deque
的子接口,是一种常见的数据结构,Quene有一个直接子类PriorityQuene,队列Quene是一种常用的数据结构,可以将队列看作是一种特殊的线性表,该结构遵循的先进先出原则。1、双端队列(Deque),是Quene是一个子接口,双向队列是指该队列两端的元素既能入队(offer)也能出队(poll),如果将Deque限制为只能从一端入队(push)和出队(pop),则可限制栈的数据结构。对于栈而言,有入栈,遵循先进后出原则。都是继承于Collection,Deque是Quene的子接口。转载 2023-03-01 13:44:38 · 275 阅读 · 0 评论 -
【Java】java队列中的poll, peek和 element
element:查看首个元素,不会移除首个元素,如果队列是空的就抛出异常NoSuchElementException。peek:查看首个元素,不会移除首个元素,如果队列是空的就返回null。poll:将首个元素从队列中弹出,如果队列是空的,就返回null。都是返回队列中的首个元素。原创 2023-02-21 14:59:22 · 1207 阅读 · 0 评论 -
【Java】LinkedList 用作 栈、队列、双端队列 的各类操作
同方法 element() 的区别为:当头部元素为 null 时,element() 方法会抛 NoSuchElementException 异常,peek() 方法返回 null。同方法 remove() 的区别为:当头部元素为 null 时,remove() 方法会抛 NoSuchElementException 异常,poll() 方法返回 null。offer(E) 方法内部调用了 add(E) 方法,两个方法效果相同。队列和栈的添加元素区别:队列在添加元素到尾部,栈添加元素到头部。转载 2023-02-07 22:29:48 · 2263 阅读 · 0 评论 -
Java中String与char数组相互转换
使用String.charAt(index)(返回值为char)可以得到String中某一指定位置的char。使用String.toCharArray()(返回值为char[])可以得到将包含整个String的。这样我们就能够使用从0开始的位置索引来访问string中的任意位置的元素。转载 2023-02-05 02:10:41 · 3731 阅读 · 0 评论 -
【Java】深拷贝浅拷贝(Java实现)
在Java中,像数组、类Class、枚举Enum、Integer包装类等等,就是典型的引用类型,所以操作时一般来说采用的也是引用传递的方式;原创 2023-01-30 15:50:52 · 1086 阅读 · 0 评论 -
【Java】简单理解lambda表达式
lambda表达式Lambda表达式无需用类实现接口Lambda表达式创建接口对象同时实现了接口并且定义了其中的方法,创建对象后可直接通过对象调用接口中唯一的方法lamda表达式只能有一行代码的情况下才能简化称为简化3,如果有多行就用花括号接口必须为函数式接口,即接口中只能有一个抽象方法多个参数也可以去掉参数类型,但要加括号public class TestLambda02 { public static void main(String[] args) { //La原创 2020-08-18 14:12:36 · 306 阅读 · 0 评论 -
Java,类的继承与多态
继承与多态多态父类:Person父类有一个 run() 方法public class Person { public void run() { System.out.println("father run"); }}子类:Student 继承父类Person有一个重写父类 run() 方法还要子类自己的 run() 方法public class Student extends Person{ public void run()原创 2020-08-18 12:13:51 · 273 阅读 · 0 评论 -
Java 抽象类、抽象方法
抽象类、抽象方法抽象类:我们使用面向对象的思想,其实就是把类当中的成员进一步的向上提取封装。public abstract class Animal{ public abstract void Bark();}public class Cat extends Animal{ public void Bark() { System.out,println("猫咪喵喵的叫"); }}class Dog extends Animal{原创 2020-08-18 12:06:37 · 181 阅读 · 0 评论 -
Java中的equals和==的简单区别
Java中的equals和==的简单区别作者:Matrix海子 出处:http://www.cnblogs.com/dolphin0520/在初学Java时,可能会经常碰到下面的代码:1 String str1 = new String("hello");2 String str2 = new String("hello");3 4 System.out.println(str1==str2);5 System.out.println(str1.equals(st转载 2020-08-16 21:55:43 · 118 阅读 · 0 评论 -
JAVA实现五子棋小游戏,简陋版本
JAVA实现简单五子棋小游戏,简陋版本源代码package com.hhb.chapter04;import java.io.BufferedReader;import java.io.InputStreamReader;//五子棋简单游戏public class Gobang { public static final String WHITE_CHESS="○"; public static final String BLACK_CHESS="●"; //棋盘的原创 2020-08-14 23:48:01 · 160 阅读 · 0 评论