Java开发
文章平均质量分 67
菜鸟笔记
java成长笔记
展开
-
Zabbix监控通过企业微信报警
直接上代码通过Python脚本实现:#!/usr/bin/python#_*_coding:utf-8 _*_import requests,sys,jsonimport urllib3import osimport logginglogging.basicConfig(level = logging.DEBUG, format='%(asctime)s, %(filename)s, %(levelname)s, %(message)s', datefmt='%a, %d %b原创 2022-02-25 16:19:18 · 1855 阅读 · 0 评论 -
seata介绍
1、AT模式1.1 前提1.2 整体机制1.3 写隔离1.4 读隔离2、工作机制2.1 一阶段2.2 二阶段——回滚2.3 二阶段——提交Seata 是一款开源的分布式事务解决方案,Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式。1、AT模式1.1 前提基于支持本地 ACID 事务的关系型数据库。 Java 应用,通过 JDBC 访问数据库。1.2 整体机制两阶段提交协议的演变:一阶段:业务数据和回滚日志记录在同原创 2021-10-09 18:06:03 · 537 阅读 · 0 评论 -
机器学习:KNN用java代码实现
KNN算法:使用欧式距离计算方法,从源对象集合中选取距离目标节点最近的K个节点,判断K个节点所属类别最多的节点,即为目标节点所属的类别。此处只是简单的实现KNN算法的过程,其中有一些优化的地方不再修改,还请小伙伴自行优化。KNN的model类:package com.spring5.bigdata.knn;/** * @author yinxf * @date 2020-05-16 */public class KnnNode { private float x; //X坐原创 2020-05-19 11:10:50 · 1093 阅读 · 0 评论 -
如何设计一个秒杀系统总结
通过学习"如何设计一个秒杀系统"课程,总结秒杀相关的一些重要问题。1.秒杀系统主要解决两个问题,一个是并发读,一个是并发写。 并发读的优化就是尽量减少客户端到服务端来读数据,或者读更少的数据;并发写处理原则也一样,在数据库独立出一个库,做特殊处理。2.秒杀的整体架构包括稳、准、快三个关键字: 稳:即流量符合预期时整体架构要满足高可用,就算超出预期也不能掉链子...原创 2019-11-13 15:45:03 · 4796 阅读 · 3 评论 -
ireport制作小技巧
首先ireport中大小写问题:1、parameter中如果小写,引用也小写2、$F{},一般都大写3、子报表中引用父报表中查询出来的值时,只需要小写即可,即在子报表的parameter中只需要小写一、iReport 中获取系统当前时间1、选择TextField类型为 Java.util.Date,选择TextField的Expressi转载 2017-09-08 11:45:45 · 888 阅读 · 0 评论 -
@Transactional事务几点注意
这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。C. 以下列了事务使用过程的注意事项,请大家留意。1.不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注转载 2017-10-24 14:42:20 · 1290 阅读 · 0 评论 -
二维码的两种生成方法(前端js生成,后端java生成)
最近项目中需要开发生成二维码的功能,方便使用手机支付,在网上查了一些资料,把用过的方法进行总结。1.前端js生成二维码demo下载:http://download.csdn.net/download/yin767833376/10165335html页面代码: Render in tableRend原创 2017-12-20 10:32:39 · 49375 阅读 · 7 评论 -
Java 排序算法冒泡排序、插入排序、选择排序、奇偶排序、并行奇偶排序
本章将介绍一些常用的排序算法,有常用的串行排序,如冒泡排序、选择排序、插入排序、奇偶排序;还有对奇偶排序的并行实现方法。一、串行排序直接上代码public static void main(String[] args) { int[] array = {9,8,23,34,65,78,3,46,24}; // sortBubble(array); //冒泡 // selectSorts(...原创 2018-06-27 11:10:42 · 596 阅读 · 8 评论 -
20个非常有用的Java程序片段
先收藏了,以后应该用的到。下面是20个非常有用的Java程序片段,希望能对你有用。1. 字符串有整型的相互转换String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int2. 向文件末尾添加内容原创 2017-12-26 09:08:20 · 393 阅读 · 0 评论 -
ireport、jasperreport 导出excel的java代码
在用ireport、jasperreport 导出excel时的两种方法,方法一:这种方式方法和参数已经过时,使用setParameter()和JRExporterParameter获取属性设置,还可以使用,看着不舒服方法二:使用SimpleXlsxReportConfiguration设置Excel属性,ExporterInput设置从数据库中返回的结果,OutputSt原创 2017-08-11 16:32:11 · 2786 阅读 · 6 评论 -
ireport 合并行
效果 数据源结构:xml version="1.0" encoding="utf-8" ?> DepartmentList> list> Department> name>行政部name> personList> person> age>35age>转载 2017-08-04 15:09:11 · 4945 阅读 · 0 评论 -
iReport 4.1 报表、子报表、主从报表、合计、实例解析
开发使用步骤(iReport 4.1.1)1. 开发使用步骤(iReport4.1)... 24.1. JasperReport 和iReport的介绍... 24.1.1. JasperReport 简介... 34.1.2. iReport 简介... 34.1.2.1. iRepor转载 2017-08-04 12:38:40 · 973 阅读 · 0 评论 -
ireport设计导出模板,Jasperreport导出PDF、HTML、Excel
在项目中基本都是用的POI的方式导出Excel,慢慢的Excel不能满足需求,想要可能生成多种格式的文件比如PDF,HTML等,以及相应图表(饼状图、条形图等),查阅资料有很多种报表工具,试过几种之后最红选择使用ireport和Jasperreport结合开发PDF、HTML、Excel等报表功能,ireport可视化的图形配置,直接拖拽需要的控件和字段,也可以实现查询sql的动态片段。irepo原创 2017-08-02 12:59:45 · 5748 阅读 · 0 评论 -
Ireport配置动态sql查询条件
在ireport总普通传参 例如:select * from emp as e where e.name = $P{param} 但是我想把sql语句的某个片段做为参数传入,应该要怎么做呢? 很简单,用$P!{param}就可以替换sql的任何部分。如下: $P!{param} = where e.name = 'aa'; select * from原创 2017-08-02 12:32:11 · 8825 阅读 · 3 评论 -
关于消息队列的使用----ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景。2.1异步处转载 2017-04-24 15:37:18 · 672 阅读 · 0 评论 -
近5年133个Java面试问题列表
Java 面试随着时间的改变而改变。在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入。 在我初入职场的时候,类似于 Vector 与 Array 的区别、HashMap 与 Hashtable 的区别是最流行的问题,只需要记住它们,就能在面试中获得更好的机会,但这种情形已经不复存在。如今,你转载 2017-03-16 14:20:42 · 930 阅读 · 0 评论 -
大规模分布式应用之海量数据和高并发解决方案总结一二
一、网站应用背景开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能,当然,也要考虑成本的问题。当问题的规模在经济条件下通过堆硬件的方式解决不了的时候,我们应该通过其他的思路去解决问题,互联网发展至今,已经提供了很多成熟的解决方案,但并不是都具有适转载 2017-12-19 10:53:55 · 575 阅读 · 0 评论 -
rocketmq初学者入门
最近由于工作需要开始学习消息中间件rocketmq首先,介绍一下rocketmq的安装。1.解压rocketmq2.新解压的rocketmq是没有执行权限的,需要修改文件权限。3.修改runbroker.sh和runserver.sh的内存设置,因为这两个文件启动时默认内存比较大。具体根据电脑配置进行修改。两个文件的修改结果相同,结果如下4.后台原创 2018-01-21 22:04:11 · 8411 阅读 · 4 评论 -
org.springframework.beans.factory.NoUniqueBeanDefinitionException导致错误原因之一:spring事物
项目运行过程中报错报错信息如下:org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [org.springframework.transaction.PlatformTransactionManager] is defined: expected sing...原创 2019-02-19 15:30:44 · 4036 阅读 · 4 评论 -
支付对账系统怎么设计?
支付对账系统是整个支付清结算体系中具体基础性意义的一个环节,是确保支付平台与各类第三方支付渠道数据一致性的关键系统,是商户资金结算、资金划拨、资金报表等逻辑准确运行的重要前提。 支付对账涉及账单下载处理、核心对账、差错处理等诸多细节逻辑,同时根据交易量大小的不同,需要处理的数据量规模也不尽相同,需要在数据处理时进行一些比较细致地思考。在本文中,作者以单渠道日成功交易订单量300W左右规模...转载 2019-01-15 13:13:43 · 2935 阅读 · 2 评论 -
多级缓存实例
一个使用了Redis集群和其他多种缓存技术的应用系统架构。 首先用户的请求被负载均衡服务器分发到Nginx上,此处常见的负载均衡算法有轮询和一致性哈希,轮训可以使服务器的请求更加均衡,而一致性哈希可以提高Nginx应用的缓存命中率。 接着,Nginx服务器读取本地缓存,实现本地缓存的方式可以是lua shared dict,或者面向磁盘或内存的Nginx proxy ca...原创 2019-01-15 13:06:06 · 2149 阅读 · 3 评论 -
互联网账户系统如何设计(下篇)
导读 在上一篇文章中(互联网账户系统如何设计(上篇)?)我们通过场景举例的方式,讨论了一套相对通用的互联网业务账户系统,从业务模型上应该如何定义。那么除了从业务模型上进行定义外,在具体系统实现上又该如何设计?又有哪些需要注意的地方呢?在本篇内容中小码农就和大家一起讨论下账户系统的实现细节,希望可以和大家一起交流进步。 事实上账户系统的业务逻辑是比较复杂的,对数据的一致性要求很高,特...转载 2019-01-04 11:13:55 · 1162 阅读 · 0 评论 -
互联网账户系统如何设计(上篇)
在很多互联网公司业务发展的早期,业务模式比较单一的情况下,涉及用户账户资金交易相关的逻辑也比较简单,但是随着公司业务模式的不断创新及类型的多元化发展,会渐渐发现现有系统账户逻辑越来越雍肿,不仅难以支持新业务的扩张,对现有业务的支持也适配困难,最终导致新业务系统不得不重新搭建自己的业务账户逻辑,造成重复建设不说,也往往给后续的财务资金核算造成混乱。以某互联网A租车公司的业务发展路径为例?...转载 2019-01-04 11:10:15 · 2255 阅读 · 0 评论 -
JVM内存模型介绍
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间。 java虚拟机所管理的内存将会包括以下几个运行时数据区域,有程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区。以下将分别进行介绍。 一、程序计数器 程序计数器是一块较小的内存空间,可以看做是当前线程所执行的...原创 2018-08-21 16:03:03 · 406 阅读 · 0 评论 -
BTree和B+Tree详解
B+树索引是B+树在数据库中的一种实现,是最常见也是数据库中使用最为频繁的一种索引。B+树中的B代表平衡(balance),而不是二叉(binary),因为B+树是从最早的平衡二叉树演化而来的。在讲B+树之前必须先了解二叉查找树、平衡二叉树(AVLTree)和平衡多路查找树(B-Tree),B+树即由这些树逐步优化而来。二叉查找树二叉树具有以下性质:左子树的键值小于根的键值,右子树的键值大...转载 2018-08-08 17:00:42 · 52642 阅读 · 11 评论 -
java nio中几个重要的属性(一)
最近学习一下Java NIO非阻塞式IO,下面是NIO中几个重要的属性和方法,方便大家理解/** * nio 非阻塞IO * nio核心 Channel,Buffer 和 Selector * * 1.缓冲区buffer:在nio中负责数据的存取,缓冲区就是数据,用于存储不同的数据类型 * * 数据类型不同(boolean除外),提供对应的缓冲区,其实就是数组 * Byt...原创 2018-08-03 15:50:24 · 833 阅读 · 0 评论 -
Java nio完成网络通信(三)
使用Java nio实现网络通信。以下是用nio实现简单网络通信的demo/** * 使用NIO完成网络通信 * *1.通道channel:负责连接 * java.nio.channels.Channel * |--selectableChannel * |--socketchannel * |--serverSocketChannel * ...原创 2018-08-06 10:38:16 · 653 阅读 · 0 评论 -
java NIO中的channel、分散、聚集(二)
Java NIO中的通道(channel)介绍、通道的实现方式、直接缓冲区和非直接缓冲区、nio中的分散聚集。/** * * * 一.通道(channel):用于源节点和目标节点的连接。在Java nio中负责数据的传输, * channel本身不存储数据,因此需要配合缓冲区进行传输。 * * 写数据到Buffer有两种方式: 从...原创 2018-08-06 10:33:06 · 7593 阅读 · 0 评论 -
详解java类的生命周期
引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑,笔者打开百度搜了一下相关的问题,看到网上的资料很少有把这个问题讲明白的,主要是因为目前国内java方面的教材大多只是告诉你“怎样做”,但至于“为什么这样做”却不多说,所以造成大家在基础和原理方面的知识比较匮乏,所以笔者今天就斗胆来讲一下这个问题,权当抛砖引玉,希望对在这个问题上有疑惑的朋友有所帮转载 2018-01-26 11:27:23 · 505 阅读 · 0 评论 -
PDF分页封口的问题(未解决)
今天工作中遇到一个PDF分页未封口的问题如图:查阅了很多资料没有找到解决办法,博友有什么好的建议想法,希望留言感激不尽。项目信息:PDF是用ftl模板生成的,把后台查询的数据返回到ftl文件中,把数据填充到相应的位置,导出生成PDF文件。ftl文件的部分代码: .txt{ border-bottom:#666 1px so原创 2017-03-15 10:31:17 · 1442 阅读 · 1 评论 -
ConcurrentHashMap解析
曾经研究过jkd1.5新特性,其中ConcurrentHashMap就是其中之一,其特点:效率比Hashtable高,并发性比hashmap好。结合了两者的特点。 集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发转载 2017-03-14 22:07:20 · 620 阅读 · 0 评论 -
项目运行时报错: org.mybatis.spring.MyBatisSystemException
项目运行时报错:org.mybatis.spring.MyBatisSystemException at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1071)at com.alibaba.druid.pool.DruidDataSource.getConnect原创 2016-08-08 12:31:43 · 5392 阅读 · 0 评论 -
javaWeb开发细节总结(3)
1.????jquery?ajax?????Ajax??????????????? async???false???????true?var html = $.ajax({ url: "some.php", async: false}).responseText; ???????Ajax??$.ajaxSetup({ async: false原创 2016-07-29 12:28:45 · 500 阅读 · 0 评论 -
Java 8 接口里的默认方法特性
这篇文章我们将要探讨Java8中接口里的默认方法特性。Java8指出“默认方法使得新功能被添加到库中的接口里面,同时又能保证与这些接口老版本代码的二进制兼容性。”这些年Java进化升级了很多,在Java库中引入的接口需要添加新的功能。在没有默认方法特性时,当你往接口中添加新方法时,接口内部所有实现的类都要历经一些修改。这将导致上千行的代码修改工作量。为了避免这点,Java 8引入了默认对象转载 2016-08-04 17:54:14 · 2109 阅读 · 0 评论 -
设置Session永不过期,Session有效时间的问题
保持Session的方法:有人说设session.timeout=-1,或小于0的数。这种方法肯定是不行的,session计算时间以分钟为单位,必须是大于等于1的整数。又有人说设session.timeout=99999。这种同样不行,session有最大时间限制。我经过测试发现最大值为24小时,也就是说你最大可以session.timeout=1440,1441都是不可以有,呵呵。本人测试环境:转载 2016-06-22 16:21:55 · 36892 阅读 · 0 评论 -
javaWeb开发过程中小细节总结(1)
初次接触freemark和bootstrap,使用过程中会遇到很多需要注意的小细节。此博文将不断的总结本人在使用过程中遇到的问题。1.freemark 时间设置${content.createTime?string('yyyy-MM-dd HH:mm:ss')}2.if /list标签的使用${answers.answerContent} 回答者:$原创 2016-06-13 11:08:51 · 1610 阅读 · 0 评论 -
Java 8新特性终极指南
本文由 ImportNew - 刘 家财 翻译自 javacodegeeks。欢迎加入翻译小组。转载请见文末要求。编者注:Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。在Java Code Geeks上已经有大量的关于Java 8 的教程了,像玩转Java 8——lambda与并发,Java 8 Date Time API 教程:转载 2016-06-20 17:08:11 · 1709 阅读 · 1 评论 -
org.apache.commons.lang.StringUtils(StringUtils工具类的常用方法)
工作容易遇到的: 必须要8位,不够的就拿0去补 System.out.println(StringUtils.leftPad("34", 8, "0")); // 00000034 又或者你需要在一个数组中加入一个元素,你可以这么做: 把数组里的字符串用:连接 System.out.println(StringUtils.join(new String[]{"cat",转载 2016-06-20 14:51:43 · 3324 阅读 · 0 评论 -
javaWeb开发过程中小细节总结(2)
1.将json字符串转化成Java对象,和Java对象数组的方法public static void main(String[] args) { User_DAL userDal = new User_DAL();// 创建数据访问对象 ResponseResult ret = userDal.getUserList("id , 2, 10)原创 2016-06-16 18:30:12 · 619 阅读 · 0 评论 -
JAVA两种枚举类型遍历
Java中枚举类型的数据遍历方法总结:枚举类型的遍历方法原创 2016-07-14 17:47:37 · 3462 阅读 · 0 评论