202105-26 Java实战之实现一个好用的MybatisPlus代码生成器 一、先看下项目结构CodeGenerator:生成器主类resources下的mapper.java.vm:一个模板类,用以在生成dao层时按模板来生成代码比如我们想把代码按如下目录来生成:代码层代码生成位置Controller层com.yinchd.web.controllerService层com.yinchd.web.serviceService实现类... 继续阅读 >
202105-26 Java实现五子棋游戏 本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下一、功能分析五子棋的实现还是较为简单的,通过下期的流程我们可以知道大概要实现一下功能:1、格界面2、点击下棋3、悔棋4、判断输赢二、功能实现根据之前的功能分析,要有网格先要有窗体,我们先重新写一个类,来继承JFrame类,以便在窗口变动的情况下,对窗口进行重绘(防止在窗口大小发生改变的时候,之前的绘画会消失),这里我们重写paint方法,... 继续阅读 >
202105-25 Java基础之finally语句与return语句详解 一、return语句执行顺序finally语句是在return语句执行之后,return语句返回之前执行的packageexception;publicclassDemo06{publicstaticvoidmain(String[]args){System.out.println(func());}publicstaticintfunc(){inta=10;try{System.out.println("try中的代码块");returna+=10;}catch(Exceptione){System.out.println("... 继续阅读 >
202105-25 java仿QQ微信聊天室功能的实现 话不多说,先上图 即时通信系统:可以完成群聊、私人聊天,实时发送和显示聊天信息,完成好友列表,进一步可以带表情,附件发送,聊天信息的传送,等系统的主要技术socket通信技术,多线程技术,数据库技术。本系统实现的功能有:1.用户名字登录2.用户之间的群聊和查看群聊记录3.用户之间的私... 继续阅读 >
202105-25 Java多线程之Park和Unpark原理 一、基本使用它们是LockSupport类中的方法//暂停当前线程LockSupport.park();//恢复某个线程的运行LockSupport.unpark(暂停线程对象)应用:先park再unparkThreadt1=newThread(()->{log.debug("start...");sleep(1);log.debug("park...");LockSupport.park();log.debug("resume...");},"t1");t1.start();sleep(2);log.debug("unpark...");LockSupport.unpark(t1);... 继续阅读 >
202105-25 Java实现的具有GUI的校园导航系统的完整代码 0.写在前面2020-5-18更新这个东西已经是两年前的了,现在问我具体细节我也不是很清楚了,而且现在review两年前的代码感觉写的好烂。。。请大家有问题下面留言,不要加我的企鹅了,正在准备考研,比较忙。一点建议:1.当时会的比较少,对象实例化对于单纯的数据查询来说效率极低而且很蠢,我现在更建议使用数据库,或者简单点用xmlorjson都可以,建议想写的好一点的同学把里面的数据读写逻辑改一改,用数据库不香吗2.这个是分客户端... 继续阅读 >
202105-25 Java简单实现定时器 本文实例为大家分享了Java简单实现定时器的具体代码,供大家参考,具体内容如下一、定时器定时器相当于一个任务管理器。有些任务可能现在执行,有些任务可能过1个小时,甚至很久才会执行。定时器就是对这些任务进行管理监视,如果一个任务执行时间到了,定时器就会将这个任务执行。保证所有的任务都会在合适的时间执行。二、定时器的实现对于定时器的实现,我们可以划分为3个部分。1、使用一个Task类描述每一个任务(里面包含... 继续阅读 >
202105-25 Java简单实现线程池 本文实例为大家分享了Java简单实现线程池的具体代码,供大家参考,具体内容如下一、线程池线程池是一种缓冲提高效率的技术。相当于一个池子,里面存放大量已经创建好的线程,当有一个任务需要处理时,可以直接从池子里面取一个线程去执行它。包括内存池,很多缓冲的技术都是采用这种技术。其实理解起来很简答!为什么需要线程池,这种池的技术?1.1减少开辟资源和销毁资源带来的损耗。开辟线程,申请内存(具体的可以看C语言中... 继续阅读 >
202105-25 Java ShutdownHook原理详解 ShutdownHook介绍在java程序中,很容易在进程结束时添加一个钩子,即ShutdownHook。通常在程序启动时加入以下代码即可Runtime.getRuntime().addShutdownHook(newThread(){@Overridepublicvoidrun(){System.out.println("I'mshutdownhook...");}});有了ShutdownHook我们可以在进程结束时做一些善后工作,例如释放占用的资源,保存程序状态等为优雅(平滑)发布提供手段,在程序关闭前摘除流量... 继续阅读 >
202105-25 Java 改造ayui表格组件实现多重排序 实现思路也比较简单,只需要用一个数组来存放所有排序的列,再把这个数组传到后端(后端排序)进行排序即可。沿用一般的使用习惯,按住shift 键点击表头可增加排序列,按住ctrl 键点击表头可减少排序列。话不多说,先上最终效果图:1.定义排序列数组我当前用的是2.5.6版本,源码之前为适应业务需求也做过相应修改,所以下文说到的行数只是个大概数。为兼容之前单列排序的使用习惯,我们增加一个multiSort的配... 继续阅读 >
202105-25 java内部类的定义与分类示例详解 内部类基本介绍一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(innerclass),嵌套其他类的类称为外部类(outerclass)。是我们类的第五大成员,内部类最大的特点就是可以直接访问私有属性,并且可以体现类与类之间的包含关系基本语法:classOuter{classInner{}}内部类的分类:1.定义在外部类局部位置上(比如方法内):1).局部内那类(有类名)2).匿名内部类(没有类名,重点);定义在外部类的成员位置上:1)成员内... 继续阅读 >
202105-25 Java基础之Comparable与Comparator概述 自然排序Comparable对于自定义类进行排序要实现Comparable接口,重写compareTo()方法,如果不重写,像使用Arrays.sort()排序就会报错packagecom.che.lambda;importjava.util.Objects;/***@authorcheyuhangon2021/4/23*/publicclassGoodimplementsComparable{privateStringname;privateDoubleprice;publicGood(Stringname,Doubleprice){this.name=name;this.price=price;... 继续阅读 >
202105-25 Java多线程之深入理解ReentrantLock 前言保证线程安全的方式有很多,比如CAS操作、synchronized、原子类、volatile保证可见性和ReentrantLock等,这篇文章我们主要探讨ReentrantLock的相关内容。本文基于JDK1.8讲述ReentrantLock.一、可重入锁所谓可重入锁,即一个线程已经获得了某个锁,当这个线程要再次获取这个锁时,依然可以获取成功,不会发生死锁的情况。synchronized就是一个可重入锁,除此之外,JDK提供的ReentrantLock也是一种可重入锁。二、ReentrantLock2.... 继续阅读 >
202105-25 OpenJDK源码解析之System.out.println详解 一、前戏可能不少小伙伴习惯在代码中使用sout打印一些信息,就像这样:System.out.println("helloworld!")做为一位资深干码人,本着弘扬党求真务实的精神,必须得来看看这个sout有何玄机~~首先看调用就知道,out是System类的一个公共静态成员变量,进入System.java中:publicfinalstaticPrintStreamout=null;嗯,不止是public,还是final的。不管,来找找out是在哪里赋值的。。。。。。日嘛找半天没找到?那就试试直接在类... 继续阅读 >
202105-25 JAVA实现的CrazyArcade泡泡堂游戏 项目地址https://github.com/SCNU-A225/CrazyArcade示例图片项目结构frame:包含如开始、游戏中、结束的JFramemain:包含程序入口和其它游戏控制model:model.loader:包含资源加载器用于读取配置文件等信息,使用了单例设计模式model.manager:包含元素管理器、工厂等,用于控制游戏各元素model.vo:各种实体类,包括玩家、NPC、炸弹、方块等等pro:配置文件目录,包含人物... 继续阅读 >
202105-25 Java实现的迷宫游戏 完整项目地址:https://github.com/richenyunqi/Maze-game软件总体框架该软件主要分为如下三个模块:参数设置模块按钮功能模块按钮功能模块迷宫主界面模块迷宫主界面模块软件各模块介绍参数设置模块1.迷宫大小相关参数:ROWS(即迷宫行数,默认设置为奇数,最小值为11,最大值为99,默认值为11);COLS(即迷宫列数,默认设置为奇数,最小值为11,最大值为99,默认值为11);Lattice'swidth(即组成... 继续阅读 >