- 博客(67)
- 资源 (2)
- 收藏
- 关注
原创 源码阅读#HashMap
文章目录概述定义地位主要的操作实现存储结构的实现(数组+链表+红黑树)Node节点(链表)数组红黑树存放元素的实现如何存放到数组中如何存放到链表中(hash冲突且冲突个数<8个)如何存放到红黑树中(hash冲突且冲突个数>=8个)检索元素的实现扩容机制的实现参考概述定义HashMap是一种散列表(哈希表),是一种Map的实现。地位HashMap在集合框架中占据重要的位置,很多应用场景都用到它。主要的操作//讲key和value对应关系存储起来//Associates the s
2021-01-25 18:35:49 281 2
原创 JAVA垃圾回收
JAVA垃圾回收JAVA垃圾回收看了很多JAVA垃圾回收的文章、书籍但一直没有很好的理解到垃圾具体是如何回收的。因为大多JAVA垃圾回收文章都是大篇幅的讲垃圾是如何识别的、垃圾是如何收集的,这篇文章在概念上给予我比较大的帮助。对我启发较大的是:如果说垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。图解Java 垃圾回收机制还有一本coo...
2018-08-10 12:29:18 210
翻译 判断一个字符串是否是合法的JSON字符串
判断一个字符串是否是合法的JSON字符串pom.xml <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>...
2018-01-31 13:58:34 61073 12
翻译 接口和继承
接口和继承接口Java中的接口定义一个接口接口体实现接口一个简单的例子将接口作为一个类型不断发展的接口默认方法扩展包含默认方法的接口静态方法小结继承Java平台类继承层次结构继承的一个小例子子类能做什么父类中的私有成员对象造型Casting Object多重继承的状态实现和类型Multiple Inheritance of State Implementation
2017-09-19 18:43:27 766
翻译 类和对象
类和对象类声明类Declaring Classes声明成员变量declaring member variables为你的类提供构造函数向构造函数或者方法传递信息对象创建对象使用对象更多关于类的内容more on class从方法中返回值类成员的访问控制权限Controlling Access to members of a Class理解类成员Understanding Cl
2017-09-12 22:03:21 3085
翻译 Java 面向对象编程概念
简介这个教程将使用例子来帮助你理解JAVA面向对象编程(OOP)的概念。面向对象编程涉及到创建类、以类为模板(蓝图、条款)创建对象、创建应用程序。一个类是一个模板、蓝图、或者是一个说明对象应包含什么属性、什么行为的条款。一个对象是一个类的实例。你可以以一个类为蓝图,创建出很多实例。Java类用变量来定义数据域(data field),用方法来定义行为。此外,类提供一种特殊的方法,即构造函数,调用它可
2017-08-24 20:33:00 486
原创 JAVA访问权限控制(JAVA Access Control)
概述背景问题(动机、需求) 访问控制(或隐藏具体实现)与“最初实现并不恰当”有关。 —— 摘自JAVA编程思想 1. 代码会被重构。最初实现的代码并不是最好的(可维护性角度考虑)。 2. 消费者(客户端程序员)需要代码在某些方面不变。内在实现可变,但是接口调用方式不变,即不破坏消费者的代码。要解决以上办法,就得知道哪些接口,哪些域已经被消费者使用。解决办法使用权限控制。正文理论知识
2017-08-22 21:40:17 3526 1
原创 Velocity入门教程一
简介Velocity是一个基于JAVA的模板引擎,使用这个工具你可以很容易地创建和渲染你所要展示的格式化文档。 官网定义: Velocity is a Java-based template engine, a simple and powerful development tool that allows you to easily create and render documents
2017-08-22 12:48:21 761
原创 JAVA 8新特性样例
JAVA 样例样例1(Collectors.toMap)查找表的快速生成。比方说,一条SQL太复杂,可以拆分成几条SQL,几条SQL合并成一个对象的时候,经常用到查找表。 @Data @AllArgsConstructor static class User{ private String userCode; private String userName; private String createTime; }用法
2022-01-26 16:56:14 264
翻译 JAVA垃圾回收
文章目录什么是垃圾回收?什么是垃圾回收手动内存管理很好的点子自动内存管理引用计数法标记清除(Mark and Sweep)JAVA垃圾回收打碎和压实(Fragmenting and Compacting)分代假说(Generational Hypothesis)GC算法:基本原理GC算法:实现CG调优:基本原理GC调优:工具篇GC调优:实践篇参考什么是垃圾回收?什么是垃圾回收咋看之下,垃圾回收应该跟其名称所建议的那样——找到并丢弃垃圾。但实际上却是相反的。垃圾回收追踪还被使用的对象,然后把余下的标记成
2021-01-26 19:49:50 225
原创 MySQL杂谈
文章目录ACID读现象(脏读、不可重复度[update]、幻读[insert/delete])isolation level可重复读和序列化的区别索引参考ACIDAn acronym standing for atomicity, consistency, isolation, and durability. These properties are all desirable in a database system, and are all closely tied to the notion of
2021-01-25 14:28:24 176
原创 读书笔记#向上生长
文章目录向上生长附件向上生长一直想到一线城市去发展,但面试了十几家知名公司都没能拿到offer,心中对自己产生了怀疑,也有点想蜗居在3线城市的打算,毕竟在原地也是可以过下去的。但内心隐隐不甘,于是从网上寻找困惑的缘由。其中一个困惑就是人为啥要努力,做条咸鱼有啥不好。于是找到了《向上生长》这本书,里面回答了我部分的困惑,在这里与大家分享一下。我是挺佩服一些写书的人的,毕竟很多自己隐隐知道,但是就是描述不出的东西,在作者这里都能举重若轻地给你解释清楚,这些都是十分值得学习的地方。书中讲刚出生的小孩的
2021-01-14 16:35:51 836
原创 如何看待加班
文章目录如何看待加班定义参考如何看待加班定义除法定或者国家规定的工作时间以外,正常工作日延长工作时间或者双休日以及国家法定假期期间延长工作时间。参考米哈里《心流》丛书。HR问如何看待加班,你该怎么回答?...
2021-01-14 11:40:13 279
原创 微服务架构下互斥资源解决方案
背景现状:A公司、B公司都有一套"销售助手"。需求:同一个身份证只能用某一方的"销售助手"。解决方案:新增人员的时候,先向对方咨询,“你那边是否有这个人” 有:放弃新增 无:继续新增 业务流程漏洞(低概率出现重复新增问题)若同时新增A,则互相向对方咨询都发现对方系统中没有A,所以都新增成功了。解决方案并发转成顺序操作(互斥)。如引入分布式锁zookeeper/redis。优点: 实现简单。 代码更改少。 缺点:没有共同的分布式
2021-01-05 19:50:40 628
原创 DDD阅读笔记
软件软件是用来解决现实的问题,换句话说软件脱胎于领域,并跟领域密切相关。软件开发者要具备一定的领域知识,遵循模型开发。起初,开发人员可能不那么精确地讲模型一一映射到代码中,但随着不断的重构,会将隐含的领域关键字显化。模型浅层次的模型:将领域动词转化为方法,名词转化为类。深层次的模型:忽略表面内容,捕捉到本质内涵。利用模式元素,描绘出一句句模式语言,让语言构成一幅画,这个画就是模型。模...
2019-12-06 12:11:02 168
原创 宏光PLUS上市拉新活动-技术总结
宏光PLUS上市拉新活动-技术总结简介弹弹车是为五菱宏光PLUS上市而诞生的,其目的主要在于拉新提高用户活跃度庆祝宏光plus上市,提高产品知名度弹弹车游戏方法弹车。按下力度条,车子弹射出去一段距离,然后停止。弹车距离影响因素有:力度大小。1.1 力度区间为:(0,0.5] 和 (1,0.5],即中间(0.5)处,力度最大。1.2 同等条件下,力度越大,弹射距...
2019-10-31 17:28:30 350
原创 分布式线程安全
分布式线程安全分布式线程安全(redis、zookeeper、数据库)高性能分布式锁-redisson的使用https://github.com/redisson/redisson/wiki分布式环境下,怎么保证线程安全...
2019-10-21 14:41:12 672
原创 Mysql存表情符号发生错误
Mysql存表情符号发生错误(SQLException: Incorrect string value: ‘\xF0\x9F\xA4\xAA’)流程是查看my.ini文件在哪里,修改配置文件。修改库,表,字段的编码。修改连接数据库的编码,即去掉useunicode=true&characterEncoding=utf8。命令行# 数据库ALTER DATABASE {...
2019-10-16 15:47:03 573
原创 mysql#安装出现报错
MYSQL服务无法启动:InnoDB: .\ibdata1 can’t be opened in read-write mode使用net start mysql的时候出现服务名无效的原因及解决办法Mysql 安装服务无法启动解决方案与使用的一般使用指令官网安装教程...
2019-09-04 10:58:54 392
原创 idea设置
IDEA警告:SQL dialect is not configuredidea中 参数没有描述报错 @param XX tag description is missing错误,去除黄色警告
2019-09-04 09:36:15 153
原创 工具常见问题
idea#version control#乱码如上图所示,要是Override default fonts by,可能会导致idea version control显示乱码。去掉就好了。
2019-07-09 15:53:16 196
原创 软件设计六大原则
软件设计六大原则(软件设计模式六大原则)单一职责原则。职责单一,只负责一项职责。意味着不会存在多于一个导致类变更的原因。问题:若一个类负责A、B两个职责,则A职责变动,修改后可能使正常的B职责发生故障。里氏替换原则。程序内,任何基类出现的地方,用子类替换,程序的行为不变。问题:有一个功能P1,由A类完成。先需要对功能P1进行扩展成为P,新功能P由原功能P1和新功能P2构成。P2由...
2019-07-09 12:09:23 414
原创 常见问题记录
maven项目引入外部jar包为sdk添加一个功能,但是测试比较困难,即需要提交代码,让高P审核代码等步骤,为了能在本地自测。需要将sdk打包,然后放到一个项目中去测试。因为需要给QA提测,所以需要提供一个接口,而我们项目一般都是maven项目,即用pom.xml管理包。pom管理包的方式和普通的项目不一样,所以不能用jar包方式导入。因此可以通过:搭建自己的私服,pom引用包...
2019-07-03 16:00:51 344
原创 记一次文件下载乱码排查
记一次文件下载乱码排查场景从服务端读取一个zip文件(里面可能有多个文件)的内容,然后转成Properties。现象本地转,乱码问题不出现,只有发布预生产的时候发生这样的问题。代码 public static Properties readProperties(String uri) throws IOException{ return readProperties(n...
2019-07-03 14:15:29 172
翻译 软件开发者必须要知道Unicode和字符集,这是最起码的要求(别找借口)
参考阮一峰-字符编码笔记:ASCII,Unicode 和 UTF-8The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Setsjava字符编码原理总结...
2019-07-01 18:16:35 634
原创 调试小技巧
Mock Server场景生产环境无法调试,而函数的调试需要依赖于第三方的数据来源。为了能够调试函数则,调试环境只能选开发、测试需要所依赖的第三方数据来源而开发、测试的token不能用于请求第三方数据,故借助与Postman的Mock Server功能操作New -> Mock Server这一步是为了激活面板左上角的Examples按钮。完成后,会多出一个集合,集...
2019-06-05 17:55:38 151
原创 内存溢出分析
术语分析heap dump(堆转存)heap dump就是某个时间点java进程的内存快照。其快照内容包含heap内java对象和类。通常在吸入heap dump之前触发full GC以便它包含remaining objects的信息。典型的heap dump信息包含:all objectsclass,fields,primitive values and references...
2019-05-28 11:56:33 654
原创 Vi编辑器入门
Vi编辑器入门vi : visual editor 可视化编辑器。读作vee-eye命令模式:command mode 刚进入编辑器的时候,或者按下Esc插入模式:insert mode 键入i,意为insert打开文件vi [file_name] : vi是调用编辑器,编辑新旧文件所用的命令退出文件:q 或 :wq 或 ZZ 或 :q!:q :退出文件,不做保...
2019-05-06 20:22:54 210
原创 Swagger入门
概述swagger是一种易用而强大的API开发工具套件(suite),从设计、编写文档到测试和部署(即整个API生命周期),它能为个人、团队提供支持。Swagger is a powerful yet easy-to-use suite of API developer tools for teams and individuals, enabling development across t...
2019-01-23 20:24:10 181
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人