java
文章平均质量分 51
stone_tomcat
路漫漫气息永存!
展开
-
Java 11 新特性
Files.writeString原创 2022-10-21 10:24:48 · 535 阅读 · 0 评论 -
@Validated 注解进行组和对象参数校验时不生效的情况
关于 @Validated进行参数校验的生效情况:原创 2022-09-08 11:40:13 · 925 阅读 · 0 评论 -
SpringBOOT +mybatis 配置sql查询打印日志
sql 日志配置原创 2022-08-26 17:58:04 · 353 阅读 · 0 评论 -
两数字交换
public static void main(String[] args) { int a = 5 ; int b = 6 ; int c = a - b ; a= a- c; b= a+c ; System.out.println("a--- " ); System.out.println(a); System.out.println("b--- " ); System.out.println(b); int m = .原创 2022-02-15 14:58:18 · 56 阅读 · 0 评论 -
在IDEA中EasyCode插件使用
1.安装插件在IDEA中安装【EasyCode】【Lombok】插件。2. 创建一个springboot项目结构如下:springboot src main java com.jiangyi controller dao service resource mapper...原创 2022-02-10 17:49:47 · 1488 阅读 · 0 评论 -
scala实现简单计算器
object TestMatchCase { def main(args: Array[String]): Unit = { var a: Int = 10 var b: Int = 20 var operator: Char = 'd' var result = operator match { case '+' => a + b case '-' => a - b case '*' => a * b ...原创 2021-12-24 14:04:41 · 718 阅读 · 0 评论 -
java实现简单计算器
public static void main(String[] args) { Scanner s = new Scanner(System.in); String a = s.next(); String b = s.next(); String c = s.next(); int result = 0; switch (c) { case "+": result = Integer.parseI...原创 2021-12-24 14:03:24 · 240 阅读 · 0 评论 -
间隔打印奇偶数据
class ZeroEvenOdd { private int n; public ZeroEvenOdd(int n) { this.n = n; } Lock lock = new ReentrantLock(); Condition z = lock.newCondition(); Condition num = lock.newCondition(); volatile boolean zTurn = true;...原创 2021-09-10 17:17:01 · 123 阅读 · 0 评论 -
java基础面试题
1.switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上在 Java 5 以前,switch(expr)中,expr 只能是 byte、short、char、int。从Java5 开始,Java 中引入了枚举类型,expr 也可以是 enum 类型,从 Java 7开始,expr 还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。2.short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1原创 2021-09-01 22:47:37 · 239 阅读 · 0 评论 -
为什么选择Java11及模块化的操作
为什么选择Java11容器环境支持,GC等领域的增强。 进行了瘦身,更轻量级,安装包体积小。 JDK11 是一个长期支持版。由于直接从Java8跨越到Java11,所以特性介绍就把Java9-Java11的部分特性一起介绍一下。Jshell @since 9Jshell在Java9中就被提出来了,可以直接在终端写Java程序,回车就可以执行。Jshell默认会导入下面的一些包,所以在Jshell环境中这些包的内容都是可以使用的。import java.lang.*; imp原创 2021-07-12 13:27:54 · 721 阅读 · 2 评论 -
Mybatis插入数据后如何返回插入对象的主键
在mapper.xml中指定keyProperty和useGeneratedKeys属性,其中id为返回的主键对应的java对象的属性useGeneratedKeys="true" keyProperty="id"mapper.xml内容:<insertid="insert"useGeneratedKeys="true"keyProperty="id"parameterType="com.yhr.pojo.User">insertintouser...原创 2021-05-24 16:31:35 · 861 阅读 · 0 评论 -
JDK常见的基础包
Java、javax、org、sun包都是jdk提供的类包,且都是在rt.jar中。rt.jar是JAVA基础类库(java核心框架中很重要的包),包含lang在内的大部分功能,而且rt.jar默认就在根classloader的加载路径里面,所以放在classpath是多此一举 。他们之间的区别具体如下:1. java.*JavaSE的标准库,是java标准的一部分,是对外承诺的java开发接口,通常要保持向后兼容,一般不会轻易修改。包括其他厂家(IBMJDK/HPJDK/OpenJDK)在内,所.原创 2021-02-19 14:00:15 · 1731 阅读 · 0 评论 -
Map ,HashMap, HashTable , TreeMap的异同
本章内容包括:第1部分 Map概括第2部分 HashMap和Hashtable异同第3部分 HashMap和WeakHashMap异同第1部分 Map概括(01) Map 是“键值对”映射的抽象接口。(02) AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。(03) SortedMap 有序的“键值对”映射接口。(04) NavigableMap 是继承于SortedMap的,支持导航函数的接口。(05) HashMap, Ha...原创 2021-02-19 13:50:01 · 231 阅读 · 0 评论 -
创建线程的三种方式
public class T1 { private static class T001 extends Thread{ @Override public void run(){ for (int i = 0; i < 10; i++) { System.out.println("001"); } } } private st.原创 2020-08-27 08:54:51 · 165 阅读 · 0 评论 -
spring中如果有两个同样类型的bean 如何注入?
如果有两个同样类型的bean,那么直接使用@Autowired会出现异常。此时,我们需要配合说使用另一个注解:@QualifierUserService.java 中注解@service("u")@Autowiredpublic void setUserDAO(@Qualifier("u")UserDAO dao) { this.dao = dao;}//此段代码指定了注入的bean的 id/name 为"u"补充:@Autowired(required = false) 指如.原创 2020-07-17 09:04:00 · 11004 阅读 · 0 评论 -
java stream 的简单处理
public class Lum { public static void main(String[] args) { List<String> li = new ArrayList<String>(); li.add("san1"); li.add("san2"); li.add("san3"); li.add("san4"); li.add("san5"); .原创 2020-07-10 15:05:52 · 148 阅读 · 0 评论 -
CAP理论
CAP理论作为分布式系统的基础理论,它描述的是一个分布式系统在以下三个特性中:一致性(Consistency) 可用性(Availability) 分区容错性(Partition tolerance)最多满足其中的两个特性。也就是下图所描述的。分布式系统要么满足CA,要么CP,要么AP。无法同时满足CAP。 ...原创 2020-06-17 13:00:49 · 212 阅读 · 0 评论 -
foreach 初始化顺序
原创 2020-06-08 19:31:25 · 268 阅读 · 0 评论 -
分布式锁的种类
基于mysql 基于Redis 基于zookeeper 基于Etcd分布式锁的实现原创 2020-06-07 17:18:21 · 253 阅读 · 0 评论 -
int 与integer的区别简介
int 基础类型integer 包装类型int 按照值传递integer 按照引用传递但是在hash表中是按照值传递原创 2020-06-06 13:00:33 · 158 阅读 · 0 评论 -
HashMap 的最大容量
HashMap的底层实现,发现HashMap的最大容量规定为:// 最大容量(必须是2的幂且小于2的30次方,传入容量过大将被这个值替换)static final int MAXIMUM_CAPACITY = 1 << 30;故而 其容量大小capacity_size = 2^N , 其中N <=30...原创 2020-06-06 12:08:39 · 6733 阅读 · 2 评论 -
ArrayList 的继承结构图解
原创 2020-06-05 06:57:47 · 546 阅读 · 0 评论 -
BigDecimal 使用时丢失精度问题
一、BigDecimal概述 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDe原创 2020-06-04 07:52:44 · 1950 阅读 · 0 评论 -
线程池的核心线程与最大线程
1、当提交一个新任务到线程池时首先线程池判断基本线程池(corePoolSize)是否已满?没满,创建一个工作线程来执行任务。满了,则进入下个流程;其次线程池判断工作队列(workQueue)是否已满?没满,则将新提交的任务存储在工作队列里。满了,则进入下个流程;最后线程池判断整个线程池(maximumPoolSize)是否已满?没满,则创建一个新的工作线程来执行任务,满了,则交给饱和策略来处理这个任务;如果线程池中的线程数量大于 corePoolSize 时,如果某线程空闲时间超过keepAliveTim原创 2020-06-04 07:43:42 · 2020 阅读 · 0 评论 -
spring boot 整合 dubbo的简单介绍
参考官方文档http://dubbo.apache.org/zh-cn/blog/download.htmlhttps://github.com/apache/dubbo-adminYou can introduce the latestdubbo-spring-boot-starterto your project by adding the following dependency to your pom.xml<properties> <spring-b..原创 2020-05-26 22:00:22 · 503 阅读 · 0 评论 -
dubbo的名词介绍
registry 角色注册中心的用于发布订阅服务的一个平台 用于替代soa结构体系的ESB服务总线发布将信息发布出去 实现服务的公开订阅客户端程序从注册中心下载服务的内容 这个过程就是订阅consumer服务的消费方provider服务端container容器monitor监控中心...原创 2020-05-26 21:50:08 · 199 阅读 · 0 评论 -
Spring cloud alibaba 底层是基于 dubbo
Dubbo 的简单介绍是一款 高性能 轻量级的java rpc 框架核心功能面向接口的远程调用 智能容错 负载均衡 服务发现治理原创 2020-05-26 21:40:41 · 290 阅读 · 0 评论 -
RMI 远程调用方法
RMI Remote Method invoke 调用远程的方法方法一般附属于某个对象之上 ,所以 通常RMI 指的是 在远程计算机上调用某个对象 ,进行其函数方法的调用RPC Remote procedure call 是指远程过程调用 对net上 另一个计算机上的某段 函数代码的调用....原创 2020-05-26 21:35:20 · 225 阅读 · 0 评论 -
dubbo远程服务调用本地模拟
import java.rmi.RemoteException;import java.rmi.registry.LocateRegistry;import java.rmi.registry.Registry;import java.rmi.server.UnicastRemoteObject;/**@author@create20200526 18:58*/public class TestDubboRegister {public static void main(Strin原创 2020-05-26 19:31:54 · 397 阅读 · 0 评论 -
Nio
import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEv...原创 2020-05-03 18:53:53 · 150 阅读 · 1 评论 -
长连接 短连接
长连接一般是游戏服务器常见 可以主动 推数据 传输二进制数据 协议自己攒 占用资源相对较多短连接 web 服务器 被迫营业 传输文本 数据 HTTP (超文本传输协议) HTML 占用资源相对较少...原创 2020-05-03 17:27:04 · 170 阅读 · 0 评论 -
Error:java: Compilation failed: internal java compiler error
使用Idea导入新项目或升级idea或新建项目时会出现以下异常信息:Error:java: Compilation failed: internal java compiler error1错误原因导致这个错误的原因主要是因为jdk版本问题,此处有两个原因,一个是编译版本不匹配,一个是当前项目jdk版本不支持。查看项目的jdkFile ->Project Struc...原创 2020-04-18 16:56:58 · 487 阅读 · 0 评论 -
附件大小配置文件问题
Spring boot版本升级到了2.X,发现原来的文件上传大小限制设置不起作用了,原来的application.properties设置如下:spring.http.multipart.max-file-size=30Mbspring.http.multipart.max-request-size=30Mb需要改成如下:spring.servlet.multipart.max-f...原创 2020-03-31 16:49:31 · 233 阅读 · 0 评论 -
rocker Mq 开发者指南
https://github.com/apache/rocketmq/blob/master/docs/cn/concept.md基本概念1 消息模型(Message Model)RocketMQ主要由 Producer、Broker、Consumer 三部分组成,其中Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际...原创 2020-03-30 23:41:43 · 207 阅读 · 0 评论 -
rocket mq
集群模式 无单点 可扩展 任意一点 高可用 水平可扩展 海量消息堆积能力 ,消息堆积后写入低延迟 支持上万个队列 消息失败重试机制 消息可查询阿里好的中间件 分布式存储ocensBase , 阳振坤Rocker MQ...原创 2020-03-30 23:37:15 · 145 阅读 · 0 评论 -
ROCKER mq
ROCKER mq 是一款分布式 队列模型的消息中间件 具有以下特点保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力...原创 2020-03-30 23:30:05 · 174 阅读 · 0 评论 -
app 上传附件文件类型不匹配的解决
@PostMapping("/uploadFiles")@ResponseBodypublic Result uploadFiles(@RequestParam("file[]") MultipartFile[] files) {}Java 后端 file 换成file[]原创 2020-03-25 11:42:32 · 967 阅读 · 0 评论 -
Optiona 的用法之非空判断
以前写法public String getCity(User user) throws Exception{ if(user!=null){ if(user.getAddress()!=null){ Address address = user.getAddress(); if(addre...原创 2020-03-23 20:22:13 · 791 阅读 · 0 评论 -
单体架构的优缺点
1 优点易于开发 容易测试 容易部署 容易节点伸缩2 缺点随着代码的膨胀 不容易维护 构建部署成本大 改动容易产生新的bug 新人上手困难 创新困难 可扩展性差...原创 2020-02-14 08:41:22 · 758 阅读 · 0 评论 -
Java 异步发送邮件
package com.voicesoft.utils;import java.util.Properties;import javax.activation.DataHandler;import javax.activation.DataSource;import javax.activation.FileDataSource;import javax.mail.Authenticat...原创 2020-02-12 16:54:12 · 1227 阅读 · 0 评论