
java编程
文章平均质量分 71
学习交流,共同进步
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
CSDN砖家
APP/网站/OA/CRM/ERP/小程序等定制开发
展开
-
SpringMVC工作原理概述
SpringMVC框架介绍Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而...原创 2019-01-24 16:04:55 · 43217 阅读 · 1 评论 -
做好需求分析很关键
项目开始前,首先要了解客户的需求,知道客户想要做什么,但对于客户来说,最初他对自己的需求认识也只是个模糊的概念,只是在脑海里有个大致的想法,并不清楚自己真正的想要什么样的产品。用户场景需求主要是追问这个需求的来源是什么,要解决什么人在什么场景下的什么问题,有哪几个人物角色,对应问题的流程是什么,在这个过程中用户的心理变化是怎样的?先说目标用户,有的需求可能有价值,但未必是我们目前的主要用户群体,有的需求可能对A类用户有价值,但对我们的B类用户可能会构成伤害,这个时候需要权衡取舍。这个需求发生的频次是多少?原创 2023-02-21 10:25:45 · 13503 阅读 · 0 评论 -
Java实现邮件发送功能
SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接, 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助, // QQ邮箱的SMTP(SLL)端口为465或587,4.6、 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人,抄送人, 密送人;// 发件人的邮箱的 SMTP。对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)原创 2023-02-16 09:17:19 · 3226 阅读 · 0 评论 -
java实现发送邮件
最近有个小项目,客户希望整个审批流中通过j邮件实现提醒功能,下去调研了一下,简单实现过程如下;1.首先我们需要申请一个邮件,作为发送邮件的载体;一般我们使用的都是网易邮箱,例如163.com,申请邮箱后需要开启收发邮件的服务器,这样才能在本地客户端上收发邮件;2、代码实现package com.bootdo.common.utils;import java.util.Calendar;import java.util.Date;import java.util.Proper原创 2022-04-14 15:55:01 · 495 阅读 · 0 评论 -
阿里云同域名下使用Nginx反向代理IIS和Tomcat共用443端口
背景:最近在做小程序的开发遇到一个问题,在同一个域名下需要ISS和Tomcat服务器共存,IIS下部署由C#编写的A小程序接口,Tomcat下部署着由Java实现的B小程序接口,因为微信小程序要求必须通过HTTPS请求完成与服务端通信,所以都需要访问443端口;环境:windowsserver2019IIS6服务器Tomcat8服务器Nginx1.10.3步骤:首先确保tomcat和IIS两个服务器可单独运行。1、修改IIS的所有网站项目的端口,设为80(端口号可自行..原创 2020-07-28 15:36:03 · 4020 阅读 · 0 评论 -
Java 实例 - 死锁及解决方法
死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。java 死锁产生的四个必要条件:1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源...原创 2020-04-22 11:43:26 · 395 阅读 · 0 评论 -
一文读懂消息队列
消息队列消息队列是在消息的传输过程中保存消息的容器,消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。 一、 产生背景:现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用R...原创 2019-12-27 17:04:34 · 1984 阅读 · 0 评论 -
MySQL几种索引类型的区别和应用
Mysql目前主要有以下几种索引类型:FULLTEXT,HASH,BTREE,RTREE。全文索引、hash索引、B-Tree索引、RTree(范围索引或空间索引)这几种索引功能和性能上的区别:FULLTEXT全文索引,目前只有MyISAM引擎支持。其可以在CREATE TABLE ,ALTER TABLE ,CREATE INDEX 使用,不过目前只有 CHAR、VARCHAR ...原创 2019-01-22 11:31:20 · 3778 阅读 · 0 评论 -
CSDN-正则表达式应用
正则表达式 图形化形式( https://regexper.com )1、什么是正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达...原创 2019-12-23 13:57:09 · 1409 阅读 · 0 评论 -
Jacob技术应用
1、定义官方解释为JAVA-COM Bridge,即java和com组件之间的桥梁。2、原理通过一个接口来操作word的activeX对象版本 Jacob1.14.3 Jacob1.6 Jacob1.7 Jacob1.9 ......下载地址 http://danadler.com/jacob/3、配置将服务的JDK配置服务器的环境变量; 将jacob.jar 部署在...原创 2019-12-20 15:15:17 · 2762 阅读 · 0 评论 -
HttpServletRequest
一、HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。二、Request常用方法2.1、获得客户机信息 getRequestURL方法返回客户端发出请求时的完整URL。 getRequest...原创 2019-02-12 17:21:18 · 7128 阅读 · 0 评论 -
Activity工作流
Activiti 是一个针对企业用户、开发人员 、系统管理员的轻量级工作流业务管理平台,其核心是使用 java 开发的快速 、 稳定的 BPMN2.0 流程引擎 。它可以与 spring 完美集成。1 工作流生命周期一个完整的工作流生命周期会经过以下 5 个阶段,并迭代循环:阶段 说明 定义 业务需求人员收集业务需求,然后交由开发人员加工转化为计算机可以识别的...原创 2019-02-14 11:34:50 · 15858 阅读 · 0 评论 -
66道面试逻辑智力测试题
【1】假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水。由满6向空5倒,剩1升,把这1升倒5里,然后6剩满,倒5里面,由于5里面有1升水,因此6只能向5倒4升水,然后将6剩余的2升,倒入空的5里面,再灌满6向5里倒3升,剩余3升。【2】周雯的妈妈是豫林水泥厂的化验员。一天,周雯来到化验室做作业。做完后想出去玩。"等等...原创 2019-02-25 15:08:15 · 5886 阅读 · 0 评论 -
MySQL如何查询优化百万级别的数据表
1.两种查询查询引擎查询速度(myIsam引擎)InnoDB中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍表来计算有多少行。myIsam只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含 where条件时,两种表的操作有些不同,InnoDB类型的表用count(*)或者count(主键),加上wher...原创 2019-02-19 16:48:27 · 4030 阅读 · 0 评论 -
常见的网络攻击类型
常见的网络攻击类型一、拒绝服务攻击1.拒绝服务攻击Dos(Denial of Service)是一种利用合理的服务请求占用过多的服务资源,从而使合法用户无法得到服务响应的网络攻击行为。被DOS攻击时的现象大致有:被攻击主机上有大量的TCP连接; 被攻击的主机的系统资源被大量占用,造成系统停顿; 网络中充斥着大量无用的数据包,源地址是假地址; 高流量无用数据使得网络拥塞,受...原创 2019-02-20 12:23:46 · 36011 阅读 · 0 评论 -
微信企业号授权(含代码)
先暂时贴上代码,有时间再编辑文字,大家有问题可以留言讨论/** * 根据code获取userId后跳转到需要带用户信息的最终页面 * @param request * @param code 获取微信重定向到自己设置的URL中code参数 * @return */ @ResponseBody @RequestMapping(value = { "/oauth2url"...原创 2019-01-31 10:44:05 · 9981 阅读 · 1 评论 -
产品开发的完整环节
如果产品设计不合理,那后果是最严重的:要么考虑不全,做出来的东西无法满足要求甚至漏洞百出;要么不切实际,实际开发过程中困难重重;要么扩展性不好,导致后期增加、修改功能时必须得全部重做;要么用户体验不好,被用户吐槽 难以使用。下面描述了完整的产品环节(具体细节并不完整):1、需求收集阶段,广泛征求用户意见,同时产品从专业角度和用户沟通,要注意:很多用户只顾自己,提出的需...原创 2019-02-12 08:47:36 · 21174 阅读 · 3 评论 -
已倒闭某科技公司前员工辟谣声明
转发这个并不是我赞同或者支持某一方,但事实真相如何,我们不能仅听公司老板的一面之词,要是都这样甩锅,那你我还会热爱这个行业吗,程序员是一个默默无闻的幕后工作,任何光鲜亮丽的事情与我们无关,但默默无闻并不代表我们就好欺负,我们不惹事但也不怕事,当有人要我们去背锅甚至侮辱我们的人格时,要坚决的站出来,勇敢的和他们斗争。...原创 2019-01-25 10:25:04 · 9016 阅读 · 12 评论 -
bootdo项目war包部署流程
1.首先检查tomcat版本及路径配置做好第一步很重要,曾经有人因为配置路径问题多花几天时间2.配置pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS...原创 2018-12-20 10:08:47 · 3883 阅读 · 1 评论 -
HashMap、LinkedHashMap、TreeMap的区别
Map主要用于存储键值对,根据键得到值,因此不允许键重复,但允许值重复。一. HashMap HashMap比较常用,它根据键的值HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度。遍历时,取得的数据的顺序完全是随机的。 HashMap最多只允许一条记录的键为null;允许多条记录的值为null。 HashMap不支持...原创 2019-01-10 16:32:47 · 5767 阅读 · 0 评论 -
MySQL分页排序中的坑
今天项目提测,被测出了一个奇怪的bug,第一页最后一条数据和第二页的第一条数据重复了,并且神奇的丢失了一个条数据,下面开始来分析一下这个场景。第一页第二页场景为对一些作业进行按时间排序,但是有的作业时间是相同的。对代码进行查看发现,代码并没有什么问题,只是简单的查询全集并按时间排序分页返回给前端。所以去看一看mysql对limit的解释,从官方文档中发现了这样一句话...原创 2019-01-29 16:54:04 · 28282 阅读 · 0 评论 -
java中的IO操作总结
java中的IO操作在java中IO涉及的范围比较大,本文主要针对文件内容的读写对于文件内容的操作主要分为两大类:字符流:有两个抽象类 writer Reader 其对应子类FileWriter和FileReader可实现文件的读写操作 BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率。字节流:有...原创 2019-02-22 14:30:59 · 4399 阅读 · 0 评论 -
JVM垃圾回收机制
GC(Garbage Collection)的基本原理:将内存中不再被使用的对象进行回收,GC中用于回收的方法叫收集器,由于GC需要消耗一些资源和时间;java在对对象的声明周期特性进行分析后,按照新生代、旧生代的方式对对象进行收集,以尽可能的缩短GC对应用造成的暂停。对新生代的收集称为minor GC; 对旧生代对象的收集称为Full GC; 程序中主动调用System.gc()强制执行...原创 2019-01-11 08:51:52 · 10783 阅读 · 0 评论 -
JVM调优
1.数据类型java虚拟机中,数据类型可以分为两类:基本类型和引用类型。 基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值。 “引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte、short、int、long、char、float、double、boolean...原创 2019-02-01 09:31:35 · 11985 阅读 · 0 评论 -
java程序猿成长的14个阶段
这是一个非常好的模型,我在看的时候,觉得如果有一个更细致的阶段划分,会对开发者定位自己更有帮助,所以,就总结了出了下面的14个阶段:看书,看视频,看博客,听课等等 对着书敲代码 脱离书自己敲代码 自己实现一些小DEMO 进项目看代码 在别人指点下写代码 独立在别人搭建好的框架内填写代码 独立负责别人设计好的模块的实现 独立负责一个软件模块的设计和实现 负责较大的软件模块,拆分...原创 2019-01-18 11:17:37 · 739 阅读 · 0 评论 -
CSDN-让你一看就懂的排序算法(就是这么简单)
算法概述算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。算法复杂度相关概念稳定:如果a原本在b前面,而a=b...原创 2019-01-30 10:37:16 · 28875 阅读 · 4 评论 -
java设计模式之单例模式——Singleton pattern
设计模式故事会:https://blog.csdn.net/weixin_40205234/article/details/90664824单例模式单例模式(Singleton pattern)是java中最常见的设计模式之一。该模式属于创建型设计模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一...原创 2019-01-03 14:41:59 · 2129 阅读 · 1 评论 -
java设计模式之工厂设计模式——Factory Pattern
设计模式故事会:https://blog.csdn.net/weixin_40205234/article/details/90664824工厂模式工厂模式(Factory Pattern)是java中最常见的设计模式之一,该类型属于创建型设计模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口指向新创建的对象。1.简...原创 2019-01-02 16:38:05 · 2883 阅读 · 2 评论 -
java多线程应用
引线程,有时被称为轻量进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准线程的构成包括以下四个部分:线程的ID; 当前指令指针(PC); 寄存器集合; 堆栈组成。 线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的...原创 2019-02-13 13:33:59 · 31288 阅读 · 0 评论 -
快速理解线程池
1.线程池的定义线程池(thread pool)是一种多线程的处理形式,处理过程中将任务添加进队列,然后在创建线程后自动启动这些线程。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能保证内核的充分利用,耗能防止过分调度。2.线程池的作用重用已经创建好的线程,避免...原创 2019-02-12 10:05:04 · 19108 阅读 · 0 评论 -
java使用Aspose-cells实现Excel转PDF
package cn.yiyang.common.utils;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream; import com.aspose.cells.License;import com.aspose.cells.PdfSaveOptions;import c...原创 2019-08-27 16:16:41 · 8468 阅读 · 0 评论 -
java通过Aspose-slides实现pptx转PDF(有水印)
package cn.yiyang.common.utils;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import org.slf4j.Logger;import org.slf4j.LoggerFactory...原创 2019-08-27 16:18:53 · 4309 阅读 · 0 评论