java基础
冬子一定要努力
你可以菜,但不能不努力呀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java必会的工具库,让你的代码量减少
Java必会的工具库,让你的代码量减少一:Java自带工具方法1.List集合拼接成以逗号分隔的字符串// 如何把list集合拼接成以逗号分隔的字符串 a,b,c List<String> list = Arrays.asList("a", "b", "c"); // 第一种方法,可以用stream流 String join = list.stream().collect(Collectors.joining(",")); System.out...原创 2021-07-29 14:37:44 · 295 阅读 · 1 评论 -
mysql索引笔记
1.B+树:因为减少io,主键递增,因为适合insert和查询使用。符合连表规则。2.存贮类型: 叶子结点连续,非叶子结点存的是索引范围。 每个结点有可以分为页:页包含指针(开始指针,结束指针指向下一个页),目录(存放数据的字典),数据(根据排序存的数据)3.主键索引查找怎么走:从root结点,到非叶子结点,到具体的叶子结点上面的页。 例如:id>3,也走索引,判断3的位置。减少叶子结点的全表扫描!!!4.联合索引查找规则:结构和主键一样,只是存的都是索引没有数...原创 2021-03-29 12:02:14 · 211 阅读 · 0 评论 -
时间复杂度-笔记自用
学习链接:https://haokan.baidu.com/v?pd=wisenatural&vid=28362603890635834231.概念:2.分类:原创 2021-03-28 22:42:28 · 209 阅读 · 0 评论 -
时间复杂度学习备注
https://blog.youkuaiyun.com/c99463904/article/details/77414163https://haokan.baidu.com/v?pd=wisenatural&vid=2836260389063583423https://www.jianshu.com/p/f4cca5ce055a原创 2021-03-28 22:00:17 · 193 阅读 · 0 评论 -
平衡二叉树、B树、B+树、B*树 理解其中一种你就都明白了
b树就是b-树。1.为什么使用b树: 为了减少磁盘IO的次数,就你必须降低树的深度,将“瘦高”的树变得“矮胖”。一个基本的想法就是: (1)、每个节点存储多个元素 (2)、摒弃二叉树结构,采用多叉树2.下面是一棵3阶的B+树: B+树通常有两个指针,一个指向根结点,另一个指向关键字最小的叶子结点。因些,对于B+树进行查找两种运算:一种是从最小关键字起顺序查找,另一种是从根结点开始,进行随机查找。查找 B+树的优势在于查找效率上,下面我们做一具体说明: 首先,B+树.原创 2020-07-21 14:50:37 · 324 阅读 · 0 评论 -
netty Rpc
1.BIO、NIO 和 AIO 的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。伪异步 IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有 I/O 请求时才启动一个线程进行处理。AIO:一个有效请求一个线程,客户端的 I/O 请求都是由 OS 先完成了再通知服务器应用去启动线程进行处理。BIO 是面向流的,NIO 是面向缓冲区的.原创 2020-08-17 10:33:56 · 159 阅读 · 0 评论 -
restTemplate发送put请求,postman和本地调用可以,服务器不行
HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);headers.add("Authorization", authorizationToken);headers.add("Host", host);headers.add("User-agent", agent);headers.setAccept(Arrays.asList(MediaType.APPLICATI.原创 2021-02-22 10:32:51 · 1756 阅读 · 1 评论 -
解决: 前端传值true或false后端一直为false
背景:遇到个坑, 前端传 isTop:true, 后端永远为fasle (后端用的是 private boolean isTop;)原因: 1. 后端必须使用Boolean类型 ,isTop才能正确响应; 2.修改private boolean top; 因为is会序列化掉,所以找不到isTop建议: 前后端交互字段,最好别用is***字段,或者使用int类型1.0当true/false .很多细节的坑 ...原创 2020-11-13 14:36:58 · 3611 阅读 · 2 评论 -
mac配置java环境,解决错误zsh: command not found
1)输入命令:cd ~ 即可进入/Users/**目录;【其中**表示MacOs用户的账号】2)创建.bash_profile文件: touch .bash_profile;【注:/Users/**下若有.bash_profile文件即可跳过此步骤,直接进行第3)步】3)输入命令:open .bash_profile 打开open .bash_profile文件4)在open .bash_profile文件中添加【你所需要配置的环境变量】如:JAVA_HOME=/Library/J...原创 2020-11-09 19:46:16 · 4784 阅读 · 3 评论 -
经常被问道的cap是什么
在弄清楚这个问题之前,我们先了解一下什么是分布式的CAP定理。根据百度百科的定义,CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。一、CAP的定义Consistency (一致性):“all nodes see the same data at the same time”,即更新操作成功并返回客户端后,所有节点在同一时原创 2020-09-03 20:21:46 · 723 阅读 · 0 评论 -
个人总结的mysql基础知识汇总
一、基本概念1.主键、外键、超键、候选键超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。候选键:是最小超键,即没有冗余元素的超键。主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。外键:在一个表中存在的另一个表的主键称此表的外键。2.为什么用自增列作为主键如果我们定义了主键(PRIMARY K原创 2020-08-27 18:07:29 · 374 阅读 · 1 评论 -
记录MySQL主从复制的几种复制方式
目录 异步复制 多线程复制 增强半同步复制 异步复制MySQL的复制默认是异步的,主从复制至少需要两个MYSQL服务,这些MySQL服务可以分布在不同的服务器上,也可以在同一台服务器上。MySQL主从异步复制是最常见的复制场景。数据的完整性依赖于主库BINLOG的不丢失,只要主库的BINLOG不丢失,那么就算主库宕机了,我们还可以通过BINLOG把丢失的部分数据通过手工同步到从库上去。注意:主库宕机的情况下,DBA可以通过mysqlbinlog工具手工访问主库bi原创 2020-08-17 10:04:27 · 223 阅读 · 0 评论 -
new创建一个对象经历那些过程
作者 |勿念先生来源 |blog.youkuaiyun.com/mohedong/article/details/79618048在语言层面创建对象(例如克隆、反序列化)通常仅仅是一个new关键字而已,而在虚拟机中,对象(普通Java对象,不包括数组和Class对象等)的创建时一个怎么样的过程?一、对象的创建当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能在常量池中能否定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类...原创 2020-08-17 09:59:07 · 2306 阅读 · 0 评论 -
springboot的注解使用
一、注解 (annotations) 列表@SpringBootApplication:包含了 @ComponentScan、@Configuration 和 @EnableAutoConfiguration 注解。其中 @ComponentScan 让 spring Boot 扫描到 Configuration 类并把它加入到程序上下文。@Configuration等同于 spring 的 XML 配置文件;使用 Java 代码可以检查类型安全。**@EnableAutoConfig.原创 2020-08-17 09:45:26 · 213 阅读 · 0 评论 -
总结工作中枚举的使用
1.概览在本文中,我们将看到什么是 Java 枚举,它们解决了哪些问题以及如何在实践中使用 Java 枚举实现一些设计模式。enum关键字在 java5 中引入,表示一种特殊类型的类,其总是继承java.lang.Enum类,更多内容可以自行查看其官方文档。枚举在很多时候会和常量拿来对比,可能因为本身我们大量实际使用枚举的地方就是为了替代常量。那么这种方式由什么优势呢?以这种方式定义的常量使代码更具可读性,允许进行编译时检查,预先记录可接受值的列表,并避免由于传入无效值而引起的意外行为。.原创 2020-08-14 17:21:16 · 282 阅读 · 0 评论 -
最左索引问题?
问题最近,在 mysql 测试最左前缀原则,发现了匪夷所思的事情。根据最左前缀原则,本来应该索引失效,走全表扫描的,但是,却发现可以正常走索引。表结构如下( Mysql 版本 5.7.22):CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(32)COLLATEutf8mb4_binDEFAULTNULL,`age`int(11)DEFAULTNULL,`add...原创 2020-07-06 09:47:58 · 515 阅读 · 2 评论 -
小游戏项目分布式锁代码(留个纪念)
package com.jd.car.member.service.index.impl;import com.alibaba.fastjson.JSON;import com.jd.car.member.common.contant.Constants;import com.jd.car.member.common.exception.CarMemberErrorEnum;import com.jd.car.member.common.exception.GameException;impo.原创 2020-06-28 15:00:13 · 332 阅读 · 1 评论 -
Java基础知识面试题大集合
来自:优快云,作者:ThinkWon链接:https://blog.youkuaiyun.com/ThinkWon/article/details/10439061本文知识点目录 Java概述 何为编程 什么是Java jdk1.5之后的三大版本 JVM、JRE和JDK的关系 什么是跨平台性?原理是什么 Java语言有哪些特点? 什么是字节码?采用字节码的最大好处是什么 什么是J.原创 2020-06-28 11:06:02 · 329 阅读 · 0 评论 -
巧用枚举转换
1.业务场景:8条数据每个状态标识不一样,一个对象包含8个属性,每个属性对应一个标识。需要判断标识对应的属性的属性值判断权限执行业务逻辑;2.数据库数据: 勋章类型 1: 轮胎, 2:机油, 3: 京加油, 4:车载电器, 5: 维修保养, 6:汽车装饰, 7: 摩托车达人, 8: 敬请期待', `name` varchar(100) DEFAULT NULL COMMENT '勋章名称',3.实体类:4.枚举类:package com.jd.car.me...原创 2020-05-09 21:00:01 · 647 阅读 · 0 评论 -
sql新增保存写法
/** * 批量保存or更新核销码数据 * * @param orderSkus */ void batchInsertOrUpdateCode(List<ConsumeCodeEntity> orderSkus); <insert id="batchInsertOrUpdateCode" parameterType...原创 2020-04-16 16:57:13 · 315 阅读 · 0 评论 -
并发执行查询汇总返回结果集
需求: 做数据统计,但是有的sql执行太慢。然后优化添加索引,再用线程池去执行各自sql。汇总结果集package com.jd.car.laserbeak.web.controller.consume;import com.google.common.util.concurrent.ThreadFactoryBuilder;import java.util.concurrent.*...原创 2020-03-23 11:21:36 · 1283 阅读 · 0 评论 -
SpringBoot @Valid 注解结合Exception 实现参数验证(转)
作者|超级小豆丁http://www.mydlq.club/article/49/原创 2020-03-12 13:44:57 · 179 阅读 · 0 评论 -
枚举类使用-工作笔记
1.两个code相互转换的:通过第二个code,获取第一个codepackage com.jd.car.laserbeak.common.contant;/** * @author xyd * @description 京东验证码状态 * @date 2020/2/14 18:22 **/public enum ConsumeCodeStatusEnum { //状...原创 2020-02-29 18:41:04 · 193 阅读 · 0 评论 -
Mock单元测试-工作使用
1.测试类:test包下package com.jd.car.laserbeak.service.consume;import com.google.common.collect.Lists;import com.jd.car.laserbeak.common.cache.CacheKey;import com.jd.car.laserbeak.repository.dao.cons...原创 2020-02-26 22:49:47 · 588 阅读 · 0 评论 -
aop做日志收集,且不同外部接口入参种获取某一个特定标识(请求外部接口,需要收集出入参且失败成功都需要插入记录)
业务场景:通过aop的环绕模式,做请求外部接口的请求和响应日志收集。其中不同接口入参不一样,但是我需要获取一个唯一标识作为业务id。1.定义一个注解:注入到方法package com.jd.car.laserbeak.infrastructure.jd.jsf.logrecordaop;import java.lang.annotation.ElementType;import j...原创 2020-02-24 20:09:19 · 641 阅读 · 0 评论 -
easypoi实现高大上导出excel
1.引用jar包:当时犯了一个低级错误,我在项目最完成引用了,但是拉不下jar包。最后放在外层pom和里层connon里加就ok了。先确定自己的中央仓库有没有这个jar包,看maven的setting文件的仓库地址登录进去搜索jar包名称就知道。<!--excel操作--><dependency> <groupId>cn.aftertur...原创 2020-02-22 15:15:39 · 1569 阅读 · 0 评论 -
poi实现excel导出
最近做一个百万数据excel导出。然后记录下来。供自己工作使用如果是百万级别,看到很多文章提到使用压缩文件方法。对导出还有很多可以优化:分页sheet,线程等。由于还没到那个时候,就简单记录下一个demo使用把。后期再来完善1.引用jar包<!-- poi依赖 --> <dependency> <...原创 2020-02-21 15:31:22 · 282 阅读 · 0 评论 -
springboot+tk.mybatis加上mapper.xml-个人工作总结使用
1.引用配置mybatis: #包扫描 mapper-locations: classpath:mapper/*Mapper.xml #开启映射,就是驼峰命名按照规则把查询结果对应到实体类(数据库的user_name=实体类接收的userName) configuration: map-underscore-to-camel-case: true...原创 2020-02-19 19:21:22 · 577 阅读 · 0 评论 -
PageHelper分页使用
1.springboot项目:引用分页插件 pagehelper-spring-boot<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter&l...原创 2020-02-19 19:10:26 · 353 阅读 · 0 评论 -
@Builder(toBuilder=true) 使用
@Builder(toBuilder=true)1.类前加@Builder 可以使用对象方便如果加true,可以修改这个对象属性值。默认false原创 2020-02-18 18:28:00 · 13279 阅读 · 0 评论 -
日志规范
不同级别的使用ERROR基本概念影响到程序正常运行、必须手工处理的错误打开配置文件失败 数据库连接失败,sql错误 Mq、缓存连接失败等 必须人工介入处理的错误WARN基本概念不应该出现但是不影响程序、当前请求正常运行的异常情况:有容错机制的时候出现的错误情况 找不到配置文件,但是系统能自动创建配置文件 即将接近临界值的时候,例如:缓存池占用达到警告线 业...原创 2020-01-10 17:45:02 · 336 阅读 · 0 评论 -
Maven依赖冲突,通过插件快速排包
1、何为依赖冲突Maven是个很好用的依赖管理工具,但是再好的东西也不是完美的。Maven的依赖机制会导致Jar包的冲突。举个例子,现在你的项目中,使用了两个Jar包,分别是A和B。现在A需要依赖另一个Jar包C,B也需要依赖C。但是A依赖的C的版本是1.0,B依赖的C的版本是2.0。这时候,Maven会将这1.0的C和2.0的C都下载到你的项目中,这样你的项目中就存在了不同版本的C,这时Ma...原创 2020-01-04 21:37:43 · 3335 阅读 · 0 评论 -
java基础-数据之间转换(个人总结)
1.字符串转数据:1,5,3 转为Sting[];Integer[] String a = "1,5,3"; System.out.println(Arrays.toString(a.split(","))); System.out.println(Arrays.toString(Arrays.stream(a.split(",")).map(Integer::parseInt...原创 2020-01-03 19:57:33 · 145 阅读 · 0 评论 -
git日常使用命令
https://mp.weixin.qq.com/s/8Vw02CXWUod_bNAVkOnAfwhttps://mp.weixin.qq.com/s/Z-9wY2uBamuJRLEJfcS0zghttps://learngitbranching.js.org/?demo 学习网址git commit 提交代码到本地仓库git branch xyd_666 新建分支g...原创 2019-12-16 16:07:42 · 157 阅读 · 0 评论 -
性能指标TP50、TP90、TP99、TP999解读和学习
TP指标说明TP指标: 指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序, 并取出结果为:总次数*指标数=对应TP指标的值,再取出排序好的时间。TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。TP50、TP90、TP99和TP999等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情...原创 2019-11-01 11:16:22 · 16108 阅读 · 0 评论 -
java关键字学习(转)
https://blog.youkuaiyun.com/Myuhua/article/details/81411707原创 2019-10-31 11:14:48 · 194 阅读 · 0 评论 -
qps,tps,TP50,TP90,TP99,TP999详解
tps:(每秒传输的事务处理个数),这里是指服务器每秒处理的事务数量。事务处理的统计qps: 每秒查询的处理量,也可以称为吞吐量TP指标: TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50 值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值...原创 2019-10-31 10:31:57 · 7310 阅读 · 0 评论 -
Java代码小技巧
来源:https://www.cnblogs.com/Qian123/p/6046096.html 作者:萌小Q前言代码优化,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼...原创 2019-10-30 18:13:05 · 344 阅读 · 0 评论 -
Java8集合常见处理demo
前言Java8新特性我们使用的应该比较多了,今天这里整理了个人使用最多的8种场景,希望对大家有所帮助。遍历遍历也许是我们使用最多的功能了,在Java8之前我们遍历集合通常会采用for循环,迭代器,而在Java8中有了更加简介的方法: public static void main(String[] args) { List<EmailModal>...原创 2019-10-21 14:29:04 · 362 阅读 · 0 评论 -
mysql中的like对应索引问题
mysql在使用like查询中,能不能用到索引?在什么地方使用索引呢?在使用like的时候,如果使用‘%%’,会不会用到索引呢?EXPLAINSELECT * FROM `user` WHERE username LIKE '%ptd_%';上面的结果是全表扫描(type == ALL),并没有使用到索引。只是使用一个%的查询结果:EXPLAIN SE...原创 2019-10-21 10:39:53 · 259 阅读 · 0 评论
分享