Java
五命九九
一个历经社会毒打的程序媛。
展开
-
【MQ-02】基于SpringBoot的RocketMQ简单Demo(附源码)
创建Topic以下操作都基于目录1下启动brokermqbroker -n localhost:9876创建Topicmqadmin updatetopic -n localhost:9876 -b localhost:10911 -t demo开发生产者Producer原创 2019-12-18 17:48:47 · 347 阅读 · 0 评论 -
【MQ-01】RocketMQ的安装(mac/linux)
前言系统:64bit OS, Linux/Unix/Mac都可安装官网http://rocketmq.apache.org/官方快速开始文档http://rocketmq.apache.org/docs/quick-start/下载地址apache.org/dyn/closer.cgi?path=rocketmq/4.2.0/rocketmq-all-4.2.0-source-rel...原创 2019-12-17 11:19:52 · 509 阅读 · 0 评论 -
【LeetCode】917 仅反转字母(Java版)
题目给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。示例 1: 输入:"ab-cd" 输出:"dc-ba" 示例 2: 输入:"a-bC-dEf-ghIj" 输出:"j-Ih-gfE-dCba" 示例 3: 输入:"Test1ng-Leet=code-Q!" 输出:"Qedo1ct-eeLg=ntse-T!"难度...原创 2019-05-04 10:38:31 · 463 阅读 · 0 评论 -
【已解决】maven打包时xxx.xxx程序包不存在
项目划分项目划分了common, client模块,common是一些共同的功能,client对其进行了依赖,但是在client里面使用common里面的类运行时,会出现xxx.xxx程序包不存在的情况。解决注意!注意!这里有一个巨坑,我已经义无反顾的跳进去一次了,大家一定不要再往里面跳了:Common打包出来的应该是不可执行的jar包,所以不要在Common的pom中定义spring-b...原创 2019-01-10 14:41:10 · 5032 阅读 · 4 评论 -
SpringBoot发送电子邮件(附源码)
Demo下载地址https://github.com/HelloSummer5/SendEmailDemo说明spring提供了非常好用的JavaMailSender接口实现了邮件的发送,其中Spring Boot的Starter也为此提供了自动化配置QQ邮箱需要发送方开启smtp和获取授权码,开启方法:http://service.mail.qq.com/cgi-bin/help...原创 2018-05-31 13:47:11 · 2727 阅读 · 0 评论 -
基于SpringBoot的图片上传与显示(附源码)
Demo地址https://github.com/HelloSummer5/FileUploadDemo效果图预览思路一般情况下都是将用户上传的图片放到服务器的某个文件夹中,然后将图片在服务器中的路径存入数据库。本Demo也是这样做的。由于用户自己保存的图片文件名可能跟其他用户同名造成冲突,因此本Demo选择了使用UUID来生成随机的文件名解决冲突。但是本Demo不涉...原创 2018-05-31 09:27:42 · 35363 阅读 · 23 评论 -
同步和异步查询
同步查询流程 同步查询是指上一个步骤结束后再执行下一步,显然,如果DAO层查询的数据非常多,数据就迟迟不能到达页面,最终无法渲染成网页呈现给用户看。用户则不知道出了什么问题,这显然对用户来说体验是及其不佳的。因此,这时候需要异步查询来解决这个问题。异步查询流程显然,异步查询比同步查询多了几步,但是相对用户体验来说是较佳的。用户先看到渲染出来的页面,然后我们加上loading..动原创 2018-01-25 14:59:12 · 8118 阅读 · 1 评论 -
Java8下连接数据库进行增删改查(CRDU)操作
源码本项目源码下载步骤1.获取数据库连接此处直接用写好的DBUtil操作,这里查看详解Connection conn = DBUtil.getConnection();2.创建会话,有两种方式1.使用Statement创建(因为有注入问题,现今几乎不使用)Statement stmt = conn.createStatement();2.使原创 2018-01-24 17:29:01 · 2602 阅读 · 0 评论 -
使用测试类Test程序
测试类简单来说就是专门用来测试别的类的类,该类没有main方法。为什么用测试类假如写了个操作数据库增删改查的工具类,但是想测试一下代码功能是否正确。 如果不用测试类,我必须声明个main方法,在里面一个个调用每个方法,调用完insert方法之后将它注释,再调用下一个…以此类推。手动注释非常麻烦,假如后面我们需要扩展insert的功能,继续测试insert(),又要将其他方法注释掉,非原创 2018-01-24 08:57:12 · 28086 阅读 · 0 评论 -
Java连接SQLServer2008的方法(含jdk7和jdk8的两种方式)
工具如果是 jdk7 和 jdk7 以前的版本,用 jdbc.jar 如果是 JDK8,用 jdbc4.jar Java源码+sql语句打包下载步骤1. 加载数据库驱动Class.forName(驱动全类名);假如是JDK7和JDK7以前的版本,驱动全类名=sun.jdbc.odbc.JdbcOdbcDriver如果是JDK8,驱动全类名= com.mi原创 2018-01-22 16:48:27 · 8079 阅读 · 4 评论 -
【LeetCode】002 两数相加(Java版)
题目 002 两数相加给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807难度系数:...原创 2019-05-03 12:51:37 · 151 阅读 · 0 评论 -
【LeetCode】003 无重复的最长子串(Java版)
参考文章:https://www.jianshu.com/p/423299d9f601题目描述给定一个字符串,找出不含有重复字符的最长子串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 无重复字符的最长子串是 “abc”,其长度为 3。示例 2:输入: “bbbbb”输出: 1.解释: 无重复字符的最长子串是 “b”,其长度为 1。示例 3:输入: ...原创 2019-05-03 16:48:10 · 185 阅读 · 0 评论 -
【LeetCode】015 三数之和(Java版)
题目给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a, b, c 使得a + b +c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]思路先把数组排序,设定两个指针left和...原创 2019-05-03 21:39:13 · 125 阅读 · 0 评论 -
【SpringBoot】处理全局异常(附源码)
自定义一个业务异常@Datapublic class CustomerException extends RuntimeException{ private static final long serialVersionUID = 1L; /** 错误码 **/ private Integer code; public CustomerExceptio...原创 2019-06-20 11:05:31 · 487 阅读 · 0 评论 -
【Elasticsearch-01】Elasticsearch安装(Win、Mac)
本文主讲win和mac环境的安装,为快速上手学习用。真正应该在Linux上安装,应该有很多坑。待同志们后续完善…下载地址官网:https://www.elastic.co/downloads/elasticsearchwin:链接:https://pan.baidu.com/s/1w-d5nkbeWEDLPquEy6lHyQ 提取码:0mwzmac:待上传linux:待上传根据自己的...原创 2019-08-08 17:42:58 · 449 阅读 · 0 评论 -
【Elasticsearch-02】Kibana安装
下载地址官网(较慢):https://www.elastic.co/downloads/kibanawin:链接:https://pan.baidu.com/s/1ueyo2bYfnzS9oY4KsZQ3qw 提取码:i4rw按需自取安装步骤下载解压即可,如果需要定制kibana可以设置修改config/kibana.yml注意:打开Kibana前把es打开,它依赖eswin运行b...原创 2019-08-08 17:51:26 · 245 阅读 · 3 评论 -
【Elasticsearch-03】文档、索引和RESTAPI
1. 文档ElasticSearch是面向文档的,文档是所有可搜索数据的最小单位,例如:日志文件中的日志项一部电影的具体信息 / 一张唱片的详细信息MP3播放器里的哼一首歌 / 一篇PDF文档中的具体内容文档会被序列化成JSON格式,保存在ElasticSearch中JSON对象由字段组成每个字段都有对应的字段类型( 字符串/ 数值 / 布尔 / 日期 / 二进制 ...原创 2019-08-08 18:05:13 · 224 阅读 · 0 评论 -
【SpringBoot】SpringBoot+AOP全局打印日志(附源码)
源码https://github.com/HelloSummer5/GlobalLogDemo传统打日志方式不够优雅不够美观,会造成许多日志代码冗余@GetMapping("list")public Result listUser(){ log.info("======进入Controller====="); List<User> userList = use...原创 2019-08-07 11:39:53 · 769 阅读 · 0 评论 -
【Elasticsearch-04】集群、节点、分片、副本
背景分布式系统的可用性与扩展性高可用性服务可用性 - 允许有节点停止服务数据可用性 - 部分节点丢失,不会丢失数据可扩展性请求量 提升 / 数据的不断增长(将数据分布到所有节点上)分布式特性ElasticSearch 的分布式架构的好处存储的水平扩容提高系统的可用性,部分节点停止服务,整个集群的服务不受影响ElasticSearch的分布式架构不同的集群...原创 2019-08-12 11:31:42 · 1499 阅读 · 0 评论 -
【Java基础15_1】Collection类及其基本用法
体系结构图 Collection常见API 添加功能 方法声明 作用 boolean add ( Object obj ) 添加一个元素 boolean addAll ( Collection c ) 添加一个集合的元素 删除功能 方法声明 作用 void clear() 移除所有元素 boolean remove(Object o) 移除一个元原创 2017-10-20 21:44:12 · 1881 阅读 · 0 评论 -
【Java基础12_2】String类
常见构造方法 方法 作用 public String ( ) 空构造 public String ( byte[ ] bytes ) 把字节数组转成字符串 public String ( byte[ ] bytes,int index,int length ) 把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度) publi原创 2017-10-16 11:39:11 · 176 阅读 · 0 评论 -
【Java基础Demo】模仿用户登录
基于用户从控制台输入模拟的简陋的用户登录验证Demo:import java.util.Scanner;public class Login { public static void main(String[] args) { // 初始化Scanner对象 Scanner sc =new Scanner(System.in); // 提示用户输入原创 2017-10-16 11:46:26 · 903 阅读 · 0 评论 -
【Java基础08_1】代码块
概述在Java中,使用{}括起来的代码被称为代码块。 分类局部代码块 位置:在局部位置,方法中 作用:缩小变量的作用域,减少变量的声明周期,提早的释放的内存。构造代码块 位置:在类中,方法外 (成员位置)特点:每一次在创建对象之前,都会调用一次构造代码块作用:多个构造方法方法中相同的代码存放到一起,每次调用构造都执行,并且在构造方法前执行静态代码块位置:在类中,方法外 (成员原创 2017-10-13 15:59:45 · 146 阅读 · 0 评论 -
【Java基础09_3】接口
概述在人类社会中,人们通过学习会拥有不同的技能,每类人学的技能是不同的,学习计算机专业的人会编程,舞蹈家能够翩翩起舞,摄影师会拍照和后期修图。但是,并不是每个人都会编程,不是每个人都会跳舞,更不是每个人都会修图。如果把这些技能放到人类属性中,显然不合适。把这些技能放到Biology生物类中,那就更加不合适了。因此,产生了接口,用于形容一类事物特有的“技能”。哪一类事物拥有该技能,就可以继承该接原创 2017-10-09 19:19:59 · 188 阅读 · 0 评论 -
【JavaDemo】使用Entry遍历含自定义类的Map集合
含有自定义类的Map遍历 Demo2 此Demo演示方法2:获取键值对对象Entry,然后用Entry分别键获取键和值。Map含有自定义类Singer。 自定义类Singer //歌手类public class Singer {private String name;private String songName;public Singer(String name, Str原创 2017-10-22 10:54:10 · 944 阅读 · 0 评论 -
【JavaDemo】使用key遍历含自定义类的Map集合
含有自定义类的Map遍历 Demo1此Demo演示方法1:先获取所有的键key的Set集合,然后根据键获取值。Map含有自定义类Singer。 自定义类Singer//歌手类public class Singer {private String name;private String songName;public Singer(String name, String songName原创 2017-10-22 10:50:46 · 575 阅读 · 2 评论 -
【Java基础09_1】多态
多态概述事物在不同时刻表现的出的不同状态例:一个人在人类社会中生存总会扮演着多种角色,于父母而言,他是儿子或者女儿,在学校他是学生,毕业后是职场中的一员,结婚后是丈夫或者妻子,生子后是父母……等等。 前提条件要有 继承 关系要有 方法重写 (其实没有也可以,但是没有方法重写就没有意义了,因为多态主要是靠方法重写来表现类的不同状态的)父类的引用指向子类对象例: Father father =原创 2017-10-08 20:53:19 · 206 阅读 · 0 评论 -
【Java基础09_2】抽象类
概述在整个生物圈中,有着许多不同的物种,人,猴子,猫,狗,羊……等等。吃饭和睡觉是生物的共同特点,按照继承的思维可以将其抽象成一个生物类Biology,共同行为是吃eat和睡sleep但实际上每个物种的生活习惯都不相同。例如,吃,人是杂食动物,猴子爱吃香蕉,猫爱吃鱼,狗啃骨头,羊吃草等等。因此,吃东西这一行为根本不能像继承思维那样写成一个具体的方法,因为每种生物吃的东西都不一样。因此,需要用原创 2017-10-09 14:17:57 · 215 阅读 · 0 评论 -
【Java基础03】数组及其遍历、最值、反转、查表和基本查找
数组的定义以及初始化1.数组可以存储基本数据类型和引用数据类型。但是所有元素必须是一个类型。2.格式 :1) 数据类型 [ ] 数组名; // 定义了一个int类型的数组a2) 数据类型 数组名 [ ]; //定义了一个int类型的a数组3.数组的初始化1) 动态初始化:只指定长度,有系统初始化值2) 静态初始化:给出初始化值,由系统决定长度4.动态初始化数据类原创 2017-09-26 19:43:43 · 528 阅读 · 0 评论 -
【前缀自增/减++i】和【后缀自增/减i++】的区别
前缀自增/减前缀自增/减会先运算后传值。这里的运算指的是该数本身自增+1或者自减-1。 后缀自增/减后缀自增/减会先传值后运算。-这里的运算指的是该数本身自增+1或者自减-1。 示例 1public static void main(String[] arg0){ int a = 1; int b = 1; ++a; b++; System.out.原创 2017-09-25 16:22:41 · 1573 阅读 · 0 评论 -
【Java基础08_2】继承
概述多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。 格式通过extends关键字可以实现类与类的继承:class 子类名 extends 父类名 { }父类:称之为基类或者超类;子类:也称为派生类。 继承 Demo1// 定义一个人类class Person { // 成员变量 private Stri原创 2017-10-13 15:13:11 · 284 阅读 · 0 评论 -
【Java基础08_3】final关键字
概述final关键字是最终的意思,可以修饰类,变量,成员方法。final存在的原因:由于继承中有一个方法重写的现象,而有时候我们不想让子类去重写父类的方法.这对这种情况java就给我们提供了一个关键字: final 特点修饰类:被修饰类不能被继承修饰方法: 被修饰的方法不能被重写修饰变量:被修饰的变量不能被重新赋值,因为这个量其实是一个常量! final 修饰方法// 父类class原创 2017-10-13 16:34:50 · 219 阅读 · 0 评论 -
【Java基础】Transient关键字
阅读原文transient的作用及使用方法我们都知道一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,打个比方,如果转载 2017-11-01 16:43:50 · 170 阅读 · 0 评论 -
【Java基础14_1】正则表达式
概念正则表达式即正确的规则,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。 原始方法校验需求:校验QQ号码 要求必须是 5-15位 数字0 不能开头import java.util.Scanner;//使用原始的做法完成校验QQ号码public class RefexDemo { public static void main (String[] args) {原创 2017-10-15 19:21:10 · 205 阅读 · 0 评论 -
【JavaDemo】用Java输出金字塔( 三角形和倒三角形 )
需求如图,写一个方法,通过传参指定行数打印对应行数的正三角形,用 * 表示。分析打印每行 * 之前循环打印 \t .假设传递进来的参数是line,那么line - row>=0倒三角形同理源码:package cn.demo;/* * 打印三角形 */public class PrintStarDemo { public static void main(String[]原创 2017-10-31 12:59:47 · 7962 阅读 · 0 评论 -
【Java基础18_3】TreeMap类
概述底层是二叉树 ( 红黑树 ) 的数据结构TreeMap能够对键进行排序 按照自然顺序排序按照比较器排序 构造方法 构造方法 作用 public TreeMap ( ) 使用自然顺序对键进行排序 public TreeMap ( Comparator comparator ) 使用比较器对键进行排序 TreeSet自然排序Demoimport java.util.M原创 2017-10-24 09:12:30 · 262 阅读 · 0 评论 -
【Java基础18_1】Map集合
引子班级中有很多学生,有可能出现姓名和年龄也一样的人。如表: 姓名 年龄 张三 20 张三 20上面的这种情况,有可能是用户输入失误导致插入的数据出现重复,也有可能这两个人只是恰巧同名同姓而已,实际上根本不是同一个人。此时,单单用姓名无法保证插入数据的唯一性,因此采取以下措施:用ID保证在1的基础同时用姓名保证Map一个键对应存储的一个值。 Map 与Collection原创 2017-10-22 09:47:05 · 279 阅读 · 0 评论 -
【Java基础18_2】HashMap类
概述底层数据结构是哈希表,是Map集合类的一个子类,它的数据结构只针对键有效。没有特有的方法,使用参考Map集合。 HashMapDemoimport java.util.HashMap;import java.util.Map.Entry;import java.util.Set;/* * HashMapDemo */public class HashMapDemo { pu原创 2017-10-24 09:08:31 · 198 阅读 · 0 评论 -
【Java基础19_1】异常Exception
概述异常就是程序运行过程中可能产生的问题。 异常继承体系 异常的分类严重性问题:用错误Error类表示(一般不解决也没有能力解决)非严重性问题:(用异常类Exception表示) ①. 运行期异常:发生在程序运行过程中产生的问题,只要是RunTimeException或者RunTimeException的子类都是运行时产生的异常。 ②. 编译期异常:发生在程序编译时期产生的问题。除了R原创 2017-10-24 08:54:39 · 264 阅读 · 0 评论 -
【Java基础Demo】敏感字屏蔽
原理敏感字利用的是String类中提供的方法用contain()方法查找敏感字用replace()方法替换即屏蔽“敏感字”方法介绍如下 方法名 作用 public boolean contains(String str) 判断字符串中是否包含传递进来的字符串 public String replace(String old,String new) 将指定字符串进行互换(互换第原创 2017-10-15 08:43:49 · 919 阅读 · 0 评论