202009-24 Java实现五子棋(附详细源码) 本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下学习目的:熟悉java中swing类与java基础知识的巩固.(文末有源代码文件和打包的jar文件)效果图:思路:**1.首先构建一个Frame框架,来设置菜单选项与按钮点击事件。MyFrame.java文件代码如下packageStartGame;importjavax.swing.ButtonGroup;importjavax.swing.Icon;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JMenu... 继续阅读 >
202009-24 Java通过What、Why、How了解弱引用 本篇文章尝试从What、Why、How这三个角度来探索Java中的弱引用,帮助大家理解Java中弱引用的定义、基本使用场景和使用方法。由于个人水平有限,叙述中难免存在不准确或是不清晰的地方,希望大家可以指出,谢谢大家:)What——什么是弱引用?Java中的弱引用具体指的是java.lang.ref.WeakReference<T>类,我们首先来看一下官方文档对它做的说明:弱引用对象的存在不会阻止它所指向的对象被垃圾回收器回收。弱引用最常见的用途是实现... 继续阅读 >
202009-24 通过实例了解Java Integer类和int的区别 代码实例如下publicstaticvoidmain(String[]args){Integeri=10;Integerj=10;System.out.println(i==j);Integera=128;Integerb=128;System.out.println(a==b);intk=10;System.out.println(k==i);intkk=128;System.out.println(kk==a);Integerm=newInteger(10);Integern=newInteger(10);System.out.println(m==n);}我们使用反编译工具Jad,得到的... 继续阅读 >
202009-24 简单了解JAVA SimpleDateFormat yyyy和YYYY的区别 最近有一个功能是对输入的日期格式化,设计给出的范例是YYYY-MM-ddHH:mm:ss,于是我简单验证了一下是可以的,然后就这么在手册里写了。然后偶然发现有地方也用yyyy啊,这个到底有神马区别啊,还是随便用呢。看了下jdk,这么说的:也就是说Y表示的是Weekyear,可是,这个Weekyear又是什么。。jdk文档贴心地给出了Examples,然而并没有什么卵用。。经过试验,得出的结果如下:Weekyear意思是当天所在的周属于的年份,一周从周日... 继续阅读 >
202009-24 Java try-with-resource语法使用解析 背景众所周知,所有被打开的系统资源,比如流、文件或者Socket连接等,都需要被开发者手动关闭,否则随着程序的不断运行,资源泄露将会累积成重大的生产事故。在Java的江湖中,存在着一种名为finally的功夫,它可以保证当你习武走火入魔之时,还可以做一些自救的操作。在远古时代,处理资源关闭的代码通常写在finally块中。然而,如果你同时打开了多个资源,那么将会出现噩梦般的场景:publicclassDemo{publicstaticvoidma... 继续阅读 >
202009-24 Java8内存模型PermGen Metaspace实例解析 一、JVM内存模型根据JVM规范,JVM内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,会抛出StackOverflowError的错误,... 继续阅读 >
202009-24 Java类加载机制实现步骤解析 一、类的加载过程JVM将类的加载分为3个步骤:1、装载(Load)2、链接(Link)3、初始化(Initialize)其中链接(Link)又分3个步骤,如下图所示:1)装载:查找并加载类的二进制数据(查找和导入Class文件)加载是类加载过程的第一个阶段,在加载阶段,虚拟机需要完成以下三件事情:1、通过一个类的全限定名来获取其定义的二进制字节流。2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。3、在Java堆中生成一个... 继续阅读 >
202009-24 Java list如何根据id获取子节点 工作中因业务需求,将数据库中的树状结构的数据根据父节点获取所有的子节点实现思路1.获取整个数据的list集合数据2.将数据分组,java8list有groupby分组,java8之前的自己遍历整理3.分组后递归获取子节点,有子节点的添加,没有的设置子节点并删除分组的数据,知道分组数据删完Tree.java@DatapublicclassTree{privateIntegerid;privateIntegerpId;privateStringkey;privateStringvalue;privateList<Tree>c... 继续阅读 >
202009-24 Java批量从svn导出多个项目代码实例 近期工作中要对很多项目加相同的依赖,需要将很多项目都从svn导出,感觉一个个导太慢了,由于不会写脚本就从晚上找到svn拉代码的程序,稍作修改很快就拉完了所有代码。直接上必要代码必要pom<dependency><groupId>org.tmatesoft.svnkit</groupId><artifactId>svnkit</artifactId><version>1.10.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.8</... 继续阅读 >
202009-24 Java Spring项目国际化(i18n)详细方法与实例 Spring国际化概述国际化基本规则国际化信息”也称为“本地化信息”,一般需要两个条件才可以确定一个特定类型的本地化信息,它们分别是“语言类型”和“国家/地区的类型”。如中文本地化信息既有中国大陆地区的中文,又有中国台湾、中国香港地区的中文,还有新加坡地区的中文。Java通过java.util.Locale类表示一个本地化对象,它允许通过语言参数和国家/地区参数创建一个确定的本地化对象。语言参数使用ISO标准语言代码表示,这些... 继续阅读 >
202009-24 Java 冻结或解除冻结Excel中的行和列的方法 当Excel表格中有大量数据时,为了方便浏览,我们可通过冻结窗口这一功能将某几行或某几列的数据冻结起来,这样在我们滚动窗口时,这几行或几列的数据就会被固定住,而不会随着其他单元格的移动而移动。总的来说,Excel冻结窗口可细分为三类:冻结行、冻结列及同时冻结行和列。本文将通过使用Java程序来演示如何冻结或解除冻结Excel中的行和列。使用工具:FreeSpire.XLSforJava(免费版)Jar文件获取及导入:方法1:通过官网下载... 继续阅读 >
202009-24 Java使用MySQL实现连接池代码实例 官方:数据库连接池(Connectionpooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对连接池中的连接进行申请,使用,释放。理解:创建数据库连接池是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接池,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加的安全可靠。手动配置连接池:/***手动设置连接池*/pub... 继续阅读 >
202009-24 Java后台基于POST获取JSON格式数据 1、直接使用request.getParamater()的方法获取(这种取参方式对于POST和GET的提交方式均适用);2、通过请求体的IO流获取参数(这种方式只能用于POST,因为GET方式没有请求体);Strings="";InputStreamin=null;BufferedInputStreambin=null;try{in=request.getInputStream();bin=newBufferedInputStream(in);intlen=0;byte[]b=newbyte[1024];while((len=bin.read(b))!=-1){s+=newStrin... 继续阅读 >
202009-24 Java Map.Entry的使用方法解析 在Map类设计是,提供了一个嵌套接口(static修饰的接口):Entry。Entry将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历Map集合时,就可以从每一个键值对(Entry)对象中获取对应的键与对应的值。代码如下publicstaticvoidmain(String[]args){Map<String,Object>map=newHashMap<String,Object>();map.put("1",1);map.put("2",2);map.put("3",3);map.put("4",4);map.put("5",... 继续阅读 >
202009-24 Java后台判断ajax请求及处理过程详解 一、问题描述:当访问一个需要登录的页面时,会有过滤器或者拦截器进行过滤拦截,如果用户没有登录,则跳转到登录页面。当用户已经登录进入系统后,然后长时间没操作,等到session过期后,再点击一个ajax请求操作时,这时再跳转到登录页面就不合适了,因为这是ajax操作,拦截后跳到页面返回的结果js识别不了。二、解决方法:在过滤器或者拦截器上做识别,针对页面跳转请求和ajax请求分别处理。页面跳转的不再详说,现在说的是ajax... 继续阅读 >
202009-24 Java管道流实现线程间通信过程解析 管道流在Java语言中提供了各种各样的输入/输出流Stream,使我们能够很方便地对数据进行操作,其中管道流是一种特殊的流,用于在不同线程间直接传送数据。一个线程发送数据到输出管道流,另一个线程从输入管道流中读取数据。通过使用管道,实现不同线程间的通信,而无须借助于类似临时文件之类的东西。字节流PipedInputStream和PipedOutputStream字符流PipedReader和PipedWriter示例publicclassPipeStreamTest{publicst... 继续阅读 >