笔记之类的
文章平均质量分 65
宝贝企鹅
这个作者很懒,什么都没留下…
展开
-
一道腾讯面试题:如何快速判断某 URL 是否在 20 亿的网址 URL 集合中?
何为布隆过滤器 还是以上面的例子为例: 判断逻辑: 多次哈希: Guava的BloomFilter 创建BloomFilter 最终还是调用: 使用: 算法特点 使用场景 假设遇到这样一个问题:一个网站有 20 亿 url 存在一个黑名单中,这个黑名单要怎么存?若此时随便...转载 2019-09-23 10:12:22 · 649 阅读 · 1 评论 -
取得当天的零点
根据需求需要取得当天的零点 LocalDateTime today_start = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);//当天零点 String td_st_str =today_start.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); ...转载 2018-07-12 08:47:20 · 7689 阅读 · 0 评论 -
使用java8的lambda将list转为map(转)
常用方式代码如下:public Map<Long, String> getIdNameMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getId, Account::getUsername));}收集成实体本身map代码如下:publ...转载 2018-07-12 11:49:09 · 4411 阅读 · 0 评论 -
Java for循环和foreach循环的性能比较
在公司codereview过程中,发现一个问题,就是有些人循环用的是普通for循环,有些人用的是foreach循环,它们之间有什么区别?应该在什么时候使用这两种循环了?两种循环的语法格式:普通for循环语法: for (int i = 0; i < integers.length; i++) { System.out.println(intergers...转载 2018-07-25 14:40:12 · 670 阅读 · 0 评论 -
Java8新特性——StreamAPI(一)
1. 流的基本概念1.1 什么是流?流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。因此,流的集合操作对我们来说是透明的,我们只...转载 2018-07-26 09:49:15 · 231 阅读 · 0 评论 -
Java8新特性——StreamAPI(二)
1. 收集器简介收集器用来将经过筛选、映射的流进行最后的整理,可以使得最后的结果以不同的形式展现。collect方法即为收集器,它接收Collector接口的实现作为具体收集器的收集方法。Collector接口提供了很多默认实现的方法,我们可以直接使用它们格式化流的结果;也可以自定义Collector接口的实现,从而定制自己的收集器。这里先介绍Collector常用默认静态方法的使...转载 2018-07-26 09:50:30 · 191 阅读 · 0 评论 -
使用OPtional的orElse()问题
使用OPtional的orElse()问题项目中有这样一段代码:return Optional.ofNullable(service.A()).orElse(service.B())1功能显而易见,service.A()如果返回值是null,则返回service.B(),否则直接返回service.A()。实际使用中发现:如果service.A()返回非null,最终结果是se...转载 2018-07-26 10:24:40 · 21886 阅读 · 1 评论 -
Java 8 中的 Streams API 详解
Streams 的背景,以及 Java 8 中的使用详解为什么需要 StreamStream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。它也不同于 StAX 对 XML 解析的 Stream,也不是 Amazon Kinesis 对大数据实时处理的 Stream。Java 8 中的 Stream 是...转载 2018-07-26 15:50:26 · 140 阅读 · 0 评论 -
Spring Boot 基础
开始使用 Spring Boot 编写能直接运行的 Spring 应用程序J Steven Perry2017 年 6 月 28 日发布WeiboGoogle+用电子邮件发送本页面6Spring Boot 是一个轻量级框架,可以完成基于 Spring 的应用程序的大部分配置工作。在本教程中,将学习如何使用 Spring Boot 的 starter、特性和可执行 JAR ...转载 2018-07-26 15:56:07 · 136 阅读 · 0 评论 -
用idea将javaweb项目部署到tomcat
之前在网上找的一些web项目都是用eclipse开发的,想把这些项目导入到idea中,然后部署到tomcat中,在网上找了很多教程,很多都不靠谱,发现网上很多配置都是多余的,其实很多只需要按idea默认的配置就行了。后来自己一直琢磨终于搞定,希望别人遇到同样的问题的时候,我这篇文章能解决你的问题,不要像我一样,把很多事情浪费在这上面。首先看我这个项目的目录结构,本来是eclipse项目,所以有se...转载 2018-07-02 08:58:44 · 333 阅读 · 0 评论 -
Lambda表达式和Java集合框架
Lambda表达式和Java集合框架本文github地址Java8为容器新增一些有用的方法,这些方法有些是为完善原有功能,有些是为引入函数式编程(Lambda表达式),学习和使用这些方法有助于我们写出更加简洁有效的代码.本文分别以ArrayList和HashMap为例,讲解Java8集合框架(Java Collections Framework)中新加入方法的使用.前言我们先从最熟悉的Java集合...转载 2018-06-01 15:28:27 · 154 阅读 · 0 评论 -
MySQL之——查询重复记录、删除重复记录方法大全
查找所有重复标题的记录:[sql] view plain copySELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC 一、查找重复记录1、查找全部重复记录转载 2017-12-09 15:12:25 · 3134 阅读 · 2 评论 -
java8新的时间日期库及使用示例
来自:Java译站链接:http://it.deepinmind.com/java/2015/03/17/20-examples-of-date-and-time-api-from-Java8.html英文:http://javarevisited.blogspot.sg/2015/03/20-examples-of-date-and-time-api-from-Java8.html本转载 2017-12-22 16:46:50 · 329 阅读 · 0 评论 -
不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁
不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator 方式,如果并发操作,需要对 Iterator 对象加锁。 正例: Iterator iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(转载 2017-12-15 16:47:29 · 2740 阅读 · 0 评论 -
高度注意 Map 类集合 K/V 能不能存储 null 值的情况
集合类KeyValueSuper说明Hashtable 不允许为 null不允许为 nullDictionary 线程安全ConcurrentHashMap 不允许为 null不允许为 nullAbstractM转载 2017-12-15 17:18:47 · 726 阅读 · 0 评论 -
java基础——Collections.sort的两种用法
Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public static <T extends Comparable<? super T>> void sort(List<T> list) { list.sort(null); } public static ...转载 2018-05-17 13:47:26 · 304 阅读 · 0 评论 -
JAVA Iterator 转成 List
List转到Iterator容易,JDK本身就支持,反过来的实现方式如下:1.使用Apache Common Collections 2.自己实现的方法转换3.Guaa实现转换[java] view plain copy 方式1: #Apache Commons Collections: import org.apache.commons.collections.IteratorUtils; ...转载 2018-05-24 11:57:17 · 3994 阅读 · 0 评论 -
fiddler发送post请求
v1.指定为 post 请求,输入 url Content-Type: application/x-www-form-urlencoded;charset=utf-8 request body中的参数格式:userName=adminicxp&userPassword=123qwe!@# 这种方式可以用 request.getParameter的方式来获得。v2.指定为 post ...转载 2018-05-29 15:40:08 · 2306 阅读 · 0 评论 -
Spring MVC 的@RequestParam注解和request.getParameter("XXX")
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。这里主要讲这个注解 一、基本使用,获取提交的参数 后端代码: Java代码 @RequestMapping("testRequestParam") public String filesUpload(@Reques...转载 2018-05-29 17:33:05 · 2568 阅读 · 0 评论 -
Java8中计算日期时间差
一.简述在Java8中,我们可以使用以下类来计算日期时间差异:1.Period2.Duration3.ChronoUnit二.Period类主要是Period类方法getYears(),getMonths()和getDays()来计算.示例:package insping;import java.time.LocalDate;import java.ti...转载 2018-08-03 16:29:39 · 2728 阅读 · 1 评论 -
APP开发浅谈-Fiddler抓包详解
Fiddler抓包工具在APP开发过程中使用非常频繁,对开发者理解HTTP网络传输原理以及分析定位网络方面的问题非常有帮助。今天抽点时间出来总结一下Fiddler在实际开发过程中的应用。我开发过程中使用的比较多的抓包工具主要有MiniSniffer,Fiddler和Wireshark。其中MiniSniffer是一款体积小巧的老牌网络抓包工具,嗅探、捕获各种程序开启的网络连接数据。Wiresh...转载 2018-08-02 17:46:56 · 1038 阅读 · 0 评论 -
java集成WebSocket向所有用户发送消息
package com.reading.controller.library;import org.springframework.stereotype.Controller;import org.springframework.web.socket.server.standard.SpringConfigurator;import javax.websocket.*;import j...转载 2018-10-16 12:00:27 · 2408 阅读 · 0 评论 -
Java 并发:volatile 关键字解析
摘要:在 Java 并发编程中,要想使并发程序能够正确地执行,必须要保证三条原则,即:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能会导致程序运行不正确。volatile关键字 被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题。一旦一个共享变量被 volatile关键字 修饰,那么就具备了两层语义:内存可见性和禁止进行指令重排序。在多线程环境下,volatile关键字...转载 2018-10-17 17:54:10 · 114 阅读 · 0 评论 -
Java ip地址查询,根据ip接口获得ip所在省市区,邮编,运营商等
互联网有很多接口可以实现通过ip查询到具体的位置,如下:通过淘宝IP地址库获取IP位置1. 请求接口(GET):http://ip.taobao.com/service/getIpInfo.php?ip=[ip地址字串]2. 响应信息:(json格式的)国家 、省(自治区或直辖市)、市(县)、运营商3. 返回数据格式:{"code":0,"data":{"ip":"210.75...转载 2019-05-27 09:39:22 · 5179 阅读 · 0 评论 -
springboot 项目普通类中调用mapper或service接口
1、该类使用@Component注解2、添加一个本类类型的静态字段3、创建一个初始化方法,贴上@PostConstruct 标签,用于注入bean4、创建方法调用mapper或service接口5、最后直接在普通类中调用即可例如:...转载 2019-06-05 10:19:15 · 1459 阅读 · 4 评论 -
隐藏tomcat页面异常显示的版本信息
1.正常情况下,tomcat遇到404或500会返回版本信息:2.有时我们不需要暴露版本信息,像这样:3.只需要修改apache-tomcat-7.0.59的lib目录下的catalina.jar,用好压打开修改为4.在linux环境下进入lib路径unzip catalina.jar编辑ServerInfo.properties...转载 2019-07-09 11:36:05 · 1934 阅读 · 0 评论 -
配置Tomcat-8.5. JVM内存参数
配置Tomcat-8.5.15 JVM内存参数apache-tomcat-8.5.15与之前的版本存在些许差异,配置方式有所改变,并且针对JVM一些参数不再支持。故本文档主要简介一下如何在apache-tomcat-8.5.15容器上配置JVM内存参数。1、创建环境变量文件在%TOMCAT_HOME%\bin\目录下创建文件setenv.bat,...转载 2019-07-05 10:35:45 · 3908 阅读 · 0 评论 -
大数据量下的集合过滤—Bloom Filter
算法背景如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘,要么是内存。很多时候要么是以时间换空间,要么是以空间换时间。在响应时间要求比较严格的情况下,如果我们存在内里,那么随着集合中元素的增加,我们需要的存储空间越来越大,以及检索的时间越来越长,导致...转载 2019-09-23 10:11:29 · 744 阅读 · 0 评论 -
java集成WebSocket向指定用户发送消息
一.WebSocket简单介绍随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回re...转载 2018-10-16 11:59:24 · 2208 阅读 · 0 评论 -
windows下使用批处理脚本实现多个版本的JDK切换
转载:https://www.cnblogs.com/xdp-gacl/p/5209386.html一.JDK版本切换批处理脚本 我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK,如下图所示: 当我们想要切换使用的JDK版本时,我们可以有两种做法: 1.手动...转载 2018-10-16 09:28:46 · 194 阅读 · 0 评论 -
sql中的in与not in,exists与not exists的区别
1、对于not exists查询,内表存在空值对查询结果没有影响;对于not in查询,内表存在空值将导致最终的查询结果为空。2、对于not exists查询,外表存在空值,存在空值的那条记录最终会输出;对于not in查询,外表存在空值,存在空值的那条记录最终将被过滤,其他数据不受影响。 not in 逻辑上不完全等同于not exists,如果你误用了not in,小心你...转载 2018-08-03 14:37:26 · 370 阅读 · 0 评论 -
java中如何高效的判断数组中是否包含某个元素---
package zaLearnpackage;import org.apache.commons.lang3.ArrayUtils;import java.util.Arrays;import java.util.HashSet;import java.util.Set;//检查数组是否包含某个值的方法public class TestArray { //使用Li...转载 2018-08-20 18:18:04 · 677 阅读 · 0 评论 -
mysql 随机选取一条记录
要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18...转载 2018-09-03 11:52:28 · 805 阅读 · 0 评论 -
Tomcat启动时自动加载Servlet
Tomcat启动时自动加载Servlet1、想做一个服务启动时自动启动一不停止的获取订阅功能2、之前是做一个Jsp页面请求servlet来触发方法3、现在实现Tomcat启动时自动加载Servlet1、Tomcat中启动Servlet时,只需要在Servlet所在的工程的配置文件web.xml中写成如下即可<!-- 自动启动订阅接口 --> <servl...转载 2018-09-25 11:42:57 · 728 阅读 · 0 评论 -
获得这两个时间的所有天数及其周几
List<DateUtil> dateList = new ArrayList<>();long distance = ChronoUnit.DAYS.between(todayLocal, plusXDayLocal);Stream.iterate(todayLocal, d -> d.plusDays(1)).limit(distance + 1).fo...原创 2018-09-27 09:22:26 · 206 阅读 · 0 评论 -
String.format()用法
1 占位符1.1 单个占位符String s = String.format("Hello %s,Welcome to my blog!", "jerry");System.out.println(s);//Hello jerry,Welcome to my blog!1.2 多个占位符1.2.1 按顺序String s = String.format("Hello %s%s%s...转载 2018-10-12 15:54:56 · 2649 阅读 · 0 评论 -
String.format(2)
转载:https://blog.csdn.net/feng_870906/article/details/6870788String.format是在JDK1.5中新增的静态方法,功能强。它主要功能是格式化数据,大致分为这些类(常规类型、字符类型、数值类型、日期类型)。它的语法如下: 常规类型、字符类型和数值类型的格式说明符的语法:%[参数索引位置$][转换标识符][最小官渡][.保留精度位数...转载 2018-10-12 16:07:06 · 389 阅读 · 0 评论 -
String.format()格式化日期(2)
在以前的开发中,日期格式化一直使用的是SimpleDateFormat进行格式化。今天发现String.format也可以格式化。当 然,两种方式的优劣没有进行深入分析。1. 日期格式化 (2018/5/13 周日 中文环境下测试)转换符 说明 结果 %tb 指定语言环境下的月份简称 五月 %tB 指定语言环境下的月份全称 ...转载 2018-10-15 17:26:52 · 1292 阅读 · 0 评论 -
MySQL中大数字加减,不产生千位符和科学计数
mysql数字加减科学计数法这两天因为需求,需要获取一张表的流水号。规则是这样的。当前日期+8位流水号。比如:2015062400000001,2015062400000002,2015062400000003....因为考虑到并发问题,所以解决的方案是:在MySQL写存储过程,逻辑如下:1、查询表今天流水号的最大主键值:如:[sql] view转载 2017-12-09 15:07:44 · 2418 阅读 · 0 评论 -
oracle alter table
oracle alter tableALTER TABLE (表名) ADD (列名 数据类型);ALTER TABLE (表名) MODIFY (列名 数据类型);ALTER TABLE (表名) RENAME COLUMN (当前列名) TO (新列名);ALTER TABLE (表名) DROP COLUMN (列名);ALTER TABLE (当前表名) RENAM转载 2015-12-01 10:23:51 · 618 阅读 · 0 评论