202009-24 java编写一个花名随机抽取器的实现示例 一.程序效果还记得以前上课的时候,老师会用自己写的一个抽取器抽取同学回答问题,当时想着我也要做一个,假期没事干,自学了java,闲来无聊,我也写一个,但是写的没有老师好,哈哈,好了说一下思路,先把界面布置好,然后逐一实现每个按钮的功能,其实也没什么难的。二.需要用到的包importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;importjava.io.*;importjava.util.*;三.代码1.相关实例对象,所以对象均为全... 继续阅读 >
202009-24 基于Java的Socket多客户端Client-Server聊天程序的实现 任务要求编写一个简单的Socket多客户端聊天程序:客户端程序,从控制台输入字符串,发送到服务器端,并将服务器返回的信息显示出来服务器端程序,从客户机接收数据并打印,同时将从标准输入获取的信息发送给客户机满足一个服务器可以服务多个客户低配版本链接实现代码工具类importjava.io.DataOutputStream;importjava.io.IOException;importjava.io.OutputStream;importjava.net.Socket;publicclassSocketUtils{pu... 继续阅读 >
202009-24 基于Java的Socket编写的C/S聊天程序实现 一个很久以前写的能够支持C/S模式聊天的Demo,利用Java的Socket写的。只能聊一句就下线,挺low的。服务器端程序Serverimportjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.ServerSocket;importjava.net.Socket;publicclassTestTcpServer{publicstaticvoidmain(String[]args){ServerSocketss=null;BufferedReaderin=null;try{ss=newServerSo... 继续阅读 >
202009-24 java.lang.Runtime.exec() Payload知识点详解 有时,通过Runtime.getRuntime().exec()执行命令的有效负载有时会失败。使用WebShell,反序列化利用或通过其他媒介时,可能会发生这种情况。有时这是因为重定向和管道字符的使用在启动过程的上下文中没有意义。例如,在shell中执行ls>dir_listing会将当前目录的列表输出到名为dir_listing的文件中。但是在exec()函数的上下文中,该命令将被解释为获取>和dir_listing目录的列表。有时,StringTokenizer类会破坏其中包含空格的参数... 继续阅读 >
202009-24 java将String字符串转换为List<Long>类型实例方法 在一些应用场景当中,我们可能会遇到以下的场景,我们要使用的类型是List类型,但是接收到的参数是Stirng类型如1,2,3,4等这样的形式那么我们可以通过采用以下的代码完成以上需求的转换privatestaticLoglog=LogFactory.getLog(Demo.class);@Testpublicvoidtest(){Stringids="1,3,5,7,9";//首先去除空格StringidsWithNoBlank=ids.replaceAll("+","");//其次使用分隔符将代码字符分开S... 继续阅读 >
202009-24 Java对象不使用时赋值null的意义详解 先看代码publicclassTestDemo1{publicstaticvoidmain(String[]args){if(true){byte[]placeHolder=newbyte[64*1024*1024];System.out.println(placeHolder.length/1024);}System.gc();}}idea配置gc日志打印运行上面的代码,载图gc日志现在我们修改上面的测试代码,将placeHolder置为nullpublicclassTestDemo1{publicstaticvoidmain(String[]args){if(true){... 继续阅读 >
202009-24 java实现文件重命名功能 本文实例为大家分享了java实现文件重命名的具体代码,供大家参考,具体内容如下使用javai/o流读取文件夹中的所有的文件,并实现按照指定的规则进行重命名1.直接建一个util类,来进行创建两个重命名的方法:packagereName;importjava.io.File;publicclassutil{/***用于将文件名按照指定数字往后排*@paramstartNum*@paramurl*/publicstaticvoidsort(intstartNum,Stringurl){Filefile=newFile(url);Fil... 继续阅读 >
202009-24 java实现文件重命名 背景我们经常在网上下载一些视频教程,然而这些视频命名规则各不相同,即使对于相同类型的文件名来说,当文件数量很大且文件名全部是中文时,文件排序是非规则的,因此本篇博客主要讲解一种改变文件夹名称使得文件按照规律进行排序。思路根据文件名对文件进行排序,然后重命名文件即可。代码规则:如将文件名中带有“第八讲”替换成“8”:构建排序规则/****@paramfilePath文件夹位置*@paramstartWorld开始替换的字*@p... 继续阅读 >
202009-24 Java web三件套listener、filter、servelt原理解析 一、listener、filter、servelt的执行顺序和生命周期1、启动顺序想知道web三大件的启动顺序其实只需要查看启动日志就好了,启动顺序为:listener、filter、servelt2、生命周期查看结束和运行时候的日志不难发现:1>listener的生命周期:一直从程序启动到结束,其中:ServletRequestListener(用来监控session的创建,销毁等):每次访问一个Request资源前,都会执行requestInitialized()方法,方法访问完毕,都会执行r... 继续阅读 >
202009-24 Java小程序赛马游戏实现过程详解 这是当时做的一个小游戏,大概就是程序开始后,会进入用户登录界面,用户输入自己的姓名和密码后,选择登录会进入到赛马比赛的界面,这时可以看见赛马场和马匹的编号,用户可以选择任何一个编号的马进行投注,输入有效的投注金额(因为系统设置了初始金额,所以不得投注的超过初始金额)。投注完成后用户可以选择开始比赛,赛马期间用户不得进行任何操作,赛马结束后,用户可以重新进行新一轮的赛马比赛,方法上同。程序流程图:一... 继续阅读 >
202009-24 Java Character类对单个字符操作原理解析 Character类用于对单个字符进行操作,该对象中包装一个基本类型char的值。Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,当你将一个char类型的参数传递给需要一个Character类型参数的方法时,这时编译器会自动将char类型参数转化为Character类型参数,这样我们可以称其为装箱,反之为拆箱。在Character类中,我们还需要了解转义序列(前面有反斜杠()的字符代表转义... 继续阅读 >
202009-24 Java web xml文件读取解析方式 其实解析xml文件有四种方式:DOM,JDOM,DOM4J,SAX。我们来说与平台无关的两种官方解析方式:DOM和SAX一、DOM解析在Java代码中,xml文件是标记型文档,这时用dom来解析xml文件dom会根据html的层级结构在内存中分配一个树形结构,把html的标签,属性和文本都封装成对象DOM解析步骤:1、使用newInstance方法,创建一个DocumentBuilderFactory的对象。2、创建一个DocumentBuilder对象,通过DocumentBuilder的对... 继续阅读 >
202009-24 Java均摊复杂度和防止复杂度的震荡原理分析 本文实例讲述了Java均摊复杂度和防止复杂度的震荡。分享给大家供大家参考,具体如下:关于上一节封装数组的简单复杂度分析方法中我们对添加操作的时间复杂度归结为O(n)是考虑了扩容操作(resize)在内的。就addLast(e)操作而言,时间复杂度为O(1),在考虑最坏情况下,每次添加均会触发扩容操作,需要移动n个元素,因此此时addLast操作的时间复杂度为O(n)。(1)addLast(e)均摊时间复杂度分析resize(n) O(n) 假设当... 继续阅读 >
202009-24 Java类加载连接和初始化原理解析 1、当程序使用某个类时,JVM将会完成以下这三个步骤2、连接1)验证验证是否是合法的字节码文件。验证JDK版本是否正确等。2)准备给成员变量(类变量/静态变量)赋默认值把常量(final)等值在方法区的常量池中给准备好。3)解析虚拟机常量池内的符号引用(常量名)替换为引用(地址)的过程3、初始化<clinit>类初始化<clinit>类初始化由两部分组成:(1)静态变量的显示... 继续阅读 >
202009-24 Java多线程synchronized同步方法详解 1、synchronized方法与锁对象线程锁的是对象。1)A线程先持有object对象的Lock锁,B线程可以以异步的方式调用object对象中的非synchronized类型的方法2)A线程先持有object对象的Lock锁,B线程如果在这时调用object对象中的synchronized类型的方法,则需要等待,也就是同步。2、脏读(DirtyRead)示例:publicclassDirtyReadTest{publicstaticvoidmain(String[]args){try{... 继续阅读 >
202009-24 Java针对封装数组的简单复杂度分析方法 本文实例讲述了Java针对封装数组的简单复杂度分析方法。分享给大家供大家参考,具体如下:完成了数组的封装之后我们还需对其进行复杂度分析:此处的复杂度分析主要是指时间复杂度分析,算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。1.简单概念在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同... 继续阅读 >