Java
文章平均质量分 94
新鑫S
没有资本你拿什么混社会!
展开
-
调用微信的内容安全接口(java实现)
使用URLConnection调用微信的内容安全接口(java实现)原创 2020-12-23 15:00:03 · 1587 阅读 · 4 评论 -
解决Tomcat中文乱码问题
我使用的是Tomcat-9.0.37,其他版本解决方法一样。Tomcat-9.0.37下载链接提取码:uokdtomcat启动的时候控制台中文出现乱码,如图所示:首先打开tomcat目录,找到conf下的server.xml和logging.properties文件,如图所示:右击用记事本打开,建议使用代码编辑器(在文字编辑方面与Windows写字板功能相当。是一款开源、小巧、免费的纯文本编辑器)。npp.7.6.4.Installer(代码编辑器)下载链接提取码:naop在原创 2020-12-17 09:39:50 · 1829 阅读 · 1 评论 -
《十大排序算法》文章集锦
术语说明:稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面。不稳定 :如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面。内排序 :所有排序操作都在内存中完成。外排序 :由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行。时间复杂度 :耗费的时间。空间复杂度 :所需内存的大小。排序方法平均时间复杂度时间复杂度(最好情况)时间复杂度(最坏情况)空间复杂度稳定性冒泡排序O(n2)O(n^2)O(n2)O(n)O(原创 2020-11-27 08:27:48 · 196 阅读 · 0 评论 -
排序算法——基数排序
排序算法——基数排序基数排序的工作原理是将数按位数切割成不同的数字,然后按每个位数分别比较。首先根据个位数的数值,将它们分配至0到9的桶中,接下来将这些桶中的数值重新串接起来再根据十位数的数值,将他们分配至0到9的桶中,接下来就是百、千、万……以此类推持续进行直至最高位数为止。例如一组数组{111111111,22222222,3333333,444444,55555,6666,777,88,9},先按个位数分配至0到9的桶中并重新串接起来得到{111111111,22222222,3333333,原创 2020-11-25 15:34:16 · 209 阅读 · 0 评论 -
排序算法——桶排序
排序算法——桶排序桶排序的工作原理是将数组分到有限数量的桶里,每个桶再分别排序。桶排序利用函数的映射关系,减少了几乎所有的比较工作。实际上,桶排序的(arr[i]-min)/(arr.length)值的计算,其作用就相当于快排中划分,已经把大量数据分割成了基本有序的数据块(桶)。然后只需要对桶中的少量数据做比较排序即可。例如一组数组{99,88,77,66,55,44,33,22,11},先计算出桶数(max-min)/arr.length+1=(99-11)/9+1≈10.778,截取整数部分(不原创 2020-11-25 10:35:00 · 317 阅读 · 0 评论 -
排序算法——计数排序
排序算法——计数排序计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,快于任何比较排序算法。 这是一种牺牲空间换取时间的做法,当O(k)>O(nlog(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O(nlog(n)))。例如一组数组{9,8,7,6,5,4,3,2,1},先获取极大值9和极小值1的极值差+1也就是9,用于存放数组元素出现次数的长度。再获取极小值1到极大值9的整数出现次数得到数组{1,1,1,1,1,1,1,1,1原创 2020-11-23 16:30:32 · 161 阅读 · 0 评论 -
排序算法——堆排序
排序算法——堆排序堆排序是利用堆这种数据结构所设计的一种排序算法。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。升序采用大顶堆,降序采用小顶堆。大顶堆:arr[i] > >= arr[2i+1] && arr[i] >= arr[2i+2];小顶堆:arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2]。例如一原创 2020-11-18 16:37:46 · 1420 阅读 · 0 评论 -
排序算法——归并排序
排序算法——归并排序归并排序是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。例如一组数组{9,8,7,6,5,4,3,2,1}使用归并排序顺序排序,可分割为{9,8,7,6,5}和{4,3,2,1},{9,8,7,6,5}可分割为{9,8,7}和{6,5},{9,8,7}可分割为{9,8}和{7},{9,8}可分割为{9}和{8},对{9}和{8}归并得到{8,9},第一趟数组完原创 2020-11-05 16:54:28 · 213 阅读 · 0 评论 -
排序算法——快速排序
排序算法——快速排序快速排序通过一趟排序将待排序序列分隔成独立的两部分,其中一部分序列的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。它的工作原理:设两个变量low(低)、high(高),排序开始时low=0(第一位的索引),high=length-1(最后一位的索引)。整个待排序序列中选一个基准数据,所有元素比基准数据小的摆在基准数据左边,所有比基准数据大的摆在基准数据右边。默认第一个数据为基准数据,赋值给temp,即temp=array[low];再循环从右至原创 2020-10-27 15:24:27 · 579 阅读 · 0 评论 -
排序算法——选择排序
排序算法——选择排序选择排序是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。在其实现过程使用双层循环,内层循环在待排序列表中找到最小(大)元素,外层循环将待排序列表中找到的最小(大)元素与有序列表中的末尾交换位置。例如一组数组{9,8,7,6,5,4,3,2,1}使用选择排序顺序排序,在待排序列表{9,8,7,6,5,4,3,2,1}中原创 2020-10-15 11:04:29 · 667 阅读 · 0 评论 -
排序算法——插入排序
排序算法——插入排序插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。对于少量元素的排序,它是一个有效的算法。插入排序是从第二个元素开始与第一个元素作比较,第二个元素小于第一个元素就把第二个元素插入到第一个,以此类推。例如一组数组{9,8,7,6,5,4,3,2,1},先以第二个数8进行比较,比较前面的数也原创 2020-09-24 10:53:27 · 295 阅读 · 0 评论 -
将eclipse项目打包成War包部署在Tomcat中运行
使用eclipse时,将eclipse项目打包成war包部署在tomcat中会比较方便一些。一、了解war包与tomcat服务器1、war包打成war包不会缺少目录,通常是一个网站Project所有源码的集合,里面包含HTML/CSS/JS的代码,也包含Java的代码。开发人员在自己的开发工具上调试所有代码并通过后,为了交给测试人员测试或进行产品发布,都会将开发人员的源码打包成War进行发布。War包可以放在Tomcat下的webapps目录下,随着Tomcat服务器的启动,War包可以自动被.原创 2020-09-17 19:28:39 · 5250 阅读 · 1 评论 -
二维码生成源码
二维码生成源码链接: https://pan.baidu.com/s/1UQUYs3YqaAYLBiBqEe4nSw 提取码: 1pvs转载 2020-01-06 08:25:58 · 3994 阅读 · 0 评论 -
Java过滤器
Java过滤器过滤器能够对目标资源的请求和响应进行截取。过滤器,顾名思义,就是把不符合规则的请求、响应进行拦截或修改。过滤器是处于客户端与服务器之间的一道过滤网,从客户端发出的请求先在第一个filter进行过滤,然后在filter链中的下一个filter进行过滤,直至filter链中的所有filter都通过了才可以访问资源文件。过滤器通常是用来处理请求(request),也可以对返回的响应...原创 2019-08-17 20:05:17 · 400 阅读 · 0 评论 -
Java反射机制
反射机制反射机制:在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性(包括私有的方法和属性)进行调用。这种动态获取对象信息和调用对象方法的功能称之为反射机制。反射其实是获取类的字节码文件,也就是.class文件,那么就可以通过Class这个对象进行获取。反射的四种方式public static void main(Strin...原创 2019-08-16 11:31:31 · 169 阅读 · 0 评论 -
排序算法——希尔排序
排序算法——希尔排序希尔排序:是直接插入排序算法的一种更高效的改进版本。又称“缩小增量排序”(Diminishing IncrementSort)。希尔排序是非稳定排序算法。先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量为1,即所有记...原创 2019-08-06 20:48:23 · 1208 阅读 · 0 评论 -
排序算法——冒泡排序
排序算法——冒泡排序冒泡排序:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的比较,从开始的第一对到结尾的最后一对。通过每一趟的比较,最后的元素是最大的数。针对所有的元素重复以上的步骤,除了最后一个。每趟的比较次数会越来越少,直到没有任何一对数字需要比较。冒泡排序就是通过每趟排序过程中的两两比较,找到最大的元素,将其往后排。例如一组数组{9,8,7,6,5,...原创 2019-08-06 20:06:29 · 1186 阅读 · 0 评论 -
Java中double或float运算丢失精度问题
java中double或float运算丢失精度问题计算机内部是用的是二进制码,当输入float或者double类型的十进制数进行运算的时候,会先转化成二进制数再进行运算,最后在转化为十进制输出。然而有些数字不能完全转化成二进制,计算机只能将结果无限趋近于原本十进制的数值,故会出现精度丢失的问题。举例:public static void main(String[] args) { do...原创 2019-07-17 10:10:03 · 1562 阅读 · 0 评论 -
Java实现数据库构建树形
Java实现数据库构建树形根据数据库中数据结构来构建树形,至少需要三个字段。ParentID:指的是该节点的节点id;SonID:指的是该节点的父节点id;NodeName:节点的名称。如下图可见第二条和第三条数据的SonID是第一条数据的ParentID,因此节点1和节点2的父节点是0。数据库录入数据后,接下来需要一个方法将数据传递给jsp,方法中先创建一个list集合,list集...原创 2019-07-07 10:48:13 · 2441 阅读 · 0 评论 -
Java新增图片至mysql
java新增图片至mysql在form表单中上传图片,必需设置enctype=“multipart/from-data”,如下:<form ction="${ctx}/servlet/MainServlet?type=insert " method="post" enctype="multipart/form-data"> <input type="file" name="...原创 2019-07-06 21:27:33 · 562 阅读 · 0 评论 -
Java运行期出现错误的处理
Java运行期出现错误的处理运行期错误指在执行代码时输出窗口会出现错误。对于这种错误最重要的是观察错误的名字和行号。例:执行结果:执行的结果可以看出java.lang.ArrayIndexOutOfBoundsException: 3是错误的名字,Demo.java:6是错误的行号。由此可见,数组的索引3超出了边界,在第6行出现的错误,把3改为数组A中存在的索引就OK了。...原创 2019-04-20 18:59:40 · 301 阅读 · 0 评论 -
Java基本数据类型
Java基本数据类型一、数字类型1) 整数型bytebyte数据类型是8位(bit)、有符号的以二进制补码表示的整数;最小值是-128(-2^7);最大值是127(2^7-1);默认值是0。shortshort 数据类型是 16 位、有符号的以二进制补码表示的整数;最小值是 -32768(-2^15);最大值是 32767(2^15 - 1);Short 数据类型可以节省...转载 2019-04-20 19:40:21 · 110 阅读 · 0 评论 -
Java迭代器
Java迭代器Java迭代器迭代器(Iterator)的作用是循环的代换。使用迭代器(Iterator)举例:① 迭代器while遍历Iterator<类型名> 迭代器名 = 列表名.iterator();while (迭代器名.hasNext()) {//判断是否有下一个元素 System.out.println(迭代器名.next());//获取下一个元素}②...原创 2019-04-20 20:19:20 · 508 阅读 · 0 评论 -
Java循环语句
一、 for循环格式:for(初始化; 布尔表达式; 更新) { //代码语句}例:二、 while循环格式:while( 布尔表达式 ) { //循环内容}例:三、 do…while循环格式:do { //代码语句}while(布尔表达式);例:四、 Java增强型for循环Java5 引入了一种主要用于数组的增强型for循环。但需要注意一点:...原创 2019-04-13 18:15:18 · 1618 阅读 · 0 评论 -
Java集合工具类:Collections
Java提供了一个操作Set、List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象实现同步控制等方法。一、 排序1. reverse:反转指定列表中元素的顺序Collections.reverse(List list)2. shuffle:使用默认随机源对指定列表进行置换Collections.sh...原创 2019-04-14 10:34:09 · 237 阅读 · 1 评论 -
Java基础语法
一、基本语法大小写敏感:Java是大小写敏感的。类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成, 那么每个单词的首字母应该大写。方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后 面的每个单词首字母大写。源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用public类的类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为....原创 2019-04-14 15:36:02 · 123 阅读 · 0 评论 -
JavaIO流
IO流分为六种概念:输入流、输出流、字节流、字符流、节点流和处理流。可以方便地实现数据的输入/输出操作。不同的输入/输出源(键盘、文件、网络连接等)抽象表述 为“流”(stream)。一、 流的分类输入流:只能从中读取数据,而不能向其写入数据。由InputStream和 Reader作为基类。输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为...原创 2019-04-30 21:41:35 · 219 阅读 · 0 评论 -
Java复制文件夹中的所有文件、目录注意
1. 以下的代码可以用来复制文件夹中的所有文件、目录。但目的目录是源目录的子目录就不行了,会死循环调用。import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public class test { public stat...原创 2019-04-30 23:45:52 · 7144 阅读 · 1 评论 -
Java连接MySql数据库
java连接mysql数据库首先需要New一个Web Project项目,再把mysql-connector-java-5.1.22-bin.jar驱动拖到项目中,使用com.mysql.jdbc.Driver类,通过java.lang.class的forName(String className)方法实现加载驱动程序。Class.forName("com.mysql.jdbc.Dri...原创 2019-05-16 17:44:58 · 354 阅读 · 0 评论 -
Java Web登录
Java Web登录在Java Web项目中Servlet就相当于控制器,JSP就相当于视图。登录主要分为两部分,提交,判断。先将JSP中输入的用户名和密码提交到Servlet,再在Servlet中进行判断。JSP的表单提交:<body> <form action="pageContext.request.contextPath/servlet/UserServlet...原创 2019-05-17 08:14:08 · 363 阅读 · 0 评论 -
Java表格页跳转
Java表格页跳转表格页跳转需要用到四个参数:数据的总条数,数据的总页数,页大小,当前页。在jsp中用<c:if>标签判断当前页是否大于1,大于1添加首页和上一页的a标签,再判断当前页是否小于总页数,小于尾页添加下一页和尾页的a标签。a标签的链接定位至servlet,把当前页和页大小两个参数传过去。<c:if test="${pagination > 1}">...原创 2019-06-05 14:52:28 · 447 阅读 · 0 评论 -
Java项目的目录结构
一、Common包Common用来封装一些常用的公共方法。二、Dao包Dao主要用来封装对数据库的新增,删除,查询,修改。叫做数据访问层。三、Service包服务层,相比Dao较高层次,可将多种方法封装起来。四、Po包(Persistant Object)Po将数据库表中的记录在java对象中。也就是一个Po就是一个数据库表中的一个记录。五、Vo包(value object)和P...原创 2019-06-04 10:03:22 · 37172 阅读 · 4 评论 -
Java的核心标签C标签
Java的核心标签C标签C标签共有14个,分为四类:表达式控制标签、流程控制标签、循环标签、URL操作标签。C标签在JSP页面使用,减少编码工作,首先需要引入核心标签库。<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>一、表达式控制标签<c:out>该标签主要用来显示一个...原创 2019-06-04 21:39:38 · 1019 阅读 · 0 评论 -
Java自动生成编号
Java自动生成编号在新增数据时,往往需要自动生成编号。下面就以我的编号来说。我的编号格式为:SR+日期(8位)+编号(3位)。其中,日期为系统当前的日期。首先获取系统当前日期,然后根据日期格式将date类型转换成String类型即可。SimpleDateFormat f = newSimpleDateFormat("yyyyMMdd");//设置日期格式String date = f...原创 2019-06-17 10:07:49 · 25317 阅读 · 2 评论 -
Java导出Excel表格
Java导出Excel表格导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到。第一步,创建Excel对象。HSSFWorkbook workbook = new HSSFWorkbook();创建一个工作表。HSSFSheet sheet = workbook.createSheet("日常收入报表");创建合并单元格对象。第一个参数:起始行;第二个参数:...原创 2019-06-17 10:20:00 · 471 阅读 · 0 评论 -
Java集合
Java集合Java是面向对象语言,面向对象语言对事物的体现都是以对象的形式,集合是存储对象最常用的一中方式,方便对多个对象操作。虽然数组也可以存储对象,但数组的长度是固定的,集合长度是可变的。集合主要分三种:List、Set、Map。一、List集合List集合:元素有序、可重复的集合。List集合默认按元素的添加顺序设置元素的索引并排序。List<String> l...原创 2019-06-26 11:12:54 · 212 阅读 · 0 评论 -
Java之MD5加密
Java之MD5加密MD5加密用来对字符串加密,不可以逆转解密。加密之后默认为32位的十六进制。在MySql中可以直接使用MD5函数,如下:修改密码为字符串“ZYJ”的MD5加密。从下图可以看出使用MD5加密字符串“ZYJ”为9d2dc2f4168f1121bf8c2dd6879abcf4,是一串32位的十六进制。因此在设计表时,对于需要进行MD5加密的字段长度需大于32。在My...原创 2019-06-26 20:44:51 · 306 阅读 · 0 评论 -
新建Java
一、不使用MyEclipse(IDE)1. 在任意盘根目录新建一个文本文档,文件名的后缀为.java。2. 使用文本编辑器打开文件,把代码写入(注:文件名与class名一致)。3. 打开cmd命令窗口,进入目标文件所在的位置。4. 在命令行窗口输入javac 文件名.java 按下回车键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行,并且在该文件所在目录新建一个后缀名为.cl...原创 2019-04-05 18:18:44 · 688 阅读 · 0 评论