Java
文章平均质量分 60
分享Java相干的~
花伤情犹在
我的花会开的 我的生活也会慢慢拥抱我的.
展开
-
Mac 以SH脚本安装Arthas
在Mac上,利用SH脚本安装Arthas便捷快速。用户下载并执行自定义脚本以完成自动化安装,包括依赖处理、组件下载和环境配置。安装后通过as.sh启动,输入dashboard命令打开Web Console页面进行Java应用的实时监控与诊断。原创 2024-03-01 15:03:41 · 829 阅读 · 1 评论 -
运用JProfiler分析Java程序中的OOM问题
本文旨在详细介绍如何运用强大的性能分析工具JProfiler,针对Java应用程序中常见的内存溢出(OutOfMemoryError,简称OOM)问题进行精准定位与深入剖析。通过实例演示,我们将逐步揭示Java堆空间的分配、使用情况以及潜在的内存泄漏源头,并借助JProfiler的强大功能进行实时内存监控、堆转储分析和对象引用跟踪等操作。从而帮助开发者高效地识别并解决内存溢出问题,优化程序性能,确保系统稳定运行。原创 2024-02-29 17:35:03 · 1203 阅读 · 0 评论 -
浙政钉SDK安装
一键安装Maven第三方SDK依赖“专有钉钉SDK”!原创 2023-12-08 17:50:41 · 1272 阅读 · 1 评论 -
SpringBoot轻松实现项目集成Knife4j接口文档
Knife4j 官网Knife4j是一款基于Swagger生成API文档的增强工具,它简化了开发者构建和管理RESTful API文档的过程。通过自动扫描项目中的接口信息,Knife4j能够生成详细、易读的API文档,无需手动编写和维护。它提供交互式的接口调试页面,方便验证接口正确性,同时支持接口聚合和分组,便于管理大型项目中的接口。此外,Knife4j还支持Markdown文档,以及定制化配置选项,使得API文档更加美观、灵活和易于展示。原创 2023-09-19 17:01:15 · 793 阅读 · 0 评论 -
OTP动态口令之Java实现双重认证
双重认证(英语:Two-factor authentication,缩写为2FA),又译为双重验证、双因素认证、二元认证,又称两步骤验证(2-Step Verification,又译两步验证),是一种认证方法。原创 2022-02-11 22:50:10 · 12746 阅读 · 0 评论 -
Java工具类及配置文件模板大全
Mybatis 工具类的封装工具类的封装首先要考虑的问题是,要实现所有的功能。为了以后的扩展需要工具具有容易维护的特点。同时要提高效率。mybatis 工具类的封装要考虑三大块内容Resources、SqlSessionFactory、SqlSession。Resources:Resources 的作用是读取 Mybatis 核心配置文件,读取的方式是使用IO 流,这样的方式只执行一次就可以了。SqlSessionFactory : SqlSessionFactory 是 SqlSession的工厂原创 2021-10-28 23:16:27 · 747 阅读 · 0 评论 -
SpringMVC数据校验Bug-@Valid不起效BindingResult读取不到Error信息
Bug记录在写SpringMVC项目时,由于要对表单数据进行校验,使用Spring MVC框架时,有两种常用的方式校验输入的数据。利用Spring框架自带的验证框架利用JSR 303实现我使用的是JSR 303实现数据校验的,JSR 303 通过在Bean属性上标注类似于@NotNull、@Max等标准的注解指定校验规则,并且通过标准的校验接口对Bean进行验证。但是在进行数据校验时,BindingResult对象无法拦截非法表单数据,result.hasErrors()无论怎么输入都会返回原创 2021-09-16 19:49:28 · 1455 阅读 · 4 评论 -
Spring依赖注入基于XML的 DI
DI:给属性赋值spring调用类的无参数构造方法,创建对象。 对象创建后给属性赋值。给属性赋值可以使用 :xml配置文件中的标签和属性使用注解DI分类:set注入,也叫做设值注入构造注入set注入public class Student { //姓名 private String name; //年龄 private int age; //无参构造器 public Student() { System.out.println(原创 2021-09-08 21:39:59 · 211 阅读 · 0 评论 -
创建第一个Spring程序
开发工具准备开发工具:idea2017 以上依赖管理:maven3 以上jdk:1.8 以上使用Maven创建Spring项目选择Maven勾选Create from archetype选择maven-archetype-quickstart创建成功使用Java Enterprise创建Spring项目默认即可Version一般选择Java EE 8设置项目信息创建成功引入 maven 依赖 pom.xml打开pom文件添加依赖<!-- 日志输出原创 2021-09-08 19:52:49 · 498 阅读 · 1 评论 -
JSP购物车案例精简版-适合小白学习
前言购物车是电商网站必不可少的功能,没有它我们的购物将变得繁琐,如同你去超市买东西,没有购物车的话你你买东西的数量将受到限制,因为当你要买的东西越来越多的时候,你根本拿不下所有的对象。想象一下如果你去京东、淘宝上买东西,没有购物车的话你就一次性只能买一件商品,没有结算功能。本文讲解一下简单的购物车原理,适合小白学习。效果构建环境导包搭建项目目录设计实体书籍实体package entity;/** * 书籍实体类 */public class Book { //书籍i原创 2021-07-03 23:23:31 · 4816 阅读 · 4 评论 -
Java之判断ResultSet结果集是否为空
前言记录一次憨憨行为:在判断结果集里面有没有值的时候,我傻傻的用“==null”来判断结果集是否为空,导致结果(一直是假象-----结果集里面有值),很小很小的错误,但就是在编码的时候一致追求速度导致马虎,导致了这次憨憨行为。以下憨憨行为:错误示例:if(rs==null){System.out.println("结果集为空!");}else{System.out.println("结果集不为空!");} ResultSet表示select语句的查询结果集。Resul原创 2021-07-01 21:56:50 · 3987 阅读 · 0 评论 -
Ajax实现搜索文本框自动联想功能
前言由于没有使用数据库,联想数据是通过List集合模拟的。原理:前端通过Ajax将文本框数据发送给后端后端用List集合模拟数据库进行数据遍历遍历的数据结果要加上分隔符(例如本人使用的是逗号“ , ”)后端将遍历出来的数据拼接在一起发送给前端Ajax前端Ajax接收到数据对数据进行遍历利用split() 方法用于把一个字符串分割成字符串数组然后再对其数组遍历,将遍历结果和html进行拼接效果代码注意前端用到了JQuery框架前端代码:<!DOCTYPE html&g原创 2021-06-29 11:26:23 · 840 阅读 · 0 评论 -
javax.naming.NoInitialContextException错误的解决方案
在用dbcp配置数据源时,写了一个测试类,在测试类中调用了dbcp获得数据库连接报错:javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or in an application resource file: java.naming.factory.initialTest代码:package test;import org.junit.Test;i原创 2021-06-28 16:17:28 · 2206 阅读 · 1 评论 -
Cookie实现免用户名和密码自动登录
前言我们在访问网站的时候,有的网站一天之内访问好几次,如果用户每次访问都需要这些登录操作就会感到相当厌烦。所以通过Cookie的技术手段让网站“记住”那些在曾经登录过的用户。当该用户下次再来访问的时候,网站可以识别该用户,并为其自动完成登录过程。实现免用户名和密码自动登录效果:登录界面效果图代码:<%@ page contentType="text/html;charset=UTF-8" language="java" %><% String username原创 2021-06-24 17:09:34 · 4953 阅读 · 1 评论 -
Web中的路径问题
前言在开发web中路径问题算是很蛋疼的一种问题,特别是在使用绝对路径的时候,在不同的目录下进行访问一会儿可以访问一会儿访问不到,令人着实厌烦。出现这种原因还是对Web中路径的概念理解的懵懵懂懂,像路径这种小问题必须要了解web’路径的概念就不容易出现错误影响开发效率。提醒webapp代表的是web工程名字服务器端的相对地址是在服务器端解析的,是相对于web应用的地址servlet中的相对地址应该是相对于web应用,即相对于`http://localhost:8080/webapp/`重原创 2021-06-23 23:11:34 · 661 阅读 · 0 评论 -
Redis小白入门教程
前言Redis概念: redis是一款高性能的NOSQL系列的非关系型数据库redis主要内容:下载安装命令操作数据结构持久化操作使用Java客户端操作redis什么是NOSQL?NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非原创 2021-06-17 22:59:08 · 193 阅读 · 0 评论 -
Spring框架JDBC Template使用教程
前言Spring提供了一个JDBCTemplate对象简化JDBC的开发,本文将简单讲解一下Spring框架JDBC Template使用教程以及Spring框架对JDBC的简单封装。步骤1.导入jar包2.创建JdbcTemplate对象。依赖于数据源DataSourceJdbcTemplate template = new JdbcTemplate(ds);3.调用JdbcTemplate的方法来完成CRUD的操作update():执行DML语句。增、删、改语句queryForMa原创 2021-06-14 20:56:00 · 276 阅读 · 0 评论 -
数据库连接池c3p0和Druid使用教程
前言本文将介绍数据库连接池:c3p0和Druid使用教程数据库连接池:概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:节约资源用户访问高效实现:标准接口:DataSource javax.sql包下的方法:获取连接:getConnection()归还连接:Connection.close()。如果连接对象Connec原创 2021-06-14 20:06:17 · 371 阅读 · 1 评论 -
Java定义参数个数可变的方法:Object...objects
前言在Java1.5之后,java允许定义形参个数可变的方法。只要在一个形参的“类型”与“参数名”之间加上三个连续的“.”(即“…”,英文里的句中省略号),就可以让它和不确定个实参相匹配。而一个带有这样的形参的方法,就是一个实参个数可变的方法。例如:public static void test1(int...ints){ }注意,只有最后一个形参才能被定义成“能和不确定个实参相匹配”的。因此,一个方法里只能有一个这样的形参。另外,如果这个方法还有其它的形参,要把它们放到前面的位置上。编译器原创 2021-06-07 19:44:22 · 1507 阅读 · 4 评论 -
PreparedStatement的setObject作用
前言在了解setObject作用前讲解一下PreparedStatement这个接口,然后循序渐进从setXxx()方法讲解到setObject。PreparedStatementjava.sql包中的PreparedStatement接口继承了Statement接口,PreparedStatement对象可以防止sql注入,而Statement不能防止sql注入,所以实际开发的时候千万不要使用Statement。SQL注入:比如我的SQL语句为:select * from user wher原创 2021-06-07 19:08:23 · 4721 阅读 · 4 评论 -
解决IDEA不识别Java文件:文件变橙色&显示后缀名.java
打开idea项目后部分目录下出现橙色的时钟标志(如下):可以看到所有的java文件都显示了后缀名.java,文件的图标都变成了橙色的原因:项目根目录出现问题。解决方案:打开项目结构,选择Modules,删除项目根目录:点击是即可:重新导入项目根目录:选择当前项目根目录:最后应用确定即可:问题解决:...原创 2021-06-06 16:22:54 · 23628 阅读 · 5 评论 -
JDBC超详细入门教程
今日内容1. JDBC基本概念2. 快速入门3. 对JDBC中各个接口和类详解JDBC:1. 概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库 * JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。2. 快速入门: * 步骤: 1. 导入驱动jar包 mysql原创 2021-05-29 10:32:04 · 866 阅读 · 0 评论 -
Java基于TCP的网络编程
前言本文主将Java基于TCP的网络编程主要分解成5个功能:功能分解1:单向通信功能分解2:双向通信功能分解3:对象流传送功能分解4:加入完整的处理异常方式功能分解5:多线程接收用户请求单向通信:功能:客户端发送一句话到服务器:客户端:public class TestClient {//客户端 //这是一个main方法,是程序的入口: public static void main(String[] args) throws IOException {原创 2021-05-22 01:33:14 · 382 阅读 · 2 评论 -
解决IDEA创建Java Web项目不能及时刷新HTML或JSP页面
前言当我们使用IDEA创建一个Java Web项目,在项目部署完毕后启动服务器,却发现有不满的地方,又对项目进行更改,改完后然而页面却没有任何变动,每次需要手动重启服务器非常麻烦 ,本文介绍如何实现直接刷新Browser就可以达到刷新的目的。教程首先打开Edit Configurations,从运行-编辑配置中进入或者从菜单栏下面的Tomcat选项中的编辑配置可以直接进去选中你添加的Tomcat,修改On 'Update' action和On frame deactivation:必须都为原创 2021-05-20 18:25:30 · 4452 阅读 · 5 评论 -
解决Tomcat在cmd乱码问题
前言出现中文乱码的原因:bin\catalina.bat文件的编码与系统的编码不一致造成的。如图:解决方案:查看电脑系统的编码Windows平台下,点击运行–输入cmd,Enter回车键进入命令窗口,输入:chcp如图所示:我系统的活动代码页为:936。修改Tomcat配置需要修改Tomcat根目录下面的"logging.properties"文件,把所有的encoding=UTF-8的改成encodng=936,保存之后,重启Tomcat服务器,就能解决乱码问题配置文件原创 2021-05-20 11:27:03 · 2160 阅读 · 5 评论 -
阿里巴巴面试题之List集合去重
第一种方案:将List集合转换成Set集合:public class Test { public static void main(String[] args) { //将List集合去重 List<String> list= Arrays.asList("a","b","c","c","b","a"); list.forEach(System.out::print);//遍历List集合 //第一种方案将List集合转换原创 2021-05-19 09:58:56 · 376 阅读 · 0 评论 -
JDK1.8接口非抽象方法
在 JDK1.8,允许我们给接口添加两种非抽象的方法实现:默认方法,添加 default 修饰即可;静态方法,使用 static 修饰;示例如下:interface Test{ //这个是默认方法 default String get(String aa){ System.out.println("我是jdk1.8默认实现方法..."); return ""; } //这个是静态方法 static voi原创 2021-05-19 08:42:11 · 516 阅读 · 0 评论 -
遍历Hashtable中的key和value的几种方法
关于Hashtable散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。哈希表(Hashtable)的设计初衷就是通过键key来查找值value的,可以说对哈希表的操作内部机制实质上都是对键的操作。键不能为空且唯一,value值可以。键、值可以为任意数据类型。因此想要取出value需要先获取key处理原则:先取出key原创 2021-05-15 17:32:08 · 1841 阅读 · 0 评论 -
Java下File 类的 file.isHidden()判断文件是否隐藏
isHidden()方法:在Microsoft Windows系统中,如果文件在文件系统中被标记为隐藏文件,则认为该文件是隐藏的。返回值:当且仅当此抽象路径名的文件是一个隐藏的文件该方法返回true,否则该方法返回false。示例代码:import java.io.File; public class Test { public static void main(String[] args) { File file = new File("C:/Demo.txt原创 2021-05-15 17:07:51 · 1541 阅读 · 0 评论 -
判断目录是否为空
判断目录是否为空使用了File 类的 file.isDirectory() 和 file.list() 方法来判断目录是否为空:isDirectory():检查一个对象是否是文件夹,返回值是boolean类型的,如果是则返回true,否则返回false。list():返回一个数组 这个数组是你文件夹中的所有文件 相当于遍历目录,只会返回目录中的文件名字, 如果不存会出空指针异常。listFiles:功能:返回file类型数组这个数组是你文件夹中的所有文件 相当于遍历目录这个方法返回的是目录下的全路原创 2021-05-15 17:00:46 · 1842 阅读 · 0 评论 -
lambda表达式与函数式接口
函数式接口函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。Lambda 表达式和方法引用(实际上也可认为是Lambda表达式)上。如定义了一个函数式接口如下:interface Test{ void cnm();//只能有一个抽象方法,如果定义多个抽象方法就不能使用lambda表达式}Lambda语法包含三部分:一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数一个箭头符号:->方法体原创 2021-05-15 13:55:51 · 237 阅读 · 0 评论 -
Java系统流
关于系统流Java 程序运行时都带有一个系统流,系统流位于java.lang.System下。Sytem 类封装了 Java 程序运行时的 3 个系统流,分别通过 in、out 和 err 变量来引用。这 3 个系统流如下所示:System.in:标准输入流,默认设备是键盘。System.out:标准输出流,默认设备是控制台。System.err:标准错误流,默认设备是控制台。public class Test01 { public static void main(Strin原创 2021-05-15 12:34:16 · 247 阅读 · 0 评论 -
ArrayList循环删除报错Exception in thread “main“ java.util.ConcurrentModificationException
前言本文介绍2种循环报错情况foreach(注意:是增强for循环,不是普通的for循环)Iterator(迭代器)foreach报错:示例代码:import java.util.ArrayList;public class TestArray { public static void main(String[] args) { ArrayList<String> arrayList=new ArrayList<String>();原创 2021-05-01 22:47:05 · 1977 阅读 · 3 评论 -
IDEA生成JAR包导出JAR包
使用IDEA工具生成可执行的JAR包PS:将Java项目封装成可执行到JAR包用起来及其方便,本文将介绍如果使用IDEA工具生成JAR包。开始教程一、在菜单栏找到-文件选择-项目结构(快捷键-Ctrl+Shift+Alt+S)二、选择-Artifacts 然后点击+三、选择JAR 然后选择From module with dependencies…四、如下图所示,最后确定选择主类如果含有META-INF/MANIFEST.MF’ already exists in VFS这种原创 2021-04-29 23:29:18 · 2886 阅读 · 3 评论 -
Java超市订单管理系统
《超市订单管理系统》功能要求开发超市订单管理系统功能,可实现会员积分累计、积分兑换,查询剩余积分,修改密码以及开卡等功能。具体功能要求如下:(1)显示系统主菜单如图1所示。(2)开卡输入注册姓名输入注册密码自动生成卡号,使用随机数(3)积分累计输入卡号输入密码输入消费金额,一比一换算(4)积分兑换输入卡号,密码完成积分兑换(5)查看剩余积分输入卡号与积分,显示当前卡号信息(6)修改密码输入卡号,当卡号不存在提示,重新输入直到卡号正确输入密码正确后,方可修原创 2021-04-29 22:45:00 · 1082 阅读 · 0 评论 -
List集合&数组实现模糊查询
前言使用Java语言开发项目的时候,在查询这一方面通常是直接利用查询的SQL语句完成的,但是当我们选择使用Java提供的容器(Array,List,HashMap…)作为临时数据,需要实现查询的功能如何实现呢?本文将介绍一种模糊查询的方法代码:对象类public class QuestionInfoManger { String question;}模糊查询//对象动态数组ArrayList<QuestionInfoManger> Question=new ArrayL原创 2021-04-15 00:45:08 · 1699 阅读 · 0 评论 -
Maven的核心概念
1. 约定的目录结构maven项目使用的大多人 遵循的目录结构。 叫做约定的目录结构。一个maven项目是一个文件夹。 比如项目叫做HelloHello 项目文件夹 \src \main 叫做主程序目录(完成项目功能的代码和配置文件) \java 源代码(包和相关的类定义) \resources 配置文件 \test 放置测试程序代码的(开发人员自己写的测试代码)原创 2021-04-12 13:55:14 · 341 阅读 · 0 评论 -
不再需要Class.forName(“com.mysql.jdbc.Driver“)
前言最近发现, mysqL驱动5.1.6可以无需CLass . forName(“com.mysql.jdbc.Driver”);而mysql驱动5.1.5却不行。搜集相关资料发现:从jdk1.5以后, 1.6使用了jdbc4,jdbc4.0不再需要显示调用class.forName()注册驱动而是自动调用驱动jar包下META-INF\services\java .sql.Driver文本中的类名称去注册。而mysql-5-*-*的jar包虽然也是jdbc4的,但是在5.1.5以后jar包下才有MET原创 2021-04-12 11:29:31 · 1307 阅读 · 0 评论 -
在IDEA中创建Maven工程
新建项目选择Maven项目不要打勾-(不选择任何模板,利用IDEA帮我们创建标准的MAVEN项目结构)设置项目名称以及路径标准目录结构原创 2021-04-11 15:45:15 · 269 阅读 · 0 评论 -
Maven的下载_目录结构_IDEA整合Maven
【1】IDEA默认整合了Maven:【2】下载地址:http://maven.apache.org/点击Download对应版本选择对应Windows下的即可(.zip)【3】目录结构:bin:存放的是执行文件,命令在IDEA中可以直接集成Maven:conf目录:下面有一个非常重要的配置文件–》settings.xml—》maven的核心配置文件/全局配置文件。【4】如果没有.m2目录 ,自己手动执行mvn命令:mvn help:system如果没有添加环境变量就会提示原创 2021-04-11 13:38:25 · 293 阅读 · 0 评论