JAVA
文章平均质量分 53
你别教我打游戏
直面困难,重视过程,追求结果,淡忘过去。
展开
-
Java并发编程使用 Semaphore 完成对资源的控制访问
最近在复习操作系统的时候,看到一个使用信号量的例子。然后自己用java实现了一下,本来还想用swing可视化一下的,后来想想就算了。。。题目有一个仓库存放两种零件A和B,最大库容各为 m 个。有一个车间不断地取A和B进行装配, 每次各取一个。有两组供应商不断供应A和B (每次一个),为保证齐套和合理库存,当某种零件的数量比另一种的数量超过n (n < m) 个时,暂停对数量大的零件的进货,集中补齐少的零件。初始时仓库是空的。m = 10, n = 3代码及其注释已经很详细了。原创 2021-06-26 16:52:00 · 264 阅读 · 0 评论 -
Spring 学习笔记3 —— IOC容器 3 (使用注解配置IOC容器)
传送门——>官方文档这里我做的这份笔记的意义仅仅是记录下自己初涉Spring的历程,既不是对官方API的深入解释,也不一定是对新手友好的、知识点详尽的一份学习清单。综上,不喜勿喷,但是有问题欢迎评论区交流!文章目录1 Spring IoC容器和Bean简介1 Spring IoC容器和Bean简介注解在配置Spring上比XML更好吗?...原创 2021-05-26 01:59:02 · 191 阅读 · 1 评论 -
Java采用 Theaker & Brookes 提出的消息传递算法 实现“下棋模型”
文章目录问题背景消息传递算法的特点代码模拟问题背景最近要在做网页版的五子棋,下棋必然有一个同步的操作,否则就会出现一个人连续下多次的情况—— 当然你可以在前端就做出控制,但是,如果要保证资源的绝对的互斥访问呢?这里的同步,是在有服务器这个角色的背景下实现的。也就是说,客户端请求资源,服务端负责资源的同步、互斥操作。客户端、服务端这里采用 socket 通信。消息传递算法的特点客户端请求客户端(或者进程、线程)请求互斥资源的访问,不过等到服务器发来的许可才能继续接下来的操作。服务器控原创 2021-05-17 17:06:08 · 118 阅读 · 0 评论 -
山东大学操作系统实验 —— 2.进程通信实验(用Java 线程间的 Pipe流模拟了 IPC机制)
用Java 线程间的 pipe流模拟了 IPC机制。package 实验2;import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutputStream;import java.util.Scanner;/** * @Author: Song yang Ji * @ProjectName: java-os * @Version 1.0 * @Description: */原创 2021-05-16 22:40:04 · 511 阅读 · 0 评论 -
Java多种方式实现 有界缓冲区下的多个生产者、消费者模型 (Semaphore、while+wait+notifyAll)
只使用 Semaphore使用信号量限制对有限资源的访问使用二进制信号量实现锁import java.util.concurrent.Semaphore;import java.util.concurrent.TimeUnit;/** * @Author: Song yang Ji * @ProjectName: learn-multiThread * @Version 1.0 * @Description: */class ProducerThread extends Thr原创 2021-05-13 00:14:14 · 333 阅读 · 2 评论 -
Spring 学习笔记2 —— IOC容器 2 (Bean的作用域、生命周期回调接口)
传送门——>官方文档这里我做的这份笔记的意义仅仅是记录下自己初涉Spring的历程,既不是对官方API的深入解释,也不一定是对新手友好的、知识点详尽的一份学习清单。综上,不喜勿喷,但是有问题欢迎评论区交流!文章目录1.1 Spring IoC容器和Bean简介1.12 基于Java注解的IOC容器配置1.1 Spring IoC容器和Bean简介1.12 基于Java注解的IOC容器配置...原创 2021-05-11 16:36:06 · 151 阅读 · 2 评论 -
LeetCode 1116. 打印零与奇偶数 ( Lock + Condition多路通知 )
1116. 打印零与奇偶数Lock + Conditionclass ZeroEvenOdd { private int n; Lock lock = new ReentrantLock(); // 上一个数字是否是 0 boolean hasZero = false; // 上一个数字是否是 奇数 boolean hasOdd = false; Condition signalZero = lock.newCondition();原创 2021-05-07 14:49:18 · 97 阅读 · 0 评论 -
LeetCode 1115. 交替打印FooBar (wait + notify、BlockingQuque)
1115. 交替打印FooBar文章目录wait + notifyBlockingQueueSynchronousQueue一道典型的一个生产者、一个消费者的场景wait + notifyclass FooBar { private int n; boolean available = false; public FooBar(int n) { this.n = n; } public void foo(Runnable printFoo原创 2021-05-07 01:08:24 · 78 阅读 · 0 评论 -
LeetCode 1114. 按序打印(忙等、wait+notify、Lock + Condition)
1114. 按序打印busy waitingclass Foo { // 线程可见性 volatile int count = 0; public Foo() { } public void first(Runnable printFirst) throws InterruptedException { // printFirst.run() outputs "first". Do not change or remove thi原创 2021-05-06 21:30:19 · 69 阅读 · 0 评论 -
JavaSE基础 —— 代理模式、Java中的动态代理、Proxy源码分析、实例分析
文章目录代理代理模式Java中的动态代理API使用方法代理类的特性源码分析代理代理模式目的:为其他对象提供一种代理以控制对这个对象的访问,可以增强、可以削弱。应用实例:Spring中的AOP代理的分类:静态代理、动态代理其中静态代理、动态代理的区别在于代理的生成时期不同 —— 前者在编译前就已经编写好代理类,后者在运行时动态生成代理类。Java中代理的具体实现,依赖于接口实现(JDK实现的代理)、依赖于继承实现(CGLIB实现的代理)。Java中的动态代理APIJDK原生支持的代理依原创 2021-05-02 12:40:44 · 152 阅读 · 0 评论 -
JavaSE基础 —— 反射的基础、Class、Field、Method、Constructor类
文章目录反射概念Class 类Field 类Method 类Constructor 类简单的介绍一下反射的概念。为框架的学习打下基础。反射概念反射可以在运行时动态分析类,解析一个类的构造器、字段、方法、接口等等。反射有何作用,或者说为什么要学习反射?作为应用程序员,一般情况下,并不直接使用反射,它更多在构建系统级程序时发挥用处,如实现Java的Spring框架、持久层框架Mybatis时,反射的使用处处可见。Java的其他特性或技术也依赖于反射,如代理(Proxy)等等。所以,学习反射,很大原创 2021-03-20 20:25:13 · 319 阅读 · 0 评论 -
以后再也不要到网上找在线缩放图片的网站了!!!
public class ImageUtil { /* * 图片缩放,w,h为缩放的目标宽度和高度 * src为源文件目录,dest为缩放后保存目录 */ public static void zoomImage(String src,String dest,int w,int h) throws Exception { double wr=0,hr=0; File srcFile = new File(src);原创 2021-03-03 21:02:52 · 106 阅读 · 3 评论 -
SpringMVC 常用注解
文章目录@Controller@RequestMappingURL匹配value和method属性@GetMapping、@PostMapping@PathVariable@Controller@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法原创 2020-12-15 10:03:36 · 146 阅读 · 0 评论 -
Spring 中的常用注解及配置简化
文章目录自动装配@Autowired@Qualifier@Resource自动创建Bean@Component@Controller@Service@Repository@Value自动装配@Autowired此注解顾名思义,能完成自动装配(默认按类型匹配),即依赖的自动注入。但是并不具有创建Bean的功能,只有自动组装Bean的功能。使用方法注意多出来的头文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="htt原创 2020-11-15 14:26:25 · 321 阅读 · 0 评论 -
Spring 学习笔记1 —— IOC容器 I (IOC容器、DI依赖注入)
这里我做的这份笔记的意义仅仅是记录下自己初涉Spring的历程,既不是对官方API的深入解释,也不一定是对新手友好的、知识点详尽的一份学习清单。综上,不喜勿喷,但是有问题欢迎评论区交流!文章目录1.1 Spring IoC容器和Bean简介1.1.1 Bean1.1.2 IOC容器1.2 容器概述1.2.1 配置元数据1.2.2 实例化容器1.2.3 使用容器1.3 Bean1.3.1 Bean 的命名1.3.2 Bean 的实例化传送门——>官方文档1.1 Spring IoC容器和B.原创 2020-11-14 16:19:43 · 297 阅读 · 0 评论 -
学习Spring的实操代码 —— 用Spring IOC 容器托管Bean
建立一个Maven项目pom.xml依赖如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http:/原创 2020-11-12 23:32:26 · 147 阅读 · 0 评论 -
Java中 Map遍历的四种方式
public static void main(String[] args) { // 循环遍历Map的4中方法 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(1, 2); // 1. entrySet遍历,在键和值都需要时使用(最常用) for (Map.Entry<Integer, Integer>转载 2020-10-17 00:47:02 · 80 阅读 · 0 评论 -
设计模式之单例模式及Java实现
文章目录单例模式适用场景Java实现饿汉式懒汉式利用同步锁利用静态内部类能否用“反射”去破坏单例单例模式在整个项目中只提供这个类的一个实例,而不是需要这个实例对象时候去创建,用完就销毁。适用场景创建此对象时间、空间开销非常大,而实际上这种类的对象具有静态属性,即属于类。对于不同的调用者,不会因为需求不同,赋予它任意的性质——即这种类只会一种或少数形式创建出对象,完全可以事先创建创建、而后供人调用。Spring的IOC容器里的对象的存在形式默认就是单例的。常用于工具类,IO类、连接类的对象生成。原创 2020-07-24 11:46:52 · 99 阅读 · 0 评论 -
用IDEA创建Maven项目+junit进行测试(对新手友好、老鸟勿进)
文章目录MavenMaven的用途项目实例创建Maven项目过程运行Junit这篇博客主要记录我第一次用IDEA创建Maven项目,并使用Junit进行测试的经历,并且将遇到的一些坑点记录下。从没有尝试过Maven的童鞋可以尝试一下,保姆级示范哦。MavenMaven是啥?Maven 是专门用于构建和管理Java相关项目的工具。Maven本身是一个工具,一方面主流IDE(IDEA、Ecl...原创 2020-04-20 17:04:56 · 1610 阅读 · 0 评论 -
多个窗口的切换--JavaGUI设计
功能:主要实现的功能为实现多个界面的切换,并且一个window的打开和关闭可以影响其他window。不足:①可以多次多开同一个界面(可以加一个变量控制)②没有实现一个的窗体关闭,它的子窗体也随即关闭的效果效果图:第一个界面(主界面)package 多界面跳转;import javax.swing.*;import java.awt.*;import java.awt....原创 2020-02-26 02:03:23 · 2712 阅读 · 0 评论 -
Java GUI的消息对话框JOptionPane(方法解释+程序解释)+ConfirmDialog+MessageDialog
(ConfirmDialog)确认对话框小栗子:下面的代码实现了在确认关闭窗口的时候,调出一个确认是否关闭的对话框。效果图。package MyJOptionPane;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;import ja...原创 2020-02-25 23:19:30 · 544 阅读 · 0 评论 -
GUI知识整理
文章目录Swing Basics (Swing基本组件)基本组件的介绍Container(容器)Frame(mainly)、Dialogue、WindowOther ContainerData(数据类型)Controls(控件)Text(文本)Event-Driven Programming(事件驱动编程)JAVA事件处理机制:常见的事件监听器常见的用户行为、源对象和事件 对应关系Actio...原创 2020-02-21 13:16:55 · 636 阅读 · 0 评论