
Java
文章平均质量分 58
Java
PrinciplesMan
一个人的生命是应该这样度过的:当他回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞耻。
展开
-
java8新特性 stream流的方式遍历集合和数组操作
在没有接触java8的时候,我们遍历一个集合都是用循环的方式,从第一条数据遍历到最后一条数据,现在思考一个问题,为什么要使用循环,因为要进行遍历,但是遍历不是唯一的方式,遍历是指每一个元素逐一进行处理(目的),而并不是从第一个到最后一个顺次处理的循环,前者是目的,后者是方式。这个和lambda表达式的延迟加载的原理一样,它可以进行链式编程,比如 ().filter().map().limit(),可以点下去,到最后一步(方法为count或者foreach)加载数据。执行完的结果不能在调用延迟方法。转载 2023-03-04 15:45:33 · 3953 阅读 · 0 评论 -
spring-boot中统一修改http响应体内容的方法
在spring-boot开发中,有时候会遇到一些统一修改http接口响应体内容的场景,比如统一增加一些响应头信息、统一增加一些数据包装处理、数据转换等场景,spring框架中已经为我们提供了这种能力,即切面的使用,ResponseBodyAdvice就是spring框架中预留的钩子,它作用在Controller方法执行完成之后,http响应体写回客户端之前,这个时候我们就能方便的织入一些自己的业务逻辑处理了。转载 2023-02-24 01:24:15 · 515 阅读 · 0 评论 -
使用docker启动 MySQL8.0
因为mysql8对登录密码的方式做了调整,所以每次安装完mysql都要去翻翻教程,特此记录下,方便以后查看。转载 2022-10-11 10:21:21 · 464 阅读 · 0 评论 -
maven 配置多个仓库
然后第一想法就是在 mirrors 节点下多增加几个 mirror,然而并不可以。正确的操作是在 profiles 节点下配置多个 profile,通过配置 activeProfiles 子节点激活。如果在 IDE 里,记得要更新生效,然后就可以了。配置 profiles。转载 2022-10-10 00:17:50 · 875 阅读 · 0 评论 -
ConcurrentSkipListMap
一个可伸缩的并发实现,这个map实现了排序功能,默认使用的是对象自身的compareTo方法,如果提供了比较器,使用比较器的比较方法。简单来说ConcurrentSkipListMap是TreeMap的并发实现,但是为什么没有称之为ConcurrentTreeMap呢?这和其自身的实现有关。该类是SkipLists的变种实现,提供了log(n)的时间开销:containsKey、get、put、remove。Insertion, removal, update, and access等操作都是线程安全的。转载 2022-10-02 12:26:50 · 5686 阅读 · 0 评论 -
Java 之 volatile 详解
/ 步骤 2 } public String get() { if (flag) { // 步骤 3 System.out.println("i = " + i);转载 2022-09-28 11:34:03 · 3108 阅读 · 0 评论 -
Idea Java项目问题总结-初学者
问题1:idea右键建包无package(无class等之类的同样适用)idea右键建包无package(无class等之类的同样适用)_MO__YE的博客-优快云博客_idea右键没有包Intelidea创建好项目之后,右键新建Java class的时候发现没有改选项,只有以下几个选项把src目录设为源码目录,首先打开Project Structure如果有test测试文件夹就选中然后点Test按钮最后点击OK完成...https://blog.youkuaiyun.com/MO__YE/article/de.原创 2022-04-05 17:03:44 · 576 阅读 · 0 评论 -
BUG记录-SpringBoot找不到jaxb相关jar包
启动项目是成功的,但是上面报了四个错误,看的一脸懵逼,项目也没用这个jaxb的依赖包啊java.io.FileNotFoundException: D:\szw\repository\com\sun\xml\bind\jaxb-impl\2.1\jaxb-api.jar (系统找不到指定的文件。)java.io.FileNotFoundException: D:\szw\repository\com\sun\xml\bind\jaxb-impl\2.1\activation.jar (系统找不到指定的转载 2022-01-08 14:42:49 · 3525 阅读 · 0 评论 -
UTF-8有BOM和无BOM的区别
BOM——Byte Order Mark,就是字节序标记概念:在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE“的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符”ZERO WIDTH NO-BREAK SPACE“。如果接收者收到FEFF,就表明这个字节流是大字节序的;如果收到FFFE,就表明这个字节流是小字节序的。因此字符”ZERO WIDTH NO-BREAK SPACE“又转载 2021-12-17 22:30:09 · 915 阅读 · 0 评论 -
为什么JAVA中(byte)128结果为-128;(byte)-129结果为127
在JAVA中默认的整型为int型,int型占4个字节,为32位。byte占一个字节为8位。JAVA中的二进制都是采用补码形式存储:⑴一个数为正,则它的原码、反码、补码相同⑵一个数为负,则符号位为1,其余各位是对原码取反,然后整个数加1int类型的128 原码为0000 0000 0000 0000 0000 0000 1000 0000当将int类型128转换为byte类型时,发生强制转换,截取了最后8位为1000 0000由于第一位代表符号位,按理解应该此处应该表示为-0与0000 .转载 2021-12-14 11:03:47 · 2760 阅读 · 0 评论 -
InvalidDefinitionException: Joda date/time type `org.joda.time.DateTime` not supported by default
缺少jackson-datatype-joda依赖包,增加如下依赖解决。<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-joda</artifactId> <version>2.12.3</version></dependency>...原创 2021-09-29 10:01:05 · 1578 阅读 · 1 评论 -
Java enum常见的用法
一,常量定义public enum WeekDay { SUN, MON, TUE, WED, THT, FRI, SAT}二,swichpublic enum WeekDay { SUN, MON, TUE, WED, THT, FRI, SAT}public class SelectDay{ WeekDay weekday = WeekDay.SUN; public void select(){ switch(weekday){ ...转载 2021-09-25 14:19:28 · 203 阅读 · 0 评论 -
【钉钉回调错误解决方案】Last encoded character (before the paddings if any) is a valid base 64 alpha
【钉钉回调错误解决方案】Last encoded character (before the paddings if any) is a valid base 64 alphaLast encoded character (before the paddings if any) is a valid base 64 alpha原因commons-codec 在 1.13 版本引入了 validateCharacter 方法,来验证在上下文中是否可以解码最后的尾随字符,微信生成的 Encoding.转载 2021-09-04 17:06:16 · 9465 阅读 · 0 评论 -
如何将 Java 项目转换成 Maven 项目
本文内容Java 项目 Maven 项目 Java 项目转换成 Maven 项目本文主要介绍如何将 Java 项目转换成 Maven 项目。首先要明确的是,用 Maven 管理 Java 项目的确方便。它带给你直观的方便是:你不用在网上找 Jar 包,然后把它复制到 lib 目录,再在项目中引用它。而只需向 pom.xml 写入你需要的 Jar 包依赖,Maven 就能自动从本地仓库或远程仓库下载,并引用……如何将一般的 Java 项目转换成 Maven 项目?当你了解了 Java 项目与转载 2021-09-04 17:03:47 · 7740 阅读 · 0 评论 -
HUTOOL工具系列——JAVABEAN
目录参考文档 BeanUtil参考文档HutoolJavaBean:https://hutool.cn/docs/#/core/JavaBean/%E6%A6%82%E8%BF%B0版本:hutool-all4.4.5BeanUtil复制Bean的属性到另一个bean——copyProperties转载 2021-09-02 09:44:43 · 480 阅读 · 0 评论 -
从Map中 取出第一个key/第一个value的方法
从Map中取出第一个 key 和 value 的方法,使用Map.Entry进行操作; 可与LinckedHashMap(按元素存入顺序排序的有序Hash表)搭配使用;实现特定的业务要求;/** * 获取map中第一个key值 * * @param map 数据源 * @return */ private static String getKeyOrNull(Map<String, Object> map) { Str...转载 2021-09-01 15:35:09 · 5626 阅读 · 0 评论 -
Java中字符串中子串的查找共有四种方法(indexof())
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。如果startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。Java中字符串中子串的查找共有四种方法,如下:1、int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引。2、int indexOf(String str, int startIndex):从指定的索引处开始,...转载 2021-07-23 13:59:25 · 2045 阅读 · 0 评论 -
Java中字符串中子串的查找共有四种方法(indexof())
indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。如果startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。Java中字符串中子串的查找共有四种方法,如下:1、int indexOf(String str):返回第一次出现的指定子字符串在此字符串中的索引。2、int indexOf(String str, int startIndex):从指定的索引处开始,...转载 2021-06-25 15:09:54 · 8538 阅读 · 0 评论 -
springboot使用nacos做注册中心
上面两篇写了如何使用nacos做配置中心,有兴趣的童鞋可以回头看一下,《springboot使用nacos做配置中心》,以及《springboot使用nacos做配置中心(下)》,分别介绍了作为配置中心,数据默认存储方式和数据存储到mysql数据库的方式。当然,nacos另一个特点是可以做注册中心,相对于zookeeper和eureka,nacos有以下特点:他同时支持AP和CP模式,他根据服务注册选择临时和永久来决定走AP模式还是CP模式 自带分布式配置中心 选主节点效率更高,相对于zookee转载 2021-06-20 12:38:53 · 3057 阅读 · 0 评论 -
springboot使用nacos做配置中心(下)
上一篇写了《springboot使用nacos做配置中心》,但是默认使用单机模式,数据存储在内嵌数据库,nacos从0.7.0开始支持数据持久化到数据库,目前仅支持mysql数据源,本文介绍如何将配置信息持久化到mysql数据库。该配置只修改服务端即可,即服务器上部署的nacos-server。1、安装数据库mysql版本要求:5.6.5+数据库初始化脚本:~nacos/conf/nacos-mysql.sql配置文件位置:~nacos/conf/application.propertie.转载 2021-06-20 12:33:31 · 525 阅读 · 0 评论 -
nacos初探--作为配置中心2
nacos,官方介绍【一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台】,本文我们先来了解它的配置管理。官方网址分布式配置中心有多个,包括Apollo、Disconf等等,已经有大神做了各种对比,技术没有好坏,选择适合自己的最好,我们选择nacos是结合了它的服务发现和服务管理,这一块后面再说,今天我们先来看看如何使用它的配置管理。一、服务端先从官方下载nacos-server-$version.zip,目前建议使用稳定版v1.4.1 扔到服务器上(建议linux,windo.转载 2021-06-20 08:35:58 · 252 阅读 · 0 评论 -
nacos初探--作为配置中心
什么是nacosNacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。官方介绍是这样的:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。官方转载 2021-06-20 08:30:15 · 270 阅读 · 0 评论 -
Java中声明变量的八进制与十六进制
Java中声明八进制,在 赋值数字前加0,如int i=012;输出10;声明十六进制,在赋值数字前加0x,如int i=0x12;输出18;如十进制数字0-9;则八进制数字:0-7,但是十六机制:0-9ABCDEF(此处不一样了)转载 2021-06-11 15:54:18 · 910 阅读 · 1 评论 -
jdk1.8 利用 stream 对List<Map<String, Object>> 分组 List<Map<String, Object>>排序
List<Map<String, Object>> 分组//根据工号进行分组 List<Map<String, Object>> dataList = ((PageResult<Map<String, Object>>) tuple.e2).getItems(); Map<String, List<Map<String, Object>>> groupByEmpId=...转载 2021-06-03 16:43:38 · 2588 阅读 · 0 评论 -
org.springframework.web.servlet.NoHandlerFoundException: No handler found for GET
hello你好我是辰兮,最近又来整理自己的bug了,分享获取新知大家一起进步。最近项目启动服务器报出这个异常org.springframework.web.servlet.NoHandlerFoundException: No handler found for GET1"404"除了代表你所要浏览的页面丢失外,你可知它的产生原理?为什么你要访问的页面丢失了?为什么控制台能捕获到异常?我遇到的情况是此时控制台可以输出了这个异常,同时前端报错404org.springframework转载 2021-04-13 22:03:29 · 3988 阅读 · 0 评论 -
Java跨平台特性
1.Java跨平台特性Java有一个其他语言都没有特点,那就是跨平台。平台就是指我们计算机的操作系统,例如:Windows、Linux、Mac等操作系统。跨平台的意思就是Java程序,在一次编译后,在这些平台上都可以运行。其他编程语言没有这个特性,例如c语言在Windows上编译的文件,放到Linux系统上运行,可能就有不兼容问题。首先java的跨平台不是指java语言本身具有跨平台特性,而是不同平台上都有可以让java运行的环境,这个运行环境就是JRE。JRE由JVM和其目...转载 2021-03-24 06:43:03 · 2763 阅读 · 0 评论 -
JAVA Map集合的方法使用和属性
Map是Collection的子接口,具有映射关系的键值对此接口取代 Dictionary 类,Dictionary是一个抽象类,而不是一个接口。给定一个键和一个值,你可以将该值存储在一个Map对象.之后,你可以通过键 来访问对应的值。当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。当在不允许使用Null对象的Map中使用Null对象,会抛出一个.转载 2021-03-12 07:01:12 · 471 阅读 · 0 评论 -
从Map中 取出第一个key/第一个value的方法
从Map中取出第一个 key 和 value 的方法,使用Map.Entry进行操作; 可与LinckedHashMap(按元素存入顺序排序的有序Hash表)搭配使用;实现特定的业务要求;/** * 获取map中第一个key值 * * @param map 数据源 * @return */ private static String getKeyOrNull(Map<String, Object> map) { Str......转载 2021-03-12 06:58:46 · 8419 阅读 · 0 评论 -
double类型转换成int类型
public class test09 { public static void main(String[] args) { double a = 5000.44; double b = 100.12; double v = a / b; int i = new Double(v).intValue(); ...转载 2020-02-23 11:53:28 · 1511 阅读 · 0 评论 -
浅谈Array和ArrayList的区别
参考:http://www.cnblogs.com/a164266729/p/4561651.html(1)ArrayList是Array的复杂版本ArrayList内部封装了一个Object类型的数组,从一般的意义来说,它和数组没有本质的差别,甚至于ArrayList的许多方法,如Index、IndexOf、Contains、Sort等都是在内部数组的基础上直接调用Array的对应方法。...转载 2020-02-23 11:25:11 · 827 阅读 · 0 评论 -
Gson的解析Json数据的两种方式
0x00 前言目前网络上有很多接口是Json形式的,Gson是谷歌开源的Json解析库,可以方便的将Java对象转换成Json字符串,也可以方便的将Json字符串转换成Java对象。0x01 两种解析Json字符串方式假设我们要解析的字符串是如下字符串:{ "rst": 0, "msg": "ok", "data": { "cookie": "JSESSIONID=ab...转载 2019-08-09 07:34:13 · 995 阅读 · 0 评论 -
MD5加密+加盐
了解:MD5加密,是属于不可逆的。我们知道正常使用MD5加密技术,同一字符,加密后的16进制数是不变的,自从出现彩虹表,对于公司内部员工来说,可以反查数据,获取不可能的权限,所以出现了salt算法。代码如下:package com.md5.demo;import java.math.BigInteger;import java.security.MessageDigest;im...转载 2019-03-29 14:23:25 · 333 阅读 · 0 评论 -
Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模...转载 2018-04-05 20:44:19 · 246 阅读 · 0 评论 -
jdk1.8.0环境变量设置
jdk1.8.0环境变量设置1.jdk安装完毕2.进入计算机-系统属性-高级系统设置3.新建系统变量JAVA_HOME; 变量名:JAVA_HOME; 变量值:D:\Program Files (x86)\Java\jdk1.8.0(计算机本地jdk的安装目录) 2.新建系统变量CLASSPATH; 变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.ja...转载 2018-03-25 09:54:13 · 1736 阅读 · 1 评论