Java
文章平均质量分 70
Yuliang Feng
这个作者很懒,什么都没留下…
展开
-
整合SSM实例
地址:https://github.com/Feyl/ssm原创 2021-09-20 16:53:53 · 201 阅读 · 0 评论 -
JavaWeb 信息管理系统
InfoManagementSystem项目地址A simple student, teacher, class management system, based on JavaWeb and persistence layer handwritten ORM(simple MyBatis).页面实现:Semantic-UI、Html、CSS(Less)JSP(EL表达式、JSTL标签库):动态展示请求服务端获得的数据JQuery、Ajax:异步访问、页面的局部更新图1 登录页面登录功能:原创 2021-06-30 17:26:47 · 5590 阅读 · 8 评论 -
Maven
项目管理工具 Maven在学习Spring、SpringMVC、Mybatis之前需要对Maven项目管理工具有一定的了解,详细内容参见:获取Maven笔记-提取码:bq2p 菜鸟教程 Maven文档 2020最新Maven教程-Maven基础篇之Maven实战入门 思维导图。我们创建的JavaEE项目都会有一个Pom.xml文件。POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建原创 2021-06-30 17:17:19 · 127 阅读 · 0 评论 -
浅谈JavaWeb
客户端发送请求发送请求的方式用户使用浏览器可以通过以下几种常见方式向服务器发送请求:表单提交关于表单的更多信息参见MDN Web Docs-form点击页面上的超链接关于超链接的更多内容参见MDN Web Docs-a点击按钮触发JS函数,函数体内的语句对document.location \ document.location.href修改Document.location 是一个只读属性,返回一个 Location 对象,包含有文档的 URL 相关的信息,并提供了改原创 2021-06-30 17:15:37 · 210 阅读 · 0 评论 -
JavaWeb-Filter
FilterFilter:过滤器概念:生活中的过滤器:净水器,空气净化器…web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能。过滤器的作用:一般用于完成通用的操作。如:登录验证、统一编码处理、敏感字符过滤 …快速入门:步骤:定义一一个类,实现接口Filter复写方法配置拦截路径配置方式:web.xml注解@WebFilter("/*")//访问所有资源之前都会执行该过滤器public class FilterDemo impl原创 2021-04-27 21:31:36 · 133 阅读 · 0 评论 -
JSP-EL表达式语言/JSTL标签库使用
EL表达式概念:Expression Language 表达式语言作用:替换和简化jsp页面中java代码的编写语法:${表达式}注意:jsp默认支持el表达式的。如果要忽略el表达式:设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式\{表达式}:忽略当前这个el表达式使用:运算:运算符:算数运算符:+ - * / (div) % (mod)比较运算符:> < >= <= == !=逻辑运原创 2021-04-27 16:07:18 · 348 阅读 · 0 评论 -
基于单个服务器处理多用户消息的一对一聊天系统
问题介绍结合网络编程多线程实现基于星型结构的一对一聊天系统。实现介绍用户在控制台输入的格式要求:目标用户名 + 空格 + 消息内容若目标用户存在,则服务器将消息内容传递给目标用户,反之服务器会给予“目标用户不存在的响应信息”。目标用户控制台收到信息的格式为:发送方用户名: + 发送的消息内容代码客户端代码:package netProgramTranscript;import java.io.IOException;import java.io.PrintWriter;import原创 2021-04-25 21:15:43 · 252 阅读 · 0 评论 -
多对多的聊天系统(基于网络编程和多线程)
程序实现基于星型结构(服务器接收来自各个客户端发送的信息,然后将信息传递给其他客户端界面并在其他客户端界面显示发送的信息)客户端代码:package netProgram;import java.io.IOException;import java.net.Socket;import java.net.SocketAddress;public class Client implements ScreenInputInterface{ private SocketHandler so原创 2021-04-14 19:43:28 · 357 阅读 · 1 评论 -
Session详解
Session概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象(HttpSession)中。快速入门:获取HttpSession对象:HttpSession session = request.getSession();使用HttpSession对象:object getAttribute(String name)void setAttribute(String name, object value)void removeAttribute(String原创 2021-04-12 20:45:46 · 322 阅读 · 0 评论 -
Cookie详解
Cookie概念:客户端会话技术,将数据保存到客户端快速入门:使用步骤:创建cookie对象,绑定数据new Cookie(String name, string value)发送Cookie对象response.addcookie(Cookie cookie)获取Cookie, 拿到数据cookie[] request.getCookies()@WebServlet("/cookieTransmit")public class CookieTransmit extends Htt原创 2021-04-12 20:28:27 · 286 阅读 · 0 评论 -
Web相关概念
软件架构 C/S:客户端/服务器端 B/S:浏览器/服务器端 资源分类 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源。静态资源可以直接被浏览器解析,如: html,css, JavaScript 动态资源:每个用户访问相同资源后,得到的结果可能不一样,称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器,如: servlet/jsp,php,asp.... 网络通信三要秦 IP:..原创 2021-04-12 08:15:45 · 112 阅读 · 0 评论 -
JDBC详解(含Druid数据库连接池技术、JDBCTemplate)
文章目录JDBC编程六步SQL注入问题即解决办法Statement的使用场景模糊查询JDBC事务JDBC工具类锁行级锁for update数据库连接池数据库连接池的具体实现技术JDBCTemplate什么是JDBC?Java DataBase Connectivity在java语言中编写sql语句,对mysql数据库中的数据进行CRUD操作。JDBC相关的类库在哪里?java.sql.*;JDBC本质上是一堆什么呢?java.sql.*;这个包下都是JDBC的接口,SUN公司制定的。JDBC原创 2021-04-01 20:59:02 · 765 阅读 · 0 评论 -
IntelliJ IDEA 最实用的快捷键
相关博客带你玩转IntelliJ IDEA 使用教程(2019图文版)IntelliJ IDEA使用教程 (总目录篇)操作介绍创建模块(Module)在Eclipse中我们有Workspace(工作空间)和Project(工程)的概念,在IDEA中只有Project(工程)和Module(模块)的概念。这里的对应关系为:IDEA官网说明:An Eclipse workspace is similar to a project in IntelliJ IDEAAn Eclipse proje原创 2021-04-01 10:06:19 · 201 阅读 · 0 评论 -
Java内置的数据结构详解
文章目录集合的继承结构图CollectionMapCollection迭代器ListVectorTreeSetMap遍历Map集合HashMapHashtablePropertiesTreeSet(HashSet)实现比较器Comparator接口Collections工具类集合概述什么是集合?集合有什么用?数组其实就是一个集合。集合实际上就是一个容器。可以容纳其他类型的数据。集合为什么说在开发中使用较多?集合是一个容器,是一个载体,可以一次容纳多个对象。在实际开发中,假设连接数据库,数原创 2021-03-24 12:03:51 · 1753 阅读 · 0 评论 -
统计Java源代码中关键字的数目(每个关键字的数目)
题目要求:编写一个程序,读取一个java源代码文件(.java),然后报告该文件中关键字的个数。从命令行传递这个java源文件。以下代码从IDEA中的程序运行参数中传入 Java源代码文件的绝对路径,此步骤等价于“从命令行传递这个java源文件”的绝对路径。此外以下程序使用了与java源代码在相同文件夹下存储Java所有关键字的文本文件(.txt)。代码使用HashMap<String,Integer>存储所有关键字及其个数,检索效率较高。可以检索...原创 2021-03-09 22:49:43 · 3389 阅读 · 7 评论 -
Java反射详解
反射:框架设计的灵魂框架:半成品软件。可以在框架的基础上进行软件开发,简化编码。反射:将类的各个组成部分封装为其他对象,这就是反射机制。好处:可以在程序运行过程中,操作这些对象。可以解耦,提高程序的可扩展性。反射机制有什么用?通过java语言中的反射机制可以操作字节码文件(class文件)。运行时分析类的能力。在运行时检查对象,例如,编写一个适用于所有类的 toString 方法。实现泛型数组操作代码。利用 Method 对象,这个对象很像C++中的函数指针。反射机制的相原创 2021-02-26 16:37:57 · 264 阅读 · 0 评论 -
Java语法糖详解
for-eachfor vs for- eachfor-each从 JDK5.0 开始引入for-each 语法更简洁for-each 避免越界错误for可以删除元素,for-each不可以删除/替换元素for-each遍历时,不知道当前元素的具体位置索引for-each只能正向遍历,不能反向遍历for-each不能同时遍历2个集合for 和 for-each性能接近枚举类型枚举变量:变量的取值只在一个有限的集合内Java5 推出 enum 类型enum 关键字声明枚举类,且都原创 2021-02-24 22:08:49 · 458 阅读 · 0 评论 -
Java断言详解
概念断言使用的两种形式:assert condition;assert condition: expression;如果条件判断为true,程序继续执行。如果条件判断为false,则抛出 AssertionError异常。在第二个语句中表达式中将传入 AssertionError 对象的构造器,并转换成一个消息字符串。“表达式”(expression)部分的唯一目的是产生一个消息字符串。AssertionError对象并不存储具体的表达式值(条件并不会自动地生成为错误报告中的一部分),原创 2021-02-24 11:42:58 · 2451 阅读 · 0 评论 -
JUnit 单元测试详解
软件测试软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试分类:单元 vs 集成测试白盒 vs 黑盒测试自动 vs 手动测试回归测试压力测试单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。通常是一个函数/方法。单元测试是已知代码结构进行的测试,属于白盒测试。集成测试是将多个单元相互作用,形成一个整体,对整体协调性进行测试。一般从构成系统的最小单元开始,持续推进到单元之间原创 2021-02-23 21:06:13 · 1356 阅读 · 1 评论 -
MySQL笔记(含JDBC)
MySQL数据库:英文单词DataBase,简称DB。 按照一定格式存储数据的一些文件的组合。顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。数据库管理系统:DataBaseManagementSystem,简称DBMS。数据库管理系统是专门用来管理数据库中数据的,数据库管理系统可以对数据库当中的数据进行增删改查。常见的数据库管理系统:MySQL、Oracle、MS SqlServer、DB2、sybase…SQL:结构化查询语言 程原创 2021-02-21 22:04:42 · 1417 阅读 · 4 评论 -
Maven 创建项目时 停留在 “Generating project in Batch mode“ 解决办法
https://www.jianshu.com/p/7afe193ef1ad原创 2021-01-25 10:57:18 · 498 阅读 · 0 评论 -
Maven的安装与配置 (Windows)
下载官网下载地址:https://maven.apache.org/download.cgi1. 点击 .zip压缩文件进行下载。2. 将下载好的压缩文件解压到一个文件(路径中不能含有中文)。配置环境变量1. 将你解压到的文件的路径复制,类似 D:\Maven\apache-maven-3.6.32. 右键单击-> 属性 -> 高级系统设置 -> 环境变量3. 系统变量 -> 新建 -> 设置 变量名 为 Maven_HOME (不固...原创 2021-01-24 12:10:26 · 196 阅读 · 0 评论 -
Java内部类详解
内部类分类:成员内部类局部内部类(包含匿名内部类)成员内部类成员内部类的定义格式: 修饰符 class 外部类名称 { 修饰符 class 内部类名称{ // ... } /... }注意:内用外,随意访问;外用内,需要内部类对象。如何使用成员内部类?间接方式:在外部类的方法当中,使用内部类;然后创建外部类,调用外部类的方法。直接方式:外部类名称.内部类名称 对象名 = new 外部类类名称().new内部原创 2021-01-13 21:21:08 · 233 阅读 · 0 评论 -
通讯录模拟(数据结构+JavaFX)--注释详细
题目介绍:类图:联系人对象类:package data_structure_curriculum_design.experiment5_mobile_phone_address_book_simulation;import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4原创 2021-01-04 18:11:54 · 7388 阅读 · 0 评论 -
24点游戏(穷举算法+JavaFX界面/回溯算法)--注释详细
题目介绍:版本一:package data_structure_curriculum_design.experiment3_24point_poker_game.version1;import javafx.application.Application;import javafx.geometry.Insets;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx....原创 2021-01-04 17:51:59 · 1081 阅读 · 1 评论 -
一元多项式计算器(程序对于多项式运算非常通用、细节很多详见描述与代码)
程序支持除题目要求外的所有“任意多个”一元多项式加减运算输入:测试用例:-(2x^3+5x^4)+2x^5+(2x+5x^8-3.1x^11)+4x^6+2x^2+(7-5x^8+11x^9)+(x+x^2-x^3)+10=-2x^5+(2x+5x^8-3.1x^11)+4x^6+2x^9+(7-5x^8+11x^9)+(x+x^2+x^3)+2x^7=(2x+5x^8-3.1x^11)+(7-5x^8+11x^9)=(6x^-3-x+4.4x^2-1.2x^9)-(-7x^...原创 2020-12-17 00:45:47 · 1713 阅读 · 0 评论 -
校园导游程序(Dijkstra算法实现)
应用设计性实验1.问题描述校网导游程序: 一个校园有若干景点,如正校门、人工湖、磁悬浮列车实验室、樱花大道、图书馆、体育场体育馆和礼堂等。实现一个为来访客 人提供信息在询服务的程序,如查询景点的详细信息,查询两个景点之间的一条最短路径。2.实验要求(1)设计你所在学校的校园平面图,所含景点不少于10个。(2)来访客人可以输人任一个景点的名称,查询景点的详细信息。(3)来访客人可以输人任何两个景点的名称,查询这两个景点之间的一条最短路径。3.实现提示以图中的顶点表示校园内各景点,存放景点代号、原创 2020-12-13 16:49:53 · 4293 阅读 · 2 评论 -
详解初级排序算法(选择、插入、希尔shell)、归并、快速、堆
公共代码(比较元素大小、将元素在数组中的位置进行交换、判断数组是否已经有序、打印数组) public static boolean less(Comparable v, Comparable w) { return v.compareTo(w) < 0; } public static void exch(Comparable[] a, int i, int j) { Comparable t = a[i]; a[i]原创 2020-11-20 15:39:32 · 996 阅读 · 2 评论 -
Huffman树创建(基于循序存储)以及基于Huffman树的编码
import java.util.HashMap;import java.util.List;import java.util.Map;public class HuffmanTree<T> { private HuffmanTreeArrayNode<T>[] huffmanTree; public void createHuffmanTree(List<HuffmanTreeArrayNode<T>> leafNodes){//.原创 2020-11-13 21:08:14 · 299 阅读 · 3 评论 -
二叉树的遍历(递归/非递归)、线索化、镜像(递归/非递归)、查找节点算法
import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class BinaryTree<T> { BinaryTreeNode<T> root; public BinaryTree(T data) { root = new BinaryTreeNode<>(data); }/* public Binar.原创 2020-11-13 21:04:04 · 268 阅读 · 0 评论 -
详解插入排序之希尔(shell)排序
可以传入规定排序范围的参数(low/high),进行局部排序;该程序把首次“步长”设置为需要排序数组长度的1/2,并又程序自行求出之后的一系列步长(求解规则为 下一次步长=上一次步长/2 的向上取整),直至最后一次求得步长为1; public static <T extends Comparable<T>> void shellSort(T[] array, int low, int high) { int[] delta = new int[(int原创 2020-11-09 21:20:28 · 260 阅读 · 0 评论 -
交换排序之 冒泡排序与快速排序
冒泡排序进行了flag标识,略微提高了排序效率;快速排序使用递归实现。import java.util.Random;public class ComparisonSortingAlgorithm { public static void main(String[] args) { Integer[] array = new Integer[10]; Random random = new Random(); for (int i = 0原创 2020-11-09 15:47:37 · 231 阅读 · 0 评论 -
Ackerman函数(递归与非递归算法实现)
Ackerman函数阿克曼函数是非原始递归函数的例子;它需要两个自然数作为输入值,输出一个自然数。它的输出值增长速度非常高。计算Ackerman(m,n)函数递归算法与非递归算法(利用顺序栈)import java.util.Scanner;public class SequenceStack<T> { public static void main(String[] args) { Scanner scanner =new Scanner(S...原创 2020-10-25 13:28:57 · 2811 阅读 · 1 评论 -
迷宫求解(非递归算法实现)
1.问题描述用一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。编程实现选择任意通路作为入口和出口,探寻从迷宫入口到出口有无通路,若有,则求出一条从入口到出口的通路;若无则给出没有通路的结论信息。2.要求(1) 实现一个以链表作为存储结构的栈类。(2) 利用栈设计一求解迷宫的非递归算法。(3) 编写测试程序,求出迷宫通路,若无通路,则输出没有通路的提示信息;若有通路,则以三元组 ( i, j, d) 的形式输出通路,其中,( i , j )指示迷宫中的一个位置坐标,d 表..原创 2020-10-25 13:15:49 · 3212 阅读 · 2 评论 -
约瑟夫环问题(Joseph)
“约瑟夫生者死者”游戏内容大致描述为:30个游客同乘一条船,因为严重超载,加上风浪大作,危险万分。因此,船长告诉乘客,只有将船上一半的旅客投入大海中,其余的人才能幸免于难。无奈,大家只得同意这种办法,并议定30个人围城一圈,由第一个人数起,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个数起,数到第9人,再把他扔进大海中,如此重复地进行,直到剩下15个乘客为止。请编程模拟此过程。不带头结点,带头指针和尾指针的单线循环链表实现(参数可调控):import java.util.Scanner原创 2020-10-19 17:09:05 · 20317 阅读 · 13 评论 -
已知A,B和C为3个递增有序的顺序表,编写算法,实现删除A表中既在B表中出现,又在C表中出现的所有元素。
时间复杂度O(n),空间复杂度O(1);package sequenceList;public class RemoveThePublicElement { public static void main(String[] args) { Integer[] A = {1, 2, 3, 4, 5, 6, 6, 7}; Integer[] B = {2, 4, 6, 7, 9}; Integer[] C = {1, 2, 2, 6, 8, 1.原创 2020-10-08 18:04:14 · 2467 阅读 · 0 评论 -
数据结构与算法学习笔记
线性结构非线性结构线性结构(数组、队列、链表、栈):数据元素之前存一一对应关系。 顺序存储结构/顺序表(数组):存储元素地址连续。 链式存储结构(链表):存储元素地址不一定连续。可以充分利用内存空间。非线性结构(二维数组、多维数、广义表、树结构、图结构)。稀疏sparsearray数组和队列应用于棋盘、地图等。...原创 2020-09-04 11:15:28 · 436 阅读 · 0 评论