Java基础
文章平均质量分 64
自己学习Java的小心得和bug解决方案
木有头发
这个作者很懒,什么都没留下…
展开
-
SpringBoot下的策略模式
在有多种算法的情况下,大量的使用if…else… 会使代码过于冗余,难以维护. 策略模式就是基于这种情况下,将使用的算法封装成单个的类,通过实现同一个接口动态实现需求替换.1. 算法可以自由切换;2. 避免使用多重条件判断;3. 扩展性良好1.当算法过多时,需要建立大量的策略类;2. 所有的策略类都需要对外暴露.当一个系统中策略类超过四个的时候,我们可以考虑使用混合模式,解决策略类膨胀的问题。原创 2022-09-20 14:21:20 · 423 阅读 · 1 评论 -
Java正则表达式
一、简介 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。在众多语言中都可以支持正则表达式,如Perl、PHP、Java、Python、Ruby等。当然在Java中也可以通过处理字符串的方式达到检索,替换文本字符串的目的,但是有了正则表达式写代码更加简洁,通常两三行代码就可以达到目的,当然这也是建立在熟悉正则表达式的基础之上的。简单来说,正则表达式就原创 2020-09-15 20:36:31 · 202 阅读 · 0 评论 -
Java实现简单的网络爬虫
一、导读 在学习了网络编程和IO流之后,在网上发现可以实现Java简单的爬虫。读了几篇感觉其实很容易理解,自己就试着写了一下。 大致思路 方法其实很简单,就是从网络上获取文件的地址,自己只需要在编辑器里,获取到所要下载的文件地址,存入内存,然后在将其写到磁盘上就行了。 二、直接上手—以获取某张图片为例 2.1、 我们首先要做的就是先随便从网上找一个简单的文件。 找到一个网站,然后快捷键 F12 进入控制台,刷新一下,获取它所有的请求 在这些请求中,找到你所要抓取的文件,然后选中发现左侧会有文件请求的所有信原创 2020-09-02 19:18:10 · 503 阅读 · 0 评论 -
Java--死锁详解
一、定义 死锁是指两个或两个以上的进程在执行过程中,由于资源竞争或由于彼此通信而造成的阻塞现象,若无外力作用,他们都将无法推进。此时系统处于死锁状态或系统产生了死锁 二、产生原因 1)资源竞争 我们知道我们电脑的CPU和主存都属于可剥夺型资源,线程争抢CPU的占有,来运行线程。还有一种属于不可剥夺性资源,当系统把这类资源分配给某个线程后,就不能强制性收回,只有当线程运行完毕后,自行释放。当我们的线程2想要去调用线程1的不可剥夺性资源时,就会产生死锁现象 2)进程之间推进顺序错误 当线程1保持了资源1 ,线程原创 2020-08-31 19:49:19 · 399 阅读 · 1 评论 -
多线程小案例:生产者与消费者之wait实现原理
题目要求 实现生产者生产,消费者消费的小demo 要求 生产者生产完成后,消费者才得以消费。生产者边生产,消费者边消费。 以卖包子为例,只有当包子生产出来,消费者才可以购买。并给予相应的提示 实例分析 根据要求,我们需要将生产者和消费者建立联系,并且二者相互提示。所以我们要把包子类,作为两者的连接桥梁。 由此可得,我们要创建三个实体类和一个测试类。将生产者和消费者分别作为一个线程进行测试。并且充分运用多线程的 wait() 和notify() 类进行提示 代码实现 包子类— class Ba原创 2020-08-27 19:55:18 · 321 阅读 · 0 评论 -
Java基础之斗地主小实现
一、案例介绍 学习了Java的集合之后,就做了一个斗地主的小demo ,主要的功能和我们玩的斗地主差不多。完成简单的发牌洗牌操作,至于怎么打,就看个人的意思了。 具体规则 使用54张牌,打乱顺序,三个玩家同时参与游戏,三人交替摸牌,每人17张,最后三张留作底牌。 二、案例分析 根据案例规则,和我们的日常经验,我们可以将需求分为以下几步: 准备54张扑克牌 (1) 总的扑克牌可以看成一个ArrayList ,里面的每一个字符串视为一张牌 (2) 每张牌由花色和数字组成,我们可以使用花色集合和数字集原创 2020-08-20 20:22:21 · 225 阅读 · 1 评论 -
Java基础之Integer、new Integer() 和 int 的比较
今天遇见一个小题,被整的有点怀疑人生。 开篇 int i=10; int j=10; System.out.println(i==j); 然后 Integer i=new Integer(10); Integer j=new Integer(10); System.out.println(i==j); 再然后 Integer i=10; Integer j=10; System.out.原创 2020-08-19 20:31:59 · 728 阅读 · 0 评论 -
Java实现发放红包小案例
一、目标导读 群主发普通红包。某群有很多成员,群主给成员发红包,规则如下: 1. 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。 2. 成员领取红包后,保存到成员余额中。 二、案例分析 三、 直接上代码 1、定义Uer public class User { private String name; private double balance; public User() { } public User(String原创 2020-08-17 20:53:37 · 792 阅读 · 1 评论